ゼオスTTのブログ

気が向いた時に、主にプログラミング関係の記事を書くつもり。しかし気が向かない。

CODE FESTIVAL 2015 参加記

去年に続き、2度目の CODE FESTIVAL。
だらだらと振り返る。

前日

バイトで普段は起こらないトラブルが発生。帰宅が23:30頃になる。
荷造りや振込依頼書の記入、コードの短縮を済ませ、28:30頃に就寝。

1日目

本選前

05:00頃に起床。
支度をして会場へ向かう。服装は去年の CODE FESTIVAL Tシャツでキメてみた。
時間の関係で最寄駅-京都駅間の帰りの分の領収書が貰えず、駅で振込依頼書を訂正。
新幹線はほとんど寝てた。

品川駅に着き、西にあるイーストタワーへ向かう。
イーストタワー前に既にバスが停まっていると思い込んでいたため、CODE FESTIVAL バスを探す。
修学旅行生が乗っているバスを見つけたので、Tシャツを見せつけて CODE FESTIVAL の宣伝をする。誰も見ない。
どこにもバスが見当たらず、入口の前で困った顔をする。
YandexっぽいTシャツを着た CODE FESTIVAL のスタッフが出てきて、中に案内される。
バスまだだった。

会場に着き、受付をする。渡された名札に印字された席番号は200。まじびびった。
振込依頼書の訂正印がかすれていたが、無事AC。
聞き覚えのある音楽がかかっている。テンションが上がる。
ショートコーディングルールブックによると、exit status は 0 である必要がある。テンションが下がる。
ノートやバッグが用意されていて喜ぶ。でも私ノート使わない。
今年の CODE FESTIVAL Tシャツを貰う。いいデザイン。Yandexではない。
リストバンドも貰う。
色は適当に選んだが、TLには自分の実力に合わせた色を選んだという人がちらほら。
私はworseさん。
PCを立ち上げる。更新プログラムで2回再起動する。
ICPCのチームメンバーと合流する。2人ともいい数字。KITで角を2つ押さえ、勝利を確信。
朝ごはんにおにぎりが用意されていた。うまく破けず、海苔が袋に残る。

カッコいいオープニングムービーが流れ、CODE FESTIVAL が幕を開ける。
今年のパーカーラインは5問らしい。今年こそ貰う。絶対。
恒例の公認F5アタック。
こどふぉる。
お菓子食べまくる。
こどふぉる。
おなかふくれた。
こどふぉる。
いよいよ始まる。うおーーーーー。

本選

CODE FESTIVAL 2015 決勝 - CODE FESTIVAL 2015 決勝 | AtCoder
なんとしても5問解いてパーカーを貰う。

E

実力がないので普段はやらないが、今回は違う。パーカーを確定させるためにEから開ける。
ショートコーディングの問題らしい。EAXに気を付ける。
真面目に考えた結果、真面目にやらなくてもいい気がした。
長くても3文字だと直感が告げる。
全通り試す。コピペ祭り。
18:17 AC
順位表を開くと一番最後のページが出てきて困惑した。
よく見ると下から5番目くらいの行が赤くなっていた。

D

続いてD。
どういう区間を取り除けば一番減らせるか考える。
そんなことしなくても、全部試して一番減ったやつを選べばいいことに気付く。ほんと基本がなってない。
そのままだと間違いなくTLE。工夫する。
1つ区間を取り除いたところで、たかだか1しか減らない。
重なっている区間の数が最も多い時間を全て含む区間があれば、それを取り除いて-1、なければそのまま。
40:30 AC
ほとんど順位が変わらない。みんな強い。やばい。

C

すかさずC。
寿司とは「シャリ」の上に「ネタ」をのせた食べ物。
食べ物で遊ぶのはよくない。
ネタはマグロだろうか。
普通に前から順番に見ていけばよさそう。
なぜか結果がおかしい。
何がおかしい。
charがintになっている。
頭がおかしかった。
5分無駄にする。
54:42 AC
やはりほとんど順位が変わらない。みんなプロ。やばい。

B

とっととB。
えっと、うんと、\lfloor3.5N\rfloor
WA
サンプルは最後まで見よう。
58:03 AC
だいぶ順位が上がる。プロごぼう抜き。

A

ラスト1問、A。
コード川柳。
using namespace std がinvalid。名作への侮辱。
using namespa cestd はvalid。区切りを変えると五七五に。さすが名作。
60:07 AC
パーカー獲得。去年の雪辱を果たす。
順位がさらに上がる。私の下にたくさんのプロ。
もしや、これは沖縄あるのでは。

F

ピアニストを歩かせる。
なぜかジグザグ歩かせる。
ジグザグに拘泥する。
ジグザグジグザグ。
実装できた。
MLE
実装ミスを修正。
WA
コーナーケースに対応。
WA
大股でジグザグすべき場合があることに気付く。
WA
根本的に間違っていることに気付く。
銅鑼が鳴る。66位。

本選後

表彰。
去年は会場の一番前にいたのでよく見えたが、今年は一番後ろなのでよく見えない。
いつかあそこに立ってみたい。

ゴルフと川柳が解禁。
とりあえず、事前公開の際に書いたAのコードをEAXが返るよう修正して提出。
97byteが101byteになって悲しむ。
ランキングを見ると、あなごるでは100byteだった人が、EAXの制約が追加されたにもかかわらず93byte。
なんだ、密かに削ってたのか。勝てて喜んでたのに。
削りきった感のあるコードで大敗したので諦める。
A以外は元から解く気なし。
せっかくなので川柳も投稿しておく。

本選問題解説。
Dが想定解で喜ぶ。
Eは当然想定解でない。でも直感冴えてた。
Fはグラフに帰着する。
ピアニストはグラフ上を移動していた。辛い。

タイピングに挑戦。
4分を軽く20秒以上オーバーする。

Unagi座談会。
Unagiが何か知らないが聴きにいく。
iwiwiさん率いるICFPCのチームらしい。
よく考えられたチーム構成に感動。
今年の言語はC++JavaC#PHPRubyHaskell

寿司美味しい。
パーカーを受け取る。チョー嬉しい。早速着る。

LayCurse氏トークライブ。
LayCurseさんを初めて見る。
LayCurseさんはレアキャラ。
1フレームに1回叩いても砕けない岩が1個だけある。
作問挑戦してみようかなとちょっとだけ思う。

肉巻きおにぎり美味しい。
やきそば普通。
アイス硬っ。

エキシビションマッチ。
耳栓をしても聞こえる実況解説の声。
よすぽっと 俺はね天才 だめやんけ。
rng_58さんのブザービートが会場を沸かせる。
去年の準急さんを思い出す。

スタッフからリレーのチーム一覧表を受け取る。
スタッフにリレーのチーム一覧表を奪われる。
配布タイミングのミス。
改めて受け取る。
去年と違って席番号しか書かれておらず、誰か分からない。
チームごとに集まる。
みんな強そう。今年はチーム一覧表が席番号の昇順なので余計。
去年も同じチームだった人がいる。
今年はカメラ構えてない。
なぜか代表が前に出て風船を受け取る。中に何か入ってる。
隣のチームがフライング。
チームIに決定。

諸連絡。
あまりゆっくり寝てると警察が動くらしい。
あさプロ各難易度のボーダーが去年と異なっている。
自分が出るMiddleは31位~100位(去年は51位~150位)。
きつそう。

席番号順にホテルへ。
200番なのでなかなか帰れない。
この機会に他の参加者との交流を、と思うが相変わらずのコミュ障。

品川プリンスホテル。部屋多い。
良いホテルらしい。親には羨ましがられた。
ベッドでごろごろしながら携帯をいじる。

2日目

あさプロ前

04:10頃。
目が覚めると、手には携帯が。
TLを遡ると、みんな夜遅くまでゴルフ三昧。なんと元気な。
入浴。ホテルで初めてお湯を張る。
晩飯食ってないので朝飯を奮発。
大雨だったがコンビニまでは濡れずに行けるようになっていた。
ドリア美味しそう。
1500Wの電子レンジを初めて使う。
1分20秒のボタンを押すも1分10秒しか加熱されない。
10秒のボタンを押すもしっかり10秒加熱される。
熱すぎて持てない。
asa!に向けて日本酒1.5合とたこわさをいただく。
まともに日本酒飲むのは初めてなので、どれだけ酔うか楽しみ。
あれ、ほとんど酔ってる感がない。なぜ。
ホテルコードが403であることに気付く。
泊まれているので脆弱性を突いたに違いない。
再びごろごろする。
寝過ごしかける。
リストバンドをなくす。

今年の CODE FESTIVAL Tシャツを着て会場へ。
あさプロタオルを手に入れる。
去年も思ったが、あさプロに来なかった人は貰えないのだろうか。
朝ごはんにサンドイッチが用意されていたが、熱々ドリアでおなかがふくれていたので片付ける。
ICPCのチームメンバーのうち1人が寝坊。馬鹿。

少し時間があるので今の思いを書に表す。
ついでにタイピングリベンジ。
Todは動作を停止しました。
4分00秒15。惜しい。

時間。
大好きなBGM。
Middleの問題は真ん中の簡単な4問。
Middle上位入賞でスタンプが貰える。
タンブラー欲しい。

あさプロ

CODE FESTIVAL 2015 あさぷろ Middle - CODE FESTIVAL 2015 あさぷろ Middle | AtCoder
asa!じゃない。ショック。
なんとしても1ページ目に載ってタンブラーに近付く。

A

唐突に出てくるヘイホー君。
大きい順にK個とるだけ。
sの要素を0で初期化しておけば、K = N の場合も大丈夫。
13:56 AC
38位。悪くない。

B

ヘイホー君は平方君だった。
LCSという発想が天から降ってくる。
かばんから出してさえいなかったアリ本を取り出し、写経。
29:44 AC
結構上がったのではと期待するも、35位。
プロたちにとってLCSは典型なのか。残念。

C

黒は2択、白は1択。
悩む。
一度も裏返さない一続きの白を決めれば、コストが一意に定まる。
あらかじめ累積和を求めておけば、各一続きの白に対する左右それぞれのコストはDPで求まる。
現時点ではまだCで1ページ目に載れる。
実装に手間取る。雑魚い。
WA
操作で追加される石の影響は別で計算する実装だったが、その中でオーバーフロー。
ほぼ全て long long で宣言していたが、iだけは気持ち悪いのでintにしていた。
63:18 AC
40位。残り27分でDを通さないとスタンプ貰えない。

D

2K + 消した段の数 \times 2 がもともとの面積から引けるはず。
各幅の段の数(入力例1だと、2, 1, 3, 0, 0, \cdots)を求めて、幅が小さい段から順に消していけばよさそう。
ほんとかなぁ。
実装できず。
終了。41位。
1ページ目に載るどころか、1ページ目との間にもう1ページ挟まっている。

あさプロ後

表彰。
本選で表彰されるのはまず無理だが、あさプロなら可能性がないことはないはず。
来年こそあそこに立ちたい。

昼飯の弁当が配布される。
腹が減ってないので、小さいのを貰って片付ける。

高橋直大氏トークライブ。
いろいろなアルゴリズムの名前が出てくる。難しい。
みんなrand()大好き。
期待値問題は線形性を利用する。覚えた。
「ワーシャルフロイドの復元できますか?」
任せてください
可愛いアイコンが流れる。

shinh氏トークライブ。
shinhさんによる短縮王の解説。聴かないわけがない。
解いたのはAだけだが、B~Dもこのために問題は読んできた。
ppencode 2 ほげ。
EAXの制限はほんと要らない。
Aの最短は85byte。
むむ、このAのコード、入力が1ケースのときしか動かないんじゃ。
入力形式変わってた。ちーん。
どうりでみんな事前公開より短くなってるわけだ*1
A以外は提出数も少なく、なるほどまだまだ洗練されてない感はある。
隣でどっと笑い声が起こる。
rng_58さんのトークライブも凄く気になる。
Perlは魔法。
来年はもっと参加者数が増えるといいな。

スタンプ集めに奔走。
太鼓の達人を適当にプレイする。
DDRは怖くてプレイできない。
ボードゲームは机が空いてない。
リレーのために会場に戻るよう指示を受ける。
集まったスタンプの数は14。惜しくもタンブラーを貰えず。
Middleで上位入賞できていれば。

チーム対抗早解きリレー~閉会式

チームIの机に向かう。
Iと書かれた札を横に倒す。
チーム名が-(マイナス)に決まる。
今にも走り出しそうな音楽がかかる。
去年はチームでお揃いのリストバンドだったが、今年はTシャツ。
チームIは黄色。
ただし、黄色という表現では3チームが該当する。
20チームもあれば仕方ない。
レッドブルタワーが建造される。

問題の印刷にミスがあり、少し遅れてスタート。
適当に受け取った問題はF。グラフの数え上げ問題。
まさかのText形式。
とりあえず数え上げる。まるで構造式。
チームメイトにチェックしてもらう。
数え忘れが発覚、修正。
まだ怪しいが提出、WA。
WAしてもコーディングエリアから戻ってこれるようになったのは本当に助かる。
f:id:zeosutt:20151119052308p:plain
これが残ってた。
再提出、AC。
その後もどんどんACを増やし、一時2位まで上り詰める。
周りプロだらけ。
チーム一覧表が実は成績順だったのではないかと錯覚する。
J問題で失速するも、10±5位くらいで全完。

表彰。
1位のチームにはTシャツ。羨ましい。

ハッピーアワー。
じゃがりこで乾杯。
飴が大量に盛ってあるが、噛み砕きでもしない限りまずなくならない。
チョコパイ美味しい。
食ってばかりでほとんど話してない。
そうこうしてるうちに各種表彰。
うさぎさんが同じものを3つ貰う。
準急さんがキーボード型ワッフルメーカーを貰う。
書道の先生がそれはそれは達筆。

閉会式。
2日間を凝縮した素晴らしいエンディングムービーが流れる。
あっという間の2日間。
CODE FESTIVAL、終わっちゃった。

記念撮影。
ドローンを初めて見る。
結構うるさい。
心をオープンソースに。

閉会式後

会場前で帰りのバスを待つ人の群れ。
残念ながら帰りのバスは用意されていない。

ICPCの2人と合流、品川駅近くの居酒屋で晩飯。
作問に挑戦し、KITにちなんだコンテストが開ければいいなと話す。
とりあえずストーリードリブンでいろいろ考えてみるも、ゴミしか生まれず。
帰りの新幹線でも引き続き考えるが、うまくいかない。
作問って難しい。

京都駅で解散、帰宅。

まとめ

あらゆるコンテンツが最高だったことはいうまでもないので、一番の思い出を。
本選とあさプロで、大変満足のいく結果を残せたのが一番の思い出。
決して良い成績ではないが、自分の実力を如実に反映した結果であったように思われる。
これを糧に精進していきたい。

CODE FESTIVAL 2015、とてもとても楽しかった。
運営スタッフに感謝!

来年も頑張って予選突破するぞーーー!

*1:帰宅後コードをいじったところ、10分ほどで81byteに。悔しい。ちなみに現在の最短は 79byte