ゆじの独り言

いろいろ書きます

RustでAtCoderに挑戦してみる

こんにちは、ゆじです。

前の記事でAtCoderに初挑戦したというブログを書いたんですが、勉強がてらRustで挑戦してました。Rustで挑戦するにあたり、コーディングするための環境を整えるために準備が少しあったのでメモを書いておこうと思います。

Rustをインストールする

AtCoderでは2024-05-28時点では1.70.0が使われているので、まずそのバージョンをインストールします。

rustup install 1.70.0

cargo-competeをインストールする

cargo install cargo-compete

次にcargo-competeというライブラリを利用します。こういう便利なツールを作っていただける方に感謝です。 これを使うと何が嬉しいかというとコマンドでテストを実行したり、作ったプログラムの提出をできるやつです(雑ですんません。

github.com

作業フォルダを作成する

ここでは作業フォルダとしてatcoderフォルダを作っています。その配下で初期化とatcoderのログインを行います。

mkdir atcoder
cd atcoder
cargo compete init atcoder
cargo compete login atcoder

compete.tomlを変更する

compete.tomlの修正が必要なので以下の情報を修正しました。

[test]
# Toolchain for the test. (optional)
toolchain = "1.70.0"

# 省略....

[submit]
kind = "file"
path = "{{ src_path }}"
language_id = "5054"

コンテストをダウンロードする

ここではコンテストではなく競技プログラミングの鉄則の問題をダウンロードしていますが、tessoku-bookというところをabc355みたいな風にコンテスト名に変更するとそのコンテストの情報を取得できます。

cargo compete new tessoku-book

実際にコードを書く

use proconio::input;

fn main() {
    input! {
        n: i32
    }
    println!("{}", n * n);
}

コードを書いたらそのテストは以下のように実行できます。

cargo compete test a01

最後、提出するときは以下のような形でできます。

cargo compete submit a01