Dockerを使い簡単に環境構築することができます。
もし、エラーや不具合があれば、issueを立てるか
https://x.com/thirdlf1
に連絡してください。
C++
Java
Python(pypy)
Rust (環境作成に時間かかります)
Go
1/28 テンプレートの編集をより簡単にできるよう変更
1/30 rustに対応
4/17 cppにworkspace追加, aclogin対応
Warning
今現在、ログインや提出時にCAPTCHA認証が導入されたため、意図しない挙動になっているものがあります。ご了承ください
c++だけ動作確認しています。
https://atcoder.jp/posts/1456
VSCode 拡張機能を使うと簡単に作った環境にアクセスできるためおすすめです。
- Dockerのインストール
- Gitのインストール
- VSCodeの設定
- AtCoder環境へのアクセスの仕方
- 問題解く時の流れ(Rust以外)
- 問題解く時の流れ(Rust)
- テンプレートファイルを変更(Rust以外)
- テンプレートファイルを変更(Rust)
- 各言語ごとの環境
- VSCode以外を使う場合の流れ
Dockerというものを使って環境構築をしていきます。
もし、インストールをしていない場合はDockerDesktopのインストールをしてください。
こちらからダウンロードしてください。
こちらからダウンロードしてください。
こちらからダウンロードしてください。
もしgitの環境構築はまだの場合は、インストールしてください。 直接このリポジトリをダウンロードしても問題ないです。
まず、VSCodeを開きDev Containersという拡張機能を入れてください。 https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
まず、ターミナルやコマンドプロンプトを開き
git clone https://github.com/thirdlf03/setup-atcoder.gitと入力してください。
その後、DockerDesktopを起動。 次に、VSCodeを開きフォルダーを開くでsetup-atcoderのフォルダの中に色々な言語があるので、自分の使いたい言語のフォルダーを開いてください。
そうすると右下の方に
というボタンが出てくるので、Reopen in Containerをクリックしてください。
すると、VSCodeが再起動し、コンテナが作成されます。
これで、環境構築が完了です。
以下、Rustだけは手順が違うので注意してください。
この環境にはatcoder cliとonline-judge-toolsが入っています。
まず、ログインしましょう。
VSCodeのターミナルを開き
bash~~ ~~acc login~~ ~~oj login [https://atcoder.jp/~~](https://atcoder.jp/~~) ~~
でそれぞれ、名前とパスワードを聞かれるのでログインしましょう。
↑2025/04/17現在、この方法ではログインできなくなっています。
代わりにacloginでログインしてください。
https://github.com/key-moon/aclogin/blob/main/README.md
aclogin次に、解きたい問題のテストコードを用意していきます。
acc new 解きたい問題例えば、abc200の問題を解きたい場合は
acc new abc200
cd abc200と入力してください。
すると、VSCodeの左側にあるフォルダーにabc200というフォルダーが作成され、 それをクリックすると問題番号が書かれたフォルダーができるので、その中にあるMain~~ってファイルにコードを書いていきます。
コードを書き終わったら、テストをしていきます。
例えば、abc200のa問題を解いた場合は
cd aと入力した後
ojtと入力してください。
すると、テストができます。
テストが通ったら、提出をしていきましょう。
bash~~ ~~acs~~ ~~と入力すると提出が始まります。
ターミナルに
Are you sure? Please type "abca"
と出たら、abcaと入力してください。
するとVSCodeがURLを開くか聞いてきます。
もし、提出の結果が見たい場合は、URLを開いてください。
これで、問題を解く流れが完了です。
↑2025/04/17現在、この方法では提出できなくなっています。 コンテスト開催中であれば今まで通りacsで提出できますが、おすすめはしていません。
acs次の問題に移る場合は
cd ..と入力した後
cd bの用意に移動してテストや提出を行なってください。
VSCodeのターミナルを開いた後
yes 2 | cargo compete init atcoder && cp ./templates/compete.toml .と入力してください。
その後、atcoderにログインしていきます。
cargo compete login atcoderログイン後、作成したい問題を指定します
cargo compete new abc~~ or ccn abc~~問題のディレクトリが作成されるので、
cd abc ~~と移動後、左側のabc~~の中にsrc/binと見ていくとそれぞれ
a.rs
b.rs
とあるので問題に対応するコードを入力していってください。
a問題をテストする場合は
cargo compete test a or cct a提出する場合は
cargo compete submit a or ccs aacc newをした時にできるMain~~ファイルのテンプレートを変更することができます。 変更する場合は、workspace内のtemplatesフォルダにあるMainファイルを変更することでテンプレートを編集できます。
編集後、acc new ~すると変更が反映されています。
workspace内にある、compete.tomlに [template] src = ''' fn main() { todo() } '''
という欄があるので、ここを変更してください。 *templates内にあるcompete.tomlじゃないので注意してください。
この環境で作業したデータは、setup-atcoderのフォルダの中にある各言語のフォルダの中にあるworkspaceの中に保存されています。
gcc 12.3
g++ 12.3
atcoder cli
online-judge-tools
openjdk 17
atcoder cli
online-judge-tools
PyPy 3.10-v7.3.12
atcoder cli
online-judge-tools
rustc 1.70.0 cargo compete
まず、Dockerの起動(DockerDesktopの起動)とこのレポジトリをcloneしてください。 bash git clone https://github.com/thirdlf03/setup-atcodercd setup-atcoder
その後、ターミナルで
chmod +x ./setup.sh && ./setup.sh を実行し、自分が構築したい言語を選んでください。(現在C++のみ)
セットアップ完了と出るとコンテナが完成しています
まず、Docker(DockerDesktopの起動)の起動とこのレポジトリをcloneしてください。 bash git clone https://github.com/thirdlf03/setup-atcodercd setup-atcoder
自分の構築したい言語のディレクトリに移動します。 今回の場合、c++にしようと思います。 bash cd cpp
その後、以下のコマンドを実行してください。
docker build -t cpp . && docker run -v ./workspace:/opt/workspace --tty --name atcoder_cpp_container -d cppコンテナに入りたい場合、ターミナルやコマンドプロンプトで
docker exec -it atcoder_cpp_container /bin/bashと入力してください。 atcoder_言語名_container
入った後、
cd /opt/workspaceに移動してください
このworkspaceディレクトリが、cloneしてきたディレクトリの配下にあるcpp/workspaceのようなworkspaceと紐づいています。
もし、コンテナがストップしてしまった場合は
docker container start atcoder_cpp_containerで起動できます!