2008/07/05(Sat)ACM/ICPC 2008 Domestic

はてブ数 2008/07/06 1:55 計算機な日記::プロコン つーさ

参加記録。

去年のTokkan-Kojiと同じメンバーでしたが、今年はTeam ksk (accelerated) で出場。
ksk は去年のチーム名選考の第二候補だったかな。単にメンバの苗字の頭文字。
去年より少し進歩したつもりになって、後ろになんか付けようと。
SP2 とか IMproved とか。結局、kskとの関連で(加速された)が付きました。

今回の予選の目標として、個人的には4問を設定。
目標設定したせいか、数日前から胃にキテしまい、
前の日記の後も全然寝付けなくて結局2時間睡眠で昼頃大学へ。
あー、久しぶりだなぁ、この部屋!

トライアルセッション

Mが難しかった。
kstm.org がやたら早く4問提出していたのが気になったω

寝不足と1時間半の空き時間が、モチベーションをずりずりと引き下げる。
買い出し。大量のお菓子による合宿所のような甘いにおい。気を引き締めていざ……

本番

と思っていたのにいきなり出鼻をくじかれる。
サーバが重くて問題を目にするまでに7分経過。ひどい。

A問題

A問題はスピードが大切だろうということで、
TopCoderのDiv2の250点問題レースになじみのある自分が担当。
太郎と花子は必ずカードを交換する。カードの枚数はたかだか100。
めんどくさいこと考えず総当り。適当に書いて提出。Correct Answer.
コンテスト開始から17分経過。この時点で、もうダメかもオーラが漂う。
全問題のプリントアウトが届く。
__________がこの時点で2問。相変わらずはえー!

B問題

BとCの問題を眺めて、とりあえず自分がB問題を担当。
焦っていたせいでしょうか。読解をミスってサンプル通らない。
先にCのプログラム入力を初めてもらって、再度読み直す。
落ち着いて、月曜土曜エラトステネスを作り。
C問題のプログラミングに割り込んで、Correct Answer.

この問題、サンプルケースがとても不親切だと思った。
他の問題のサンプルには、人が考えてもまぁ解ける範囲のサンプルが1つはあるんだけど、
この問題に関してはとてもでかい数字で始まってて素因数分解できる感じがしなかった。
サンプルで読解ミスってないかの確認ができなかったのがあいたたた。

C問題

式パーサを書く問題。他のメンバに丸投げしてDを考えるが、どうしてもバグ取れないらしい。
自分は口頭で問題文の説明を受けて、プログラムを眺める。
簡単な式パーサは割と慣れていたので、コードを眺めるも、パース部分に問題は見あたらない。
一つ変数名の衝突(!)でバグってたのを修正。
プログラムはちゃんと動いてるのにサンプルの答えと一致しない、とか……あれあれあれ?
実は紙媒体にしてもらった問題に真理値表の画像が印刷できていなかったことに気づかなかったのが不幸。
1+2 や 1*0 の解釈を間違えていることに、なかなか気づかず30分近くロス。
それを直してなんとか、Correct Answer.

ちなみに、この真理値表の画像の存在には、戦いの3時間が終わるまでとうとう気づかず
コーチPCの前で問題を開いたとき「何ですかその表?!」となる。
自分らで問題ページを開かなかったのがまったくもってうんこでした。

ここまでで1時間半。

D,E,F どれをやろうか。

Dがぱっと見楽そうだなと思っていたけど、
あれ、いつものダイクストラじゃないじゃん……と勘違い。
これという解法が思いつかず。

Eを考えてみる。

FはめんどくさそうだということでEを考える。
単に球の中心の線分と各点の距離求めて最小値返すだけじゃん?
あれ、そういや、点と直線の距離ってどう求めるんだっけ、と真っ青。
あーでもないこーでもない、と考えたところでトイレへ立つ。
用を足しながら、そもそも当初に立てた方針が誤っていることに気づく。
あ、そんな簡単じゃないじゃん……。
「だ、ダメじゃn!」 そしてE問題放棄。あぁ残り1時間切っちまった。

再びDへ

20分ほど考えて、解法を思いつく。違うよダイクストラで解けるよ俺バカ!!
しかもそれ1時間前に既に他のメンバが思いついていたらしい……え、それならそうとωωω
いずれにせよ、あと30分と焦った脳じゃちょっとプログラム書けそうもないなぁ……。
この時点で予選通過枠下から5番目くらい「……通過は厳しいかなぁ」。
じわりじわりと順位が下がっていくのを眺めながら、とりあえず書き始める。
書きかけの時点で既にぐちゃぐちゃコード。
コンテスト残り5分。「やっぱり無理に決まっとろー!」と 放棄

後は

入ってくんな、入ってくんな、と祈りつつ順位のページをひたすらリロードですね!
「なにこの去年と同じ展開……」

予選通過枠順位をちゃんと数えてみたら、なんと、まぁ……
 あ と 1 つ 順 位 が 下 が っ た ら 糸冬 了。
そう、今ケツ。32位(26位/26枠)。
ふいに、昨年度アジア大会で起きた京大チームのドラマが蘇る。

「こういうときって他の大学にドラマがあるんだよねぇ」
「うーん、今年はダメかなぁ、うーんまぁ、こんな年もあるよなぁ」
なんて、諦めて話しながら

大会終了。

順位は……

あぁ、くそ順位のページ重くて開かないぞ!
無駄を承知でリロード連打ω

結果が出る。

えーと、ksk ksk …… 32位(順位変わらず)。

……通過……か。

終わって

なんか、通過はまぁ嬉しいけど……素直に喜べない。
目標の4問に届いてないのと、何れかの問題の提出があと数分遅れていたら予選落ちなわけで。
なんというか、試合に勝って勝負に負けた感があった。
そう、楽しんでコードが書けなかった。それが何より残念かも。

今回は、大会中通して焦っていた気がする。
前のめりになることも大事だけど、もっと落ち着かないといけないと思う。
足下救われないように、確実に踏みしめて。自信を持って、そして攻撃的に……。

打ち上げは辞退してサークルのカレーミーティングへ。
こっちもあんまり実らなかったなぁ……。

なにとも、お疲れ様でした。