ICFP Programming Contest 2009

http://icfpcontest.org/
年に一度のお祭りに参加してました。

  • 27日1時 3時開始だがどうにも眠いので寝る。今にしてみればこれは正しい選択だった。
  • 27日7時 起きて問題文を読み始める。
  • 27日10時 VMを実装してみたが動かない。あれー? と思ったら仕様の訂正が出ていた。遅くスタートすると他の人が先にバグに当たってくれるので精神衛生上良い。
  • 27日12時 なるほど Hohmann 軌道。
  • 27日13時 ビジュアライザをでっちあげる。VM とソルバは C で書いたので、ソルバから位置を出力してパイプでRubyのビジュアライザに流すようにした。
  • 27日15時 100x が解けた。
  • 27日18時 なぜか submit すると CRASH になるなー、と思ったら config 番号を入れるのを忘れていた。
  • 27日19時 いまさら Point クラスを作る。
  • 27日20時 なんか噴射 1.1 倍とかにすると 100x の点数上がるなー。
  • 27日21時 200x に取りかかる。多分タイミングを計って Hohmann 遷移すればいいんだよね。
  • 27日23時 計算合わない病に冒される。
  • 28日1時 わかんね (;_;) 寝る
  • 28日8時 今日も一日がんばりましょう。
  • 28日10時 分かった!符号間違ってんじゃん!
  • 28日11時 2003 はターゲットのほうが低い位置にあるのか。さんざん悩んだから今度は間違えないぞ…あ、あれ?
  • 28日16時 200x はこんなもんでいいや。300x はどうやるのかちょっと分からないなあ。
  • 28日18時 だらだらする。
  • 28日21時 pepsiso にあやかろうと思ってペプシしそを買ってくる。これは…しそだ…!
  • 28日23時 ニコ動を見る。
  • 29日2時 寝て起きたらなんか思いつくかもしれんし寝るか…
  • 29日10時 寝過ぎた。
  • 29日11時 わかった。ターゲットの近地点で接近するように、近地点を含む軌道に遷移するタイミングを調整すればいい。
  • 29日12時 3003 できた!
  • 29日15時 さて 400x ですが残り 12 時間でどこまでいけるやら。
  • 29日19時 ターゲットがほぼ円軌道な 4004 が一番簡単そう。自機と回転方向が逆だけどまあ接近してからの調整でなんとかなるだろう。
  • 29日21時半 4004 でデブリ5個回収できた。この時点で21位。20位以内に入ったら記念撮影しようと思ってたのに!
  • 29日22時半 4001 と 4003 でなんとかスコア獲得して20位。やったー
  • 29日22:56 10位!自分をほめてあげたい!
  • 29日23時 スコアボードが凍結された。なんか7位になってるけど上位がちょうど submit ト中で一時的に点数下がってるっぽい。
  • 29日23時 あれ、10 位ってことは validation のことも考えないといけないのか。コードに直に回収する順番書いてあるんですけど!
  • 30日0時 頑張って general な解き方に直していく。こんなことしてる間に絶対順位下がってるよなあ。
  • 30日1時 ここに来てまさかの謎CRASH。
  • 30日3時 終了。回収する順番を探索するようにして裏で回しておいたら少しスコア上がった。

物理とか幾何とか苦手意識があるんですが、それでも3日間挫折せずに続けられたので難易度設定は絶妙だったと思います。
参加してた皆さんお疲れさまでした。

追記

ひっそりとソース追加。やる気ない感じなのがバレバレですな…
icfp09-irori.tar.gz