これは RECRUIT 日本橋ハーフマラソン 2023冬(AHC018) の開発用ツールです。これらを用いることで、ローカル環境でプログラムのテストを行うことができます。
Rust言語のコンパイル環境が必要です。 https://www.rust-lang.org/ja を参考に各自インストールしてください。
コンパイルエラーになった場合、コンパイラのバージョンが古い可能性があります。 以下のコマンド実行することで最新のコンパイラに更新が可能です。
rustup update
Rust言語の環境構築が面倒な方向けに、Windows用のコンパイル済みバイナリも用意してあります。
以下の実行例では、このREADMEが置かれているディレクトリに移動して作業することを想定しています。
in
ディレクトリに、あらかじめ生成された seed=0~99 に対する入力ファイルが置かれています。
より多くの入力が欲しい場合は、 seeds.txt
に欲しい入力ファイルの数だけ乱数seed値(符号なし64bit整数値)を記入し、以下のコマンドを実行します。
cargo run --release --bin gen seeds.txt
生成された入力ファイルは in
ディレクトリに出力されます。
Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin gen
の部分を ./gen.exe
に置き換えてください。
seeds.txt
の各行の末尾に3つの整数 w
, k
, c
をスペース区切りで続けることで、生成する入力の W
, K
, C
の値をそれぞれ w
, k
, c
に固定できます。
一部のみを固定したい場合は、それら以外の値を 0
とします。
たとえば seeds.txt
を以下のようにすると、 seed=1, W=2, C=128
の入力が生成されます。
1 2 0 128
入力ファイル名を in.txt
、出力結果を書き出す先のファイル名を out.txt
、あなたのプログラムの実行コマンドを cmd
としたとき、以下のコマンドを実行します。
cargo run --release --bin tester cmd < in.txt > out.txt
実行が終わると、スコアが標準エラーに出力されます。 引数が必要な場合には
cargo run --release --bin tester cmd arg1 arg2 ... < in.txt > out.txt
のようにします。
Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin tester
の部分を ./tester.exe
に置き換えてください。
出力された out.txt
の中身を ビジュアライザ に貼り付けると、ビジュアライズが可能です。
C++などでコンパイル済みの a.out
というバイナリを実行する場合
cargo run --release --bin tester ./a.out < in.txt > out.txt
python3 で main.py
というプログラムを実行する場合
cargo run --release --bin tester python3 main.py < in.txt > out.txt
上記の <
が使えないため、以下のように実行してください。
cat in.txt | cargo run --release --bin tester cmd > out.txt
実行コマンドによっては以下の例のようにフルパスで指定する必要がある場合があります。
cat in.txt | cargo run --release --bin tester C:\Users\myname\AppData\Local\Microsoft\WindowsApps\python3.exe main.py > out.txt
コマンドのフルパスは gcm python3
というコマンドを実行することで確認できます。
入力ファイル名を in.txt
、出力ファイル名を out.txt
としたとき、以下のコマンドを実行します。
cargo run --release --bin vis in.txt out.txt
出力のビジュアライズ結果は vis.png
というファイルに書き出されます。標準エラーにはスコアを出力します。
Windows用のコンパイル済バイナリを使用する場合は cargo run --release --bin vis
の部分を ./vis.exe
に置き換えてください。
より機能が豊富な ウェブ版のビジュアライザ も利用可能です。