'sqr'atch-note

ちりはつもれど ちりぬるを

atcoder-cliの導入

  • 今更ではあるんだけど、AtCoderの解答前準備を楽にするため、atcoder-cliを導入した。
  • 今回、インストールした環境は以下の通り。
 $ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
 $ npm -v
8.5.1
 $ nodejs -v
v12.22.9
  • nodejsとnpmは普通にaptを使ってインストールした。
$ sudo apt update
$ sudo apt install nodejs npm
$ acc config-dir
/home/username/.config/atcoder-cli-nodejs

$ cd $(acc config-dir)
$ mkdir python
$ cat <<EOF > python/template.json
{
     "task": {
         "program": [
             "main.py"
         ],
         "submit": "main.py"
     }
 }
EOF

$ acc config default-template python
$ acc config default-test-dirname-format test
$ acc config
  • acc config default-test-dirname-format test
    • この設定は、accが作成するテストケースのディレクトリ名をtestに変更している。ojコマンドは、デフォルトでテストケースを./testディレクトリから探すため。
    • -dオプションでテストケースのディレクト名を指定も出来るが、毎回指示するのも面倒であるのでacc側の設定を変更してあげる。
  • 適当な問題をダウンロードとojでテストケースの実行をやってみる。
$ acc new abc099
abc099/contest.acc.json created.
create project of AtCoder Beginner Contest 099
? select tasks A ABD
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
[INFO] load cookie from: /home/username/.local/share/online-judge-tools/cookie.jar
[NETWORK] GET: https://atcoder.jp/contests/abc099/tasks/abc099_a
[NETWORK] 200 OK

$ oj t -c "python3 main.py" 
[INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)
[INFO] 3 cases found
[WARNING] GNU time is not available: time

[INFO] sample-1
[INFO] time: 0.005157 sec
[SUCCESS] AC

[INFO] sample-2
[INFO] time: 0.004408 sec
[SUCCESS] AC

[INFO] sample-3
[INFO] time: 0.004404 sec
[SUCCESS] AC

[INFO] slowest: 0.005157 sec  (for sample-1)
[SUCCESS] test success: 3 cases
  • OK
  • 毎回、テスト時にコマンドを入力するのは手間なので、エイリアスを設定してあげる
    • alias ojpy='oj t -c "python3 main.py"'
    • 必要に応じて~/.zshrc~/.bashrcに追記する