CODE FESTIVAL2014参加記

すごいイベントがあったので、参加してきました。これまでに参加してきたプログラミングコンテストの中で最大規模だと思います。

1日目

お家のオフトゥンが大好きなので、前日入りせずに早起きして会場まで向かいました(最寄り駅が「のぞみ」停車駅なので、あんまり辛くない)。

秋葉原駅から会場に行く途中、どの通りで曲がれば良いのかあまり気にしていなかったので、若干不安になりましたが、看板を持ったスタッフの人がいたり、@kyos1704さん御一行を見つけたりして迷わずに辿りつけました。あと、会場の入り口で@tsunenarazuさんがアイコンTシャツを着て待っていました。

会場では過去に会ったことがある人がたくさん来ていたのはもちろんのこと、さすがに200人にもなると初対面の人もたくさんいました。

オープニング前の時間では熾烈なふぁぼとPokeが繰り広げられていたので、@blue_jamさんに「PokeしたいからFacebookのアカウントを教えて♡」と言いに行きました。

CODE FESTIVAL決勝(一応はメインイベント)では「難易度順に並んでいるとは限らない」と強く念を押されたので、下の方から読んでみました。やばそうなものしか見えませんでした。前半の問題を開くと順当な難易度のものが見えました。失敗したなぁと思いました。

結果はEまで解けました。つまり、パーカーは貰えませんでした。残念。

AC数を見ると解けそうなのはFだな〜というのは理解していたのですが、下の方の問題を詳しく見てみるとIが楽しそうな問題で、時間を使いすぎてしましました。「その座標を含む最小の正方形」を答えることができれば解けるなぁというのはすぐに分かったのですが、「LCAも書かないといけないし、実装量的に考えて、そんなに難しくないやろ〜」と根拠の無い自信が出てきてしまいました。ある程度考えて思いつかないならさっさと諦めて他に移るべきなのですが、今回は少し前まで練習していたICPCとは違って個人戦でしたので、止めてくれる人がいませんでした。個人管理も大切ですね。あと、難易度を見積もる力が足りていなかったのも問題です。

コンテスト終了後は、楽しみにしていた「寿司、ピザ、肉」を満足するまで食べました。ラウンジで@kitayutaさんと初エンカウントしました(おそらくTwitterでフォローしてから3年越し)。

ご飯を食べ終わった後は@nico_shindannin&@iwiwiさんによるライブ生放送(すごく緊張してるみたいなのにコーディングできるのはすごい!)を見に行ったり、@tsunenarazuさんのLT(和牛!=国産牛、ツラミは目の下にある)、@not_522さんのLT(幾何はいろいろな解き方を知るのが大事。作問するのも良い。鈍器オススメ)を見に行ったりしました。

決勝上位入賞者によるエキシビジョンマッチは、私が個人的に見てみたいと思っていたものでした。前のスクリーンで誰か1人の画面を映しながら解説の人が話す、という形式を想像していたのですが、それに加えて各個人の画面を会場の両端のディスプレイで見ることができ、まさに私が見てみたいと思っていたものが実現されていてとても良い物が見れました。

プログラミングをしている場面をコンテンツ化するには、何か工夫が無いと盛り上がらないだろうなぁ、と今まで思っていた(プログラミングコンテストは頭の中で考えたりバグを直している時間の比率が小さくないですし…)ので、今後何かがあったときに参考にしたいです。ただ、トップ層のコーディングを見たい、と思っている人が集まっているから盛り上がっているように見える、という疑惑はあるので、一般人に見せて盛り上がるようなコンテンツにするにはもう一段階何かが必要な気もします。

2日目

あさプロに参加しました。思っていたより来ている人が多かったです。早起きのプロ。

最初にAに取り掛かりました。WA。まあちょっと直せば通るやろ〜。

Bを解きました。WA。まあちょっと直せば通るやろ〜。

Cを開く。行列を累乗するだけやな〜。WA。まあちょっと直せば通るやろ〜。

結局1完しかできませんでした。

あさプロの後はAI Challengeの中の人やAOJの中の人のトークセッションを聞いたりLTを聞いたりタイピングで格の違いを見せつけられたり音ゲーのランカーさんのプレイを見に行ったりしていました(ちなみに私自身は音ゲーを全くやりません)。

チーム対抗リレーまでの時間が中途半端に残ってしまったので、個別指導塾に行って無理を言って昨日のI問題(Shapes)について質問をしました。@pepsin_amylaseさん、@kawatea03さん、@eomoleさんにいろいろと教えてもらういました。帰宅後になりますが、おかげで通すことが出来ました(コードはコレですが、座標圧縮で気分的にmapの代わりにsort, unique, lower_boundを使ったら行数がひどいことになりました)

チーム対抗リレーでは14番チーム"!rng"でリストバンドはオレンジ色でした。私のチームの作戦は、決勝の順位を参考に、「やるだけ問題瞬殺班」「難問検討班」「中間の班」の3つの班に分けるというものでした。私は「中間の班」で、成り行きでF問題「ループを探せ」を読むことになりました。ループは1個と分かっているし、次数1の頂点から(←これは円状のグラフが与えられた時に失敗します)DFSすれば良いんちゃうん?というあまり確信の持てないアルゴリズムしか思いつかなかったので、他の人と相談。もっと楽な方法があるらしいので変わってもらいました。代わりにEをやることになりましたが、数字の合計を計算するだけらしい。少しでも早く実装して貢献したかったので、ちょっと頑張りました(順位表によると前の人の1分56秒後にACしていた)。あと、D問題「FU」に4,5人がかりで罠にはまるなどしていたのが強く記憶に残っています。

まとめ

決勝の順位は良くなかったですが、競プロやりたい熱が高まってくる楽しいイベントでした。来年も開催してください何でもやりますから!