AtCoderをRustでやるのにcargo-compete導入してみた


以下の記事で紹介されているcargo-completeを導入してみてとてもよかったので、最低限使うまでのやることをまとめたいと思います。

詳しい使い方はREADME.mdが超丁寧に書かれているのでご参照ください。

上から順番にコマンドを入力していけば導入できるようになってるはずです。

導入

cargo competeのインストール

cargo install --git https://github.com/qryxip/cargo-compete

初期化

cargo compete init atcoder

以下のダイアログがでるので、1-3の数字のいづれかを入力

Do you use crates on AtCoder?
1 No
2 Yes
3 Yes, but I submit base64-encoded programs
1..3: 2

AtCoderにログインする

cargo compete login atcoder

Username/Passwordを入力してログイン

導入は以上!!!

コンテストごとにやること

初期化

cargo compete new abc189

-> これでディレクトリ作成とテストケースがダウンロードされます。

cd abc189

問題を開く

cargo compete open

-> ブラウザで問題がひらけます

問題ごとにやること

問題を解く

以下のようなディレクトリ構造になっているので対応する問題のファイルを実装しましょう。

-abc189
 - src
   - bin
     - a.rs
     - b.rs
     - ・・・

テスト実行

cargo compete test a

※この際自分は少し設定を変更して動きました。一番下に記載

提出

cargo compete submit a

す、すごい・・・!!!!便利すぎて感動しました。。

トラブルシュート

cargo compete testtoolchainが見つからないよというエラーが出た(うろ覚え)

compete.tomlを見ると、以下の設定になっていた。

compete.toml
toolchain = "1.42.0"

一方、rustup showで確認するとDefault host: aarch64-apple-darwinと表示されていた。
compete.tomlの設定値を以下に変更したらうまく動いた

compete.toml
toolchain = ""