2008年7月27日日曜日

Google Code Jam 2008 Round 1にて敗退

3つのサブラウンドに分かれて実施された、Google Code Jam 2008 Round 1 が開催されました。私は Round 1B および Round 1C でのエントリーとなりましたが、残念ながらここで敗退という結果になりました。

予選に比べて問題の難易度が上がり、Round 1A を観戦している段階で危機感を感じていたのですが、英語力やプログラムをすばやく書く訓練が足りなかったのが敗因だと思います。もちろんアルゴリズムそのものについての定跡研究が足りていないというのが一番なのかもしれません。仮に次回も参加するとして、どういったトレーニングを積めばいいのかというのがすぐには思いつかず、せいぜい過去問・練習問題を数多くこなすということやTopCoderなどの他のコンテストに参加するというくらいなのかもしれません。とはいってもTopCoderは使える言語やコンテストのシステム的にちょっと肌に合わないので参戦するのに躊躇しているところです。

今回の獲得ポイントとしては、Round 1B で 5点、 Round 1C で 15点と共に Problem A しか歯が立たなかったという状況で、 Round 1C についてはもう5分早く書ければギリギリ通過という結果でした。振り返ってみると、時間が2時間になる本選ではアルゴリズムとスピードと英語力が求められるという点で非常に過酷な戦いだったのかもしれません。評価点としては予選の問題をたくさん時間をかけてなんとか全部答えられたというところでしょうか。

コンテスト全般を通じて楽しめた要素はそれなりにあったのですが、プログラミングという「種目」そのものが本質的に自分と孤独に戦うという要素が多く結構なストレスを感じる一方、カタルシス的な要素が比較的少なく、それを理解できる人間も限られるということで、一般向けにアピールするにはなかなか難しい分野なのかもしれないというのが率直な感想でした。勝ち残った皆さんの健闘を祈ります。

追記:
Round 1 でペナルティタイムの計算方法が変更があり Small の時間のみが考慮されるルールに変更されましたが、スコアボードを見るとどうやら影響を受けていたようでSmallの問題を一刻でも早く回答するのがより重要な要素になっていたようでした。仮に今回ギリギリ通過しても、間違いなく次で落とされるでしょうし、くやしかったらもう1問解けということになるのですが、ここにきてルールが変更されるというのはいかがなものでしょうか。

確かに予選ラウンドではペナルティタイムは通過の要件とは関係がなかったのですが評価基準の一貫性を崩してしまったことについては関係者の熟考を求めたいところです。また、Round 1C の Problem A ではコンテスト中に問題文が修正される事態が生じたり、こちらで議論されているところを見ると、ローカルサイト出場者が18歳以上であることを確認する手段を現段階で用意していなかったりと、結構杜撰な部分が出てきているようにも見受けられます。前回とは違うシステムを使っての初めてのコンテストだということもあるのでしょうけれども、しっかり運営してほしいところです。