CachyでAtcoderのCLI


oqlbodlpo.blogspot.com/2026/05/cachyc これの続き。 軽く触るだけなら C++ 実行環境でもいいが、エンジョイ勢にしろガチ勢にしろやるなら CLI を導入すると便利。
## 前提 AtCoder のアカウントを作っておく。 そりゃそうじゃ。 🔗 atcoder.jp
## いれる pip3 と npm からツールを入れるだけなので、Linux ユーザーはかんたん。
### 依存 必要な依存ツールが入ってるか確認 ``` node -v # Node.js npm -v # npm python3 -V # Python pip3 -V # pip g++ --version # C++コンパイラ ```
入っていないものがあれば適宜 pacman とかでいれる。 ``` sudo pacman -S nodejs npm python python-pip gcc ```
### AtCoder AtCoderのツールをいれて、ログインする。
#### インストール acc と oj の2つと、ログインに必要な selenium。 accは「ローカルに問題セットと入力例/出力例をダウンロード」「コマンドライン経由で解答を提出」ができ、ojはローカルでテストができる。
pip と npm から入れる。 ``` pip3 install online-judge-tools aclogin --break-system-packages npm install -g atcoder-cli ```
#### ログイン インストールしたらログイン。ちょっと手順が面倒。
まずはFirefox等ブラウザでAtCoderにログインし、F12で開発者モードをひらく。 ストレージ → Cookie → `https://atcoder.jp` → `REVEL_SESSION` の値をコピー。

acloginでログインを実行 ``` aclogin ```

#### C++設定 AtCoderのツールで新しい cpp を作成したときに、`#include` をいい感じに設定しておいてくれる。 やらなくてもいいが、折角なのでやっておくと後々便利。 ``` cd $(acc config-dir) mkdir cpp && cd cpp ``` ``` echo '{ "task": { "program": ["main.cpp"], "submit": "main.cpp" } }' > template.json ``` ``` echo '#include <bits/stdc++.h> using namespace std; int main() { return 0; }' > main.cpp ``` ``` cd .. acc config default-template cpp acc config default-test-dirname-format test ```
## つかってみる とりあえずなんか簡単な問題を解いてみる。
### 問題を持ってくる 適当にatcoderのファルダ作って移動。 ``` mkdir ~/ドキュメント/atcoder && cd ~/ドキュメント/atcoder ```
初心者向けの問題を持ってくる。 ``` acc new abs ```
とりあえず PracticeA を持ってくる。 デフォルトで PracticeA が選択されてるので、なんもいじらず Enter。
### 解く atcoder.jp/contests/abs/tasks/practice_1 例題なのでとくにネタバレとかは気にせずに進めます。
#### コードを書く 適当にvscodeとかを開く。 さっき `acc new abs` したディレクトリの中の `abs/practicea` の中の `main.cpp` を開く。 こんな感じで初期設定がされてるハズ。 ``` #include <bits/stdc++.h> using namespace std; int main() { return 0; } ```
main関数の中に答えを書く。 ``` #include <bits/stdc++.h> using namespace std; int main() { int a, b, c; string s; cin >> a >> b >> c >> s; cout << a + b + c << " " << s << endl; return 0; } ```
#### コンパイルしてテスト ``` # パスは各自でいい感じに cd ~/ドキュメント/atcoder/abs/practicea g++ -o main main.cpp oj t -c "./main" ```

[SUCCESS] AC が出たら OK。
#### 提出 ``` acc submit ``` 現在、ojがバグっているので修正待ち。 以上!