TCO2011 Marathon Match Final Round

本当に色んな方面に対して申し訳なさでいっぱいです。

  • まず持っていった日本語キーボードが当然のように認識されない。OKこれくらいは想定内。
  • Ubuntuを起動。今日はここに閉じこもるつもり。
  • vimが入ってないことを確認。まあ、これも想定はしていた。
  • Makefileを書き始める。書いてる途中でintroductionが始まった。
  • 開始時刻になって問題が公開されたらしい。まだMakefileを書いてる。
  • Makefileを書き終わって問題文を見る。問題文が長いことと、制限時間が10秒でキューが間違いなくどん詰まりになるであろうことを確認。
  • とりあえずメソッドの型だけ見てコンパイル通るはずのコードを書く。複数ファイルに分けてたり、マクロの定義とかあるので結構手間取る。
  • make。失敗。ああMakefile書き間違えてた。修正。make。失敗。あれ、どこで間違えたの…?
  • g++が無い的なことを言われている気がする。えっ?
  • 試しにint main(){ return 0; }なプログラムをg++でコンパイル。無いって言われた!
  • 確かにUbuntuが入っているとしか書かれていなかったけど、g++ってデフォルトで入ってるんじゃないの?
  • これはWindowsでやれと言われている?Windowsでプログラミングとかまともにやったことないけど、cygwinというのがあれば大丈夫なことは知ってる。
  • cygwin無いんですけど!
  • コンパイラが入ってないということはありえないのでどこかに存在はしているはず。でもどこにあるのかは知らない。
  • え?もしかして詰んでる?前日に冗談で言われていた不参加(未提出でレート減少を防ぐ)を数分間真面目に考えてしまった。
  • しかたないのでArenaで直書きしよう。
  • Arena入っても問題開けないんですけど…。
    • 後に、Arenaからは提出できないのでwebから出せと言われた。
  • 既にどうしようもない状況ではあるけど、ローカルでのコンパイルを諦めて提出時のコンパイルエラー情報を元に修正することを決意した。はたしてポジティブスコアが出せるのだろうか?
  • この時点で相当時間が経過していた気もするけど、ようやく問題に真面目に目を通す。
  • なんか重み関数が大量に渡されている。
  • これまで参加したMarathonのなかで最もひどい結果だったBeautifulCrosswordを彷彿とさせる。
  • 細かいルールはよく分からないけど、こういうのは焼き鈍しとかが見える。
  • とりあえず正のスコアが出るものを書こう。
  • 書いた。提出。当然コンパイルエラーで弾かれる。
  • 複数のファイルを連結したものを提出しているせいでコンパイルエラーメッセージの行数がどこを指しているのか分かり辛い。
  • 格闘の末、コンパイルは通るようになった。全部エラーで落ちてる。うん、そうだと思ったよ。
  • 微調整後、ようやく一部のケースで正のスコアが出るようになる。
  • 問題文を読み直して正のスコアが出るようになった。凄く安心した。
  • 1st submit。低いけど、そこまで絶望するほどではない。
  • さて、そろそろ真面目に方針を考えよう。一目焼き鈍しだけど、焼き鈍しは経験不足もあってパラメータ調整を時間内に完了させられる自信がない。
  • それ以外の方針を考える。
  • …無理じゃないだろうか。焼き鈍し以外に何も見えない。
  • とりあえず最も単純な山登り法で書く。さてスコア関数を書くか。
  • スコア関数を書いて山登り法書いた。提出。相変わらず低い。
  • 公式のテスターと自分で定義したスコア関数の値が違う。
  • 問題文をもう一度読み直す。えっ3番目の試合がunofficialってなんのことですか?
  • ローカルで何もできないので提出回数がひどいことに…
  • スコア関数を書き直しているうちに強制夕食タイム。作業全然進んでないんですけど…
  • 他の参加者が同じ卓で問題について各自頭をひねっている間、自分は低レベルなデバッグのことを考えざるを得ない状況だった。
  • 夕食後、デバッグ中に公式のテスターがあったことを思い出して絶望的な気分になった。ベタ移植するだけじゃないですか…
  • 正しいスコア関数を書き終わった時点で残り2~3時間位。最下位独走中なのでなんとか脱出したい。
  • やっと真面目にスコアを分析してみる。これは自明にmatch timeゲーですね。
  • 近傍の選び方とかや焼き鈍しの温度調整などをいじるが、このあたりになると当然のようにキューが混む。
  • そしてローカルでコンパイルできないので待ち時間中はそんなにできることがない。
  • この辺では既にやる気が消失していたように思う。
  • standingを眺めて観戦者モードになっていたり、観戦席で楽しそうにはしゃぐ子供を眺めて和んでいたりした。
  • パラメータを微調整しながら何事もなく終了。かなり差がついた単独最下位だった。
  • あたかも環境の不備が原因であるかのように書いているような部分もあるけど、遅見えだったし焼き鈍し苦手(実質初めてみたいなもの)なので、環境が万全であったとしても順位はせいぜい10位くらいが限界だった気がする。
  • なんか、あらゆるものに謝りたい気分だった。
  • 冗談で言っていた「目標はちゃんとコンパイルすることです」がまさか達成できないとは…
  • こうして書いてみるとポジティブな部分はまったく無いようだけど、結構楽しかったという感覚はある。なので来年も参加できるように頑張りたい。