CODE THANKS FESTIVAL B日程参加しました

※ブログを書くのは初めてなので、文章構成等雑ですがご容赦ください。

※気付いたらめちゃ長い&画像多くなってしまいました。適当に読み飛ばしてください。

 

自己紹介

横浜国立大学 理工学部 数物・電子情報系学科 電子情報システムEPに所属しています。

横国には情報工学EPなるものが存在してるので、電子情報という名前ですが、ほぼ電子電気系の勉強しかしていないです。

そのため普段はプログラミングはしていないので、日曜大工ならぬ土曜競プロerです。

 

 

移動フェイズ

開催地はテレコムセンター コワーキングスペースMONO。

受付が10:30~ということで、10:20前には到着して外で写真を撮ってました。

そして、エレベーターで14階に上がると……

f:id:toto_prg:20141220142429j:plain

CODE THANKS FESTIVALの看板と、強そうな雰囲気の参加者達がいました。

 

実は、私はテレコムセンターに行くのは2回目(1回目はCode Formula本選)でしたので、会場にも迷うことなく辿り着けました。

ただ、Code Formulaの時はテレコムセンター駅の改札を出てすくのところに看板と人が立って誘導してたのでだいぶ分かりやすかったですが、CODE THANKS FESTIVALではそういったものあったんですかね?

自分は写真撮るために遠回りしてたので詳しく知らないですけど、参加者の中で数人エレベーターの位置が分からずに苦労してたようですので。

 

 

 昼食フェイズ

ささっと受付(一番乗りでした)を済ませ た後、色々と貰うものを貰って、いざお昼タイム……とはいかず、やはり写真を撮りまくっていたり、某サイコロ部の方とお話をしていたりしました。

その後ようやく、お昼タイム(主に開会式中に食べてました、ごめんなさい)。

お弁当が4種類ほどありそのうち1つを選ぶ形でしたが、私は迷わず叙々苑焼肉弁当を選びました!

f:id:toto_prg:20141220143332j:plain

この日はお食事会と、お弁当を食べることが主目的だったので、この時点で4割ほど満足してました。←ォィ

 

 

コンテストフェイズ

問題形式等は他の参加者が沢山言及してるので、割愛します。

以下私の方針等をつらつらと書いていきます。

↓問題はこちら↓

Tasks - code thanks festival 2014 B日程 | AtCoder

 

↓私の解答はこちら↓ (WAとかは恥ずかしいので見ないでください><)

Sign in - code thanks festival 2014 B日程 | AtCoder

 

A問題

max(a,b)するだけ。

FA狙っていたけど、入出力ミスって(変数宣言はa, bなのに、入出力がA, B……orz)38秒で提出したけれどCEでした。

まぁ、FAの人が32秒ほどで提出していたので、どのみちFAは取れていませんでしたが。

 

B問題

max(max(max(A + B + C, (A + B)*C), (A*B) + C), A*B*C)するだけ。

 

C問題

forループでif ((V[i]/2)<F[i]) count++;していくだけ。

chokudaiさんはこの方法だと危ないといっていたけれど、int型なら小数点以下切り捨てなので問題ないのでは?

例えば、V=5, F=3のとき、V/2=2, F=3となるので。

 

D問題

適当な配列を要素数T+1以上で取っておき、forループでA[i]の定数倍の要素をインクリメントしていき、最後に配列の中で一番大きい数を出力した。

もっと賢いやり方はあるだろうけれど、制約が緩かったので気にせず実装した。

 

 E問題

 4方向について全探索するだけ。

A~D問題を解いてる時は大分空気に飲まれていたけれど、この問題を1発(間違って入力例を提出してしまって1回CEはしているがw)で通せた上にこの時点で6~9位くらいだったので、入賞できるのではと思い始めていた。

 

 F問題

dp問題。文字列の比較さえできれば、まぁ普通にいける(?)

自分は最初再帰で解こうとしていたが、途中からforループで解く方針に切り替えた。

この時、再帰関数自体とmain関数内の再帰関数の呼び出しを消し忘れていたため、ずっとTLEになってしまっていた。

そのため、一旦途中で諦めてG問題を解いていた。

再帰関数のことに気づいたのは終了5分前だったので、これに気付けていなかったら、最終順位は20位前後だった。

 

G問題

こちらもdp問題。

着想までに時間がかかってしまったが、思いついてしまえば実装はさほど難しくない問題。

2人ゲームは割と典型的な問題のようなので、次出てきたら即提出できるようにならなくては。

ペナルティが無いことをいいことに、最初の20分くらいは全部の問題に対してFirstを出力させて解答がどうなっているかのチェックや、N, Pの偶奇によってFirstを出力させたりしてN, Pによって答えが決まる通りがないか(N, Pが共に偶数の時Firstにならないか等)をチェックしていました。

運営側としてはあまりしてほしくない行為ですよね、すみませんでした。

 

H問題

オイラー路の問題。 

時間が無くて、コンテスト中に問題が見れなかった。

私は、木やグラフの問題が苦手なので、これが最後の問題で良かった。

 

 

総評 

焦ってしまい、しょうもないミスを連発してしまった。

また、コンテスト開始前にお菓子をもっと持ってくるべきだった。

F, Gが通らなくてイライラしていたところに、食べようと手を伸ばしたじゃがりこの箱が空だった時のやるせなさ……Code Formulaの時も似たようなことしてたので、進歩がみられない(^^;)

とは言っても、9位入賞することができたので、概ね満足でした。

1月下旬にある焼肉会が今から楽しみです。

 

休憩・表彰・解説フェイズ

無事5問以上正解できたので、トートバック貰いました!

A~E問題は全探索まで知ってれば解ける問題だったので、ほぼ全員がトートバック貰えるかなと思っていたけど、51/79人しか500点以上の人いなくてちょっと意外でした。ちなみに、初心者(プロ)のつねならずさん()も500点越えてました。

本当にプログラミング自体初めて数週間ですよね……?

 

休憩時間の間に、chokudaiさんとツーショット&蟻本にサインを頂きました。

f:id:toto_prg:20141220161754j:plain

ネタに付き合って頂きありがとうございました。

ちなみに、このために蟻本を購入したのですが、

 こんなツイートしたらchokudaiさんご本人に拡散&「著者違うからね」ツイートされましたorz

 

その後表彰式。

競プロで初めて表彰されました!f:id:toto_prg:20141220161047j:plain

参加者のレベルが自分と同じくらいの人だけという条件下なので、自分の実力などプロの方々の足元にも及ばないですが、それでもこういった場で実力が認められたのはとても嬉しく、良い経験ができたなと思ってます。

 

 お食事会フェイズ

そして、本日のメインイベント(プログラミングコンテスト?あれは余興でしょ?) 懇親会の時間となりました。

目の前に現れたのは、肉!寿司!ピザ!

f:id:toto_prg:20141220163231j:plain

 

f:id:toto_prg:20141220163609j:plain

 

f:id:toto_prg:20141220163150j:plain

 

f:id:toto_prg:20141220163132j:plain

いやー。最高でしょ、これ。

ただ、一言言いたい。

何 故 お 酒 が な い の か !

肉・ピザがあったら、お酒あると思うじゃないですか。

ピザにコークもまぁ定番ですけど、アルコールが欲しかったです、はい。

 

 何はともあれ、懇親会スタートです。

コミュ障の私ですけど、某サイコロ部氏のおかげで、某Phytonの方などとお話できたので良かったです。

(ちなみに、案の定サイコロ部氏が早退した後はあまり話せてません(;´∀`) )

 

そして、アレです……

始まりはつねならずさんとhyonさん(名前間違ってたらごめんなさい)との会話でした。

書道コーディングの話になり色々と話が弾んだ結果、

 こんなことを書道コーディングで書いたらどうかと言われ、結局こうなりました。

f:id:toto_prg:20141220165336j:plain

 Twitter上でも、

 など色々と話題にして頂きました。

 が、

 や、

など、度が過ぎておりました。chokudaiさん誠に申し訳ありませんでした。 

 

そんなこんなあった書道コーディングですが、優秀作品はコード(コンセントを差し込むやつ)を書いた作品でした。

個人的には、

 副優秀作品に選ばれた「猫でもわかる」を書いた@Hacoris_さんの、

f:id:toto_prg:20141220171115j:plain

この作品がとても印象深かったです。

 

また、競プロと親和性の高いとされている音ゲーでは、DDRでおしょーゆさんが、太鼓の達人ではno15_renneさんが優勝しました。

自分は音ゲーは友人に連れられて行った以外は全くしたことがないので、プレイはせず、観戦だけしていました。

 自分としてはゲーセンは全く興味ないので、本選へ行けていたとしても音ゲーはやってなかったと思います。

 

帰宅フェイズ

Code Formulaではそのまま帰宅してしまったことを後悔していたので、お酒も飲んでないし時間もまだ早かったので、お台場を散策してから帰りました。

綺麗な夜景を見れましたが、 カップルが沢山いて心の中で呪詛を唱えまくっていました。

 

総括

 14日の目標として、

・つねならずさんからのハラスメント回避

・10位(できれば5位)以内入賞

・FA賞

を挙げていました。

9位入賞は果たしたものの、FA賞は全く取れなかったので残念でした。

今後も少しずつ実力を付けていきたいと思います。

また、今回はこんなにも素晴らしいコンテストを開催して頂き、更には焼肉にも招待して頂き、リクルートさんにはとても感謝をしています。

ありがとうございました。

 

 

おまけ

ちなみに、書道コーディング用では元々下の写真のを書く予定でした。

f:id:toto_prg:20141220174437j:plain

この写真のやつは、前日に家で筆ペンで書いたものです。

当日も持ってきていて、これを見ながら筆で清書するつもりでした。

結局書いたのは、"沙凪"と、"高度"(Code→コード→こうど→高度)というね……

f:id:toto_prg:20141220174751j:plain