10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Macから`atcoder-cli`を使った際の備忘録

Last updated at Posted at 2022-05-15

N番煎じですみませんが、Macからatcoder-cliを使った際の備忘録です
atcoderで便利に使えるツール集どこかにまとまっていないだろうか..

インストール

以下を参考にatcoder-cliをインストールすればOK
Finder-->Application-->ターミナル から実行する

コマンドラインツールatcoder-cliを公開しました
atcoder-cli インストールガイド
https://github.com/Tatamo/atcoder-cli

pip3 install online-judge-tools
npm install -g atcoder-cli

seleniumも必要かもしれないので念のためインストールする

pip3 install selenium

npm install時にエラーdyld: Library not loaded:/usr/local/opt/icu4c/lib/libicui18n.64.dylib

以下を参照して解決した
https://qiita.com/seigot/items/8fd186de797ac02f9e67

not found npm

brew install npm

使い方

accコマンドは以下のように使う

コンテスト情報取得(例.abc251)

$ acc contest abc251
> UserId/Passを入力
abc251  Panasonic Programming Contest 2022(AtCoder Beginner Contest 251)  https://atcoder.jp/contests/abc251
$ acc tasks abc251
A   Six Characters               https://atcoder.jp/contests/abc251/tasks/abc251_a
B   At Most 3 (Judge ver.)       https://atcoder.jp/contests/abc251/tasks/abc251_b
C   Poem Online Judge            https://atcoder.jp/contests/abc251/tasks/abc251_c
D   At Most 3 (Contestant ver.)  https://atcoder.jp/contests/abc251/tasks/abc251_d
E   Takahashi and Animals        https://atcoder.jp/contests/abc251/tasks/abc251_e
F   Two Spanning Trees           https://atcoder.jp/contests/abc251/tasks/abc251_f
G   Intersection of Polygons     https://atcoder.jp/contests/abc251/tasks/abc251_g
Ex  Fill Triangle                https://atcoder.jp/contests/abc251/tasks/abc251_h

ログイン

提出前にログインしておく
(UserId/PassWordを入力する)

oj login https://atcoder.jp/contests

テストケースなどを取得

acc new abc251

全て取得するためのオプションは(acc new abc252 -c all)

acc new abc252 -c all

テストケースを実行(main.pyを使う場合)

cd abc251/b
(main.pyを作成)
oj t -c "python3 main.py" -d ./tests/

必要に応じてaliasを作成しておく

alias test='oj t -c "python3 ./main.py" -d ./tests/'
test

提出

acc s main.py

pypyを明示的に指定する場合は以下の通り

acc s main.py -- --guess-python-interpreter pypy

以下のようなオプションを使ってもよさそう

acc s main.py -- --guess-python-interpreter pypy -w 0 -y

以下のような流れでコマンドを実行すればOK

  1. acc new abc251
  2. cd abc251/b # b問題の場合
  3. main.pyにコードを書く
  4. oj t -c "python3 main.py" -d ./tests/でテスト(必要に応じてaliasをかく)
  5. acc s main.py -- --guess-python-interpreter pypyで提出

とても便利!作者の方ありがとうございます!!

acc new abc251時にデフォルトでmain.pyがディレクトリに作成される状態にする

テンプレートファイルを作成する

cd `acc config-dir`
mkdir py
cd py
touch main.py template.json

main.pyには例えば以下のような記述をする

#!/usr/bin/env python3
import sys
sys.setrecursionlimit(4100000)
import math
def error(*args, end="\n"): print("[stderr]", *args, end=end, file=sys.stderr)
from bisect import bisect, bisect_left, bisect_right
from collections import defaultdict, deque
MOD = 998244353
INF = float("inf")
MINF = -float("inf")

template.jsonには例えば以下のような記述をする

{
  "task":{
    "program": ["main.py"],
    "submit": "main.py"
  }
}

main2.py等も増やしたい場合は以下のように記載する

{
  "task":{
    "program": ["main.py", "main2.py"],
    "submit": "main.py"
  }
}

テンプレートファイルを使用するように設定する

acc config default-template py  # 設定する
acc templates                   # check

これで、acc new abc251時にデフォルトでmain.pyがディレクトリに作成される状態になるはず

error('/Users/seigo/Library/Application Support/online-judge-tools/cookie.jar' does not look like a Set-Cookie3 (LWP) format file Traceback (most recent call last):)

[HINT] You can delete the broken cookie.jar file: /Users/seigo/Library/Application Support/online-judge-tools/cookie.jar
[ERROR] '/Users/seigo/Library/Application Support/online-judge-tools/cookie.jar' does not look like a Set-Cookie3 (LWP) format file
Traceback (most recent call last):

cookieが変な状態になっているかもしれないので削除する(必要に応じてスペースの前に¥をつけてエスケープする)

rm /Users/seigo/Library/Application\ Support/online-judge-tools/cookie.jar

ソースコードのコピー

Macだとpbcopyが使える。

pbcopy < test.py
# コピー後、Command+VでペーストすればOK

Windowsだとclip.exeが使える様子

今後、試してみたいことなど

AtCoderResultNotifier - AtCoderの提出結果を通知するUserScriptを作成しました

参考

コマンドラインツールatcoder-cliを公開しました
atcoder-cli インストールガイド
https://github.com/Tatamo/atcoder-cli
https://twitter.com/ryuusagi/status/1292891516025753600?s=20&t=lShW-hWVYu9m-KroQn2iQA

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?