AtCorder用のDocker環境。 次の要件を満たすよう設計している。
- 同一の環境内で複数言語によるコーディングができること
- atcorder-toolsが利用できること
- atcorder-toolsにより、問題番号から雛形が自動生成でき、言語ごとに別ディレクトリとなること
Warning
include pathが正しく認識されていないためエディタ上でエラー表示される。 コンテナ内で動かす分には問題ないはず。 煩わしいのでそのうち解消する予定。
問題に応じた入出力とコードの自動生成の方法は以下。
- コンテナをバックグラウンド起動する
docker compose up -d- atcoder-toolsを動かす
コンテストを指定すると、各問題の入出力ファイルおよびコード雛形を自動生成する。
次はC++で「abs」の問題について自動生成する例。
docker compose run runner atcoder-tools gen abs --lang=cpp --without-login例えばコンテストを「abc403」、言語を「python」にする場合は次のようなコマンドにする。
docker compose run runner atcoder-tools gen abc403 --lang=python --without-loginこの時、生成されるコードのディレクトリ構成例は次の通り。
scr/{language}/{contest}/{problem}
となる。
.
└── src
├── cpp
│ ├── abc403
│ │ ├── A
│ │ ├── B
│ │ ├── C
│ │ ├── D
│ │ ├── E
│ │ ├── F
│ │ └── G
│ └── abs
│ ├── ABC049C
│ ├── ABC081A
│ ├── ABC081B
│ ├── ABC083B
│ ├── ABC085B
│ ├── ABC085C
│ ├── ABC086A
│ ├── ABC086C
│ ├── ABC087B
│ ├── ABC088B
│ └── PracticeA
└── python3
└── abc403
├── A
├── B
├── C
├── D
├── E
├── F
└── G
- devcontainer環境整備
- ショートカットまたはGUI操作によるテストと提出