cargo-competeでAtCoder
sobonn
この記事は共同開発鯖 Advent Calendar 2021 13日目の記事です。 https://qiita.com/advent-calendar/2021/growthers
共同開発鯖のカレンダー | Advent Calendar 2021 - QiitaQiita Advent Calendar
共同開発鯖のカレンダーページです。
qiita.com
はじめに
AtCoderをRustでCLIでやりたかったのでその記録です。
cargo-competeのインストール
$ cargo install cargo-compete
cargo install
はバージョンの更新をするのに向いてないのでcargo-update
も入れる。
$ cargo install cargo-update $ cargo install-update --all # このコマンドで確認と更新ができる
使い方
詳しいことはcargo-competeのREADME.mdを参照。
cargo-compete/README-ja.md at master · qryxip/cargo-compete · GitHub
A Cargo subcommand for competitive programming. Contribute to qryxip/cargo-compete development by creating an account on GitHub.
github.com
初期設定
任意のディレクトリで下記を実行
特に理由がなければ2を選択 (おそらく3を選択すれば任意のrustのバージョンとcrateが使える)
$ cargo compete init atcoder Do you use crates on AtCoder? 1 No 2 Yes 3 Yes, but I submit base64-encoded programs 1..3: 2 $ cargo compete login atcoder
AtCoderで使用されるRustのバージョンは1.42.0なのでtoolchainを入れる。
$ rustup toolchain install 1.42.0
必須ではないが、templateを自分好みにいじる。
[template] src = ''' use proconio::{fastout, input}; #[fastout] fn main() { input! { } todo!() } '''
問題&テストの取得と提出
new
でディレクトリを生成する。
引数はコンテストのURLの末尾(ex. abc230, abs, typical90)
--open
をつけると問題文をブラウザで開く。
$ cargo compete new abs $ cd abs
コードを書いたらsubmit
でテストと提出
テストが失敗した場合提出は行われない。
$ cargo compete submit abc086a
感想
割と楽。
かつ快適。
CLIはいいぞ。
SHARE