Kanisaruの365日

学習より創造である。 創造こそ生の本質なのだ。

Rustでプログラミングコンテストに挑む

はじめに

Rustが素晴らしいので、腕試しにAtCoderに参加する方も多いのではないでしょうか?

いくつかのお作法をまとめてみました。


開発環境
macOS 12.5 Monterey
Apple M1 Pro
メモリ 16GB


Rustでの参加方法

こちらの、公式ホームページで仕様を確認しましょう。 特に、使用できるクレートを確認しておきましょう。 事前コンパイルも大事です。

Rustバージョン指定

Rust本体のバージョン指定はCargo.tomlと同じフォルダで次のようにします。

$ cd プロジェクトのフォルダ
$ echo "1.42.0" > rust-toolchain
$ rustc -V
rustc 1.42.0 (b8cedc004 2020-03-09)

input!マクロで入力の手間を省く

Rustの入力処理は面倒ですが、これには2020年に外部クレートとして追加されたinput!マクロを使います。

input!{
       n: i32,
       m: i32,
      a: [i32; n],
}

cargo-atcoder ツールで直接提出

cargo-atcoderは@tanakh さんによるRust での AtCoder ライフを豊かにするためのツールです。

このツールによりローカルで書いたコードをコマンドラインから直接提出できます。 また、testサブコマンドで提出コードをチェックをすることもできます。

$ cargo atcoder new abc123
$ cargo atcoder test a

提出方法は次のようにします。

$cargo at coder submit a
$cargo atcoder status

その他 参考等

Rustで競技プログラミングの入力をスッキリ記述するマクロ - Qiita

cargo-atcoder を使って Rust での AtCoder ライフを超快適にする - Qiita