競プロ弱者の解答

競プロ弱者の成長記録

非IT系のアルゴ専門Python競プロerがAHC008のテスターを動かすまで

atcoder.jp

AHC008でAHCに初参戦しました。

約2年ぶりの記事なのでスペックを書くと
〇40過ぎの非IT職の子持ちのおっさん
〇競プロ経験あり(アルゴのみで、使用言語はPythonだが引退気味。一応青コーダー。)
〇Kaggleにはときどき参戦
です。

何だかIT系の方はMacを使う方も多いようですが、
私は持ち運びの利便性を重視した、軽くて小さめのWindowsPCを使用しています。

また、エディタは何度かVSCodeに挑戦しましたが、結局paiza.ioに戻りました。
KaggleをするときにはGoogleColab上でJupyterNotebookを使いますが、競プロはpaiza.ioです。

こんな背景でAHC008に参戦しました。

コンテスト開始!

・まずは公開されているローカルテスタをダウンロード
 よくわかりませんが、Windows用のコンパイル済みバイナリをダウンロード。
 眺めていたらダウンロードファイルが更新されたので、更新済ファイルをダウンロード。
 ⇒これは問題なくできました。

・readmeを読んで、使い方を理解。
 windowsの場合の操作もPythonn用の例もあってこれなら余裕のはず。

 python3 で main.py というプログラムを実行する場合
 cargo run --release --bin tester python3 main.py out.txt 

 Windows用のコンパイル済バイナリを使用する場合は
 cargo run --release --bin tester の部分を ./tester.exe に置き換えて下さい。

 
 ⇒①書いてはいませんが、コマンドプロンプト上で動かすんですよね?
   また、私は test01.py ファイルを作ったので
   コマンドプロンプト上で
   ./tester.exe python3 test01.py out.txt
   はい動きません。

  ②冗談です。
   READMEの上部に
   「このREADMEが置かれているディレクトリに移動して作業することを想定しています。」
   と書いてあります。
   ダウンロードファイルはデスクトップに展開したので、
   コマンドプロンプト上でcd操作を繰り返して、dirでREADMEのあるディレクトリであることを確認して、
   ./tester.exe python3 test01.py out.txt
   はい動きません。

  ③そういえば、python動かすときって、python3の部分をpythonにしたら動くことってありますよね?
   ./tester.exe python test01.py out.txt
   はい動きません。

  ④どうしましょう?コンテスト中なので、うかつにTwitterでヘルプを出せば、
   答えてくれた方に迷惑がかかるかもしれません。
   この時点ではまだ2月12日(開始日)

  ⑤そういえば、このPCってPythonのパス通ってる?
   paiza.ioやGoogleCloabでpythonを使えることと、
   このPCにPythonがインストールされていることは違いますよね。
   
   PythonそのものはAnacondaを何度かインストールしてそのままのはずですが。

   その辺が怪しい気がしてきました。

   Pythonのパスはもうよくわからないのですが、Anacondaが入っていたので、
   コマンドプロンプトではなくAnaconda Pronptを立ち上げて、
   (これならパスを考えなくてもPythonを起動できます)
   
   ディレクトリを動かして、
   ./tester.exe python test01.py out.txt
   「指定されたファイルがありません」
   はい動きません。
  
  ⑥もしかして、in.txtの部分って inフォルダに入ってた 0000.txt とかにしないとダメ?
   ./tester.exe python test01.py <0000.txt> out.txt
   「指定されたファイルがありません」
   はい動きません。

  ⑦指定されたファイルがありませんって・・よく考えたら0000.txt達はtester.exeと違うフォルダにありますね。
   tester.exeと同じフォルダにあるのは0000.txt達が入ったinフォルダ。
   0000.txt達をinフォルダから出してtester.txtと同じフォルダに移せば・・
   ./tester.exe python test01.py <0000.txt> out.txt

   はい動きました!!
   テスター操作AC!!   


この時点で2月24日の夜。
コンテスト終了まで48時間を切っているし、金曜は仕事です。

解法の方針はいくつか思いつきましたが、土曜日だけでは全ての方針は実装できません。

一番簡単そうな方針を実装して、エラーを潰してなんとか点数が出ました。

結果は402位でパフォ1224

もう一日あれば順位を上げられたかもしれませんが、
ひとまず参戦できたし、とても楽しかったのでよしとしましょう。

コンテストを開催いただきました
MC Digital様
AtCoder社様
ありがとうございました。

次回のAHCでは、
・はじめからAnacondaPronptを起動
ディレクトリとファイルの位置などPCの基礎はよく考える
に気を付けて、本格参戦したいと思います。