ざっとやってた流れ

1日目

  • 開始時間。問題を読む読む。tfold よくわからない…。@tzik さんが問題文の概訳を書いてくれてた。
  • @nodchip さんがソルバーを書き出す。まずは fold 無視。
  • wget を直接叩いたりしながらサーバとのやりとりを確認。/eval しちゃダメ。
  • ソルバーv0.1 完成。完成後に入力フォーマットを言われ、テストデータ作成プログラムを書く。
  • この辺で wget wrapper が作られている。auth token がハードコードされてるから便利。
  • 問題状況を確認するために spreadsheet 作成。
  • /train で作った小さなケースで確認。計算時間的には 10 くらいが限界じゃないかなーくらい。
  • tfold の意味がようやく分かる。
  • 結局 lightning では size 3,4,5 だけ /guess して 120 点。

2 日目

  • 昨日 /eval → ソルバー(シングル版) → /guess のやりとりが面倒だったので python で wrap する。
  • fold や tfold の対応が実装される。
  • ついでに mismatch だった場合に反例を付け加えてソルバー再起動する形を作る。夕方。
  • eval に渡す値を 256 個から 512 個へ倍増。1 問あたり /eval /eval /guess の 3 request 以上になる。
  • @nodchip さんが高速化を頑張ってるので、そこにつけ込んで得点を取るタンポポワークを淡々とこなす。5 req/20 sec 対策のため手動でやっている。

3 日目

  • @nodchip さんは並列化のために親子プロセスを分け、@tzik さんは wrapper を並列化させる。
  • その間私は single 版で淡々と得点を取るタンポポワーク。そろそろ全問題チャレンジできるか不安になり始める。
  • 並列化システムでデバグがしにくくなる。I/O の全ログを取るシステムをようやく作る。
  • CPU がネックになる問題を解いてる隙を突いて自動化システムを作成する。
  • 19:00 @nodchip さん帰宅。
  • 20:00 @tzik さん、解を見つけられなかったログからフィードバック部分にバグを発見&修正。
  • 23:00 @tzik さん、ソルバー周りでバグ発見&修正。この時点になってようやくソルバーのコードを真っ当に見始めている。
  • 24:00 半自動化システムに残り問題の情報を与えて帰宅。

4 日目

  • 8:00 に起きて進み具合を確認。ついでに家マシンでちょっとチャレンジさせて 2 点増やすなど。
  • 9:30 何か form に色々入力する。ここでようやく auth token がどこから取得できるか知る。