Rustで競プロがやりたい(2)

前回の続き、プロジェクトを hello_world から tester で作り直す。

build、run を一度実行しておき、launch.json を書き直しておく。 が、上側の Run/Build が消えてしまった。

再表示する方法が分からず、F5 を押しても再ビルドされるわけではない。 Ctrl + Alt + N で実行することで main.exe、main.pdb ファイルが作られて実行された。 正しい使い方ではないだろうが、ここで時間を使いすぎるのもあれなので一旦これでゴリ押す。

ここからは問題を解いてみる。 解く問題は鉄則本から。

amzn.asia

今回は A01 - The First Problem を解く。

atcoder.jp

use proconio::input; で入力を受け取れるようにして、input! {} で N の型を指定して受け取る。 最後に println!() で出力。

use proconio::input;

fn main() {
    input! {
        N: usize,
    }
    println!("{}", N*N);
}

これを実行するとエラーが出た。

調べた感じだと proconio が AtCoder でしか対応していないっぽい。

teratail.com

このまま提出してみると AC できた。

atcoder.jp

しかしなぜかコンパイルエラーが出ている。 他の提出を見ても同じエラーが出ている人がいない、なぜ。

調べたら、頭文字が大文字の変数がまずいらしい。 これは #[allow(non_snake_case)] を付けることで回避できた。

さらに出力を早くできるように use proconio::fastout;、#[fastout] も書き加えておく。

use proconio::input;
use proconio::fastout;

#[fastout]
#[allow(non_snake_case)]
fn main() {
    input! {
        N: usize,
    }
    println!("{}", N*N);
}

提出すると、先ほどのコンパイルエラーが消えた。

atcoder.jp

追記部分は以下の記事を参考にした。

qiita.com

今回はここまで、進めようとすると課題がどんどん増えていくような感じがする。