読者です 読者をやめる 読者になる 読者になる

ICFP Programming Contest 2010

http://icfpcontest.org/
今年も時系列でお送りします。問題については konnさんの翻訳 など。

  • 18日21時 開始。
  • 19日0時 回路の構文がなんとなくわかった。ゲートの入出力表作成に入る。
  • 19日2時 入出力表できたー!と思って手元で17文字計算してみると結果が合わない。ショック。
  • 19日4時 手計算の間違いに気づく。どうして2cmしか離れてない場所に写す文字を間違えるのか…!ともかく一区切りついたので寝る。
  • 19日8時 起床。keyを出力する回路を考える。
  • 19日12時 むずいー。
  • 19日18時 わかんねー。
  • 19日22時 やめたくなってきた…。
  • 20日2時 ようやく使えそうな方法を思いついたので回路生成スクリプトを書く。
  • 20日3時 keyが通った!達成感がハンパない。
  • 20日4時 3進数コード解析のため、車のコードを集めたりしつつ寝る。
  • 20日10時 おはようございます。ずいぶん出遅れてしまったけれど頑張ります。
  • 20日14時 車のエンコーディングは分かった。次は燃料。
  • 20日15時 最初の燃料を提出。これでやっとスタートラインという感じ。
  • 20日16時 環境整備。車の取得と燃料の提出をするスクリプトを書く。
  • 20日17時 80個ほど提出。そろそろまぜろよ(AA略)
  • 20日22時 単純なソルバを書いたり適当に手で解いて提出してみたり。
  • 21日2時 寝る。にはスコアボード1画面目まで上がれるといいなあ。
  • 21日11時 よくねた。寝てる間に増えた車の分を一気に提出。
  • 21日15時 賢いソルバを書こうとして失敗。
  • 21日18時 やっぱり最後は力技。車取得&燃料提出スクリプトを回しつつ手動で問題を解いて提出していく。
  • 21日20時 100個くらい解けたけど、今からじゃスコアにほとんど影響しないだろうなあ。
  • 21日20時半 サーバー頑張れ超頑張れ。
  • 21日21時 終了。

結果、1644種類の車を解いて696点でした。スコアボードで上から24番目だから29位でしょうか。回路の作り方が思いつかなくて土曜一日潰したのが痛すぎでした。
今回並列で出来る作業が多いのと提出の早さが重要ということで、複数人のチームに有利だった印象です。燃料産業は個人事業主には厳しいですね。

時間がなかったのと今回 100% Ruby だったので凝ったソルバは作れませんでした。代わりに irb 上からこんな風に提出できるようにして、人力で計算して提出していました。

irb(main):066:0> s.submit(59899, [[[2**17+1]], [[2]]])

係数の調整も手動です。 OpenOffice Calc に式を入力して調整したりしてました。


おまけ。時間ごとの提出数。
半分くらいは最後6時間で提出してるのでスコア的にはあまり効かなそうです。寝てる間スクリプトを回しておかなかったのが悔やまれます。
あとみんな終了間際に車追加しすぎです。