Do you have exceptional programming skills? Can you make computers perform like silicon puppets with just a few well-expressed commands? Are you at ease when faced with a hard stop and a group of peers evaluating every line of your code? Here’s your opportunity to display the grace of the true professional in a reward-rich environment.
(優れたプログラミングスキルを持ってる? ちょっとしたコマンドだけでコンピュータを人形のように操ることができる? プログラムを強制停止させて、自分のコードを1行づつまわりのみんなに診断されても平気でいられる? これはあなたの真のプロ技術を発揮する賞金付きのコンテストだ。)
先週末にかけて行われた Google Code Jam 2003、いわゆるプログラミングコンテストに参加してみた。
概要はこんな感じ。
参加者は登録をすませたあと、決められた期間の間にArena と呼ばれる Applet/Java Web Start のツールを使い開発を行なう。 Arena では開発者どうしのチャットや、コンテンスト問題の表示とコーディング、限られた時間でテストまで済ませるのでそのためのカウントダウンといった機能が実装されている。
使える言語は Java, C++, C#, VB.NET 。 どの言語を使用しても得点には影響なく、問題ごとに使う言語を変えてもいい。
テストエリアへ入室直後にカウントダウンが始まり、問題を見てArena備えつけのエディタにプログラムを書き、Compileボタンを押すと自分のコードがサーバへ送られてコンパイルされたあと結果が表示される。
コンパイルが終わったコードはテスト問題に書いてあるテストケースや自分でテストケースを作ることで結果が正しく返ってきているか試すことができる。 ラインデバッガのようなものは付いていない。 テスト結果などからこれでOKだと思ったところで Submit し、自分の解答を提出する。 1度Submitするとその後はコードの変更はできない。
問題のウインドウを開いたときから(だと思うが違っているかも)Submitするまでにかかった時間によって点数が付けられる。 プログラムの実行スピードや、メモリ効率といったところは評価対象にならない。 目的のことをやりとげるコードをいかにして早く書くかというところに重点がおかれたものだ。 最後に、用意されたシステムテストをパスすることで実際の得点になる。 そのため、適当なコードを早く書いてSubmitしても0点になってしまうだけだ。 (Qualification Round ではなかったが、Challenge Phase という段階では、参加者がライバルのコードをチェックし、うまくいかなさそうなテストケースを試すことでライバルのコードを潰す時間も用意されている。 ここでもシステム出した答えと違う結果が返ってくると 0点になってしまう。 うまく相手のコードを潰すと自分に 50点もらえるが, 失敗すると逆に 50点減点になる。)
予戦問題は全部で2問、250点満点の問題と1000点満点の問題だ。 もちろん1000点の方が問題は難しくなっている。 この2問を1時間の間に解かなければならない。
と、こんな感じだったのだが、結果は玉砕。
250点の問題を25分ほどかけてSubmitし、134.33点。 1000点の問題はコーディング途中で制限時間がきてしまったため 0点。 250点の問題はシステムテストを通ったため、最終得点も134.33点。 残念ながら上位500人に入らなかったため次のラウンドに進めなかった。 どういう基準かわからないが Rating は 1347 とのこと。 (0-2200+ という分けかたがあるので参加者のうち半分よりは上ということだろうか)
ここでかっこよく、「余裕でした」なんて軽ーく予選突破できていればよかったけど、まぁシリコンバレーのエンジニアでもこんな程度です(笑)。
負けおしみを言わせてもらうなら、普段時間に追われながらコーディングなんてしないから一度詰まると焦ってしまい必要以上に時間がかかってしまった。 あと250点の問題終わったあと、1000点の問題をオープンするまでクロックが止まってると勘違いしたので5分ぐらいロスしたのも痛いところか。 上を見ると1250点中1100点以上とってる人もいるんですが、マジ? 問題読んでタイプするだけでそれぐらい時間かかりそうな気がしそうなんだけど…。 上には上がいるもんだ。 とにかく、自分もまだまだと実感させられたコンテストだった。 もっとがんばりましょう。
ちなみに、問題の概要は…
Continue reading
Comments