足跡-sokuseki-

りかの日進月歩の記録

ICPC2018 アジア地区横浜大会 参加記

12/8~10に行われたICPC2018アジア地区横浜大会にpriMe.caTというチームで参加しました。
Asia Yokohama Regional Contest 2018 | ACM-ICPC 2018 Asia Yokohama Regional

国内予選の様子→ACM-ICPC 2018 国内予選 参加記 - 足跡-sokuseki-

ぼくは初めてのアジア地区でしたが、める先輩とT.M先輩は昨年もアジア地区に出場し15位を取っていたので、その順位を上回りたいなあという目標が密かにありました。

チーム練

アジア地区を見据えた初めてのチーム練はJAG夏合宿(JAG夏合宿2018 / 会津合宿2018 参加記 - 足跡-sokuseki-)でした。
夏休みが明けてから、週2のサークルの活動でAOJ-ICPCの英語の問題を解いていました。
本番まで2週間を切ったあたりから5時間セットをやりました(codeforcesの北ユーラシアのミラーとLive Archiveにあったアジア地区の過去問を4セット)。

day1

受付が13時~14時なので当日入りで間に合うため朝から新幹線。


昼食を北大の人たちと食べようと思っていたんですが、飛行機が欠航/遅延になる罠があったらしく険しい感じになる。

たぶさんとえびちゃんとめる先輩と4人で中華街に行く。


中華料理を楽しむ。やさいをたべる。

中華街ではいたるところで豚まんが売られていておいしそうだなあと思っていたんですが、受付時間が迫っていることに気づき会場に向かう。

会場についたらすぐにチームの写真を撮った。運営はオタクに厳しい。

開会式が始まるまでは知り合いと†オフ会†をしていた。マスコットとして雛鶴あいちゃんのフィギュアを持ち込んでいる人がいておもしろかった。

開会式では英語で注意事項とかスケジュールとかを話していたみたいなんですが、英語ができないのでよくわかりませんでした。気づいたらpracticeが始まっていた。
エディタの設定やTLやMLの確認、ライブラリの整理をしていました。印刷クエリをたくさん投げてた。

practiceが終わるとチーム紹介が始まる。大学名の辞書順で、前に出て英語でチーム紹介する間にスライドが各モニターに映るという感じだった。ネタに走っている人が多くて面白かったけど、席が一番後ろで前に立っている人が一切見えなかったのが悲しかったです。
ぼくはチーム紹介中に頭にティッピーを乗せる仕事をしていました。
チーム紹介フェーズの途中にカツやお菓子やアイマスクなんかが配られていて意味不明だった。これは何ですか?




これは暁美ほむらです。



チーム紹介が終わるとすぐに解散だったので、ホテルに向かう。
どうして横浜に来て天一なんてたべているのか…(ホテルの近くでおいしそうな匂いがしていたのがすべて悪い)


そのあと夜ご飯を食べました。ラーメンは夜ご飯じゃないです。

ABCがあって、時間がいい感じにこどふぉったので出ました。
えらいので日付が変わる前におふとんいんしました。

day2

7時半くらいにおきる。
会場に行く。会場についたらすぐ電子機器を預けたので写真とったりとかツイートしたりできなかったです。かなしい。




以下コンテスト。

始まってすぐAをぼくが読んでBをT.M先輩が読んでエディタの設定やテンプレ写経をめる先輩がする。Aはやるだけなのでとりあえず実装してもらう。その間にCをT.M先輩が、D以降をぼくが読んでいく。Aを提出するとWAって、実装を聞いてもまちがっているところがよくわからなかったので先にBを実装してもらう。ぼくはAのコーナーケースを考えるやつをする。Bの実装が終わったらしく提出したらTLE。チームが不穏な感じになる。Aでどういうケースがだめなのかを調べる。Cの解法もわかったらしいのでそっちを実装してもらう。AC。Aのミスも発見できてAC。Bもなんか工夫して提出したらACできたみたい。1時間以内に3ACできてよかったけどペナルティが結構大きくて険しい雰囲気になる。
順位表からGが簡単そうな感じだったのでGをやる。Gは転倒数みたいな感じでBITを持てばできるのでやる、AC。この段階で上位チームがDとEとKを解いていたので考える。3人でしばらく考えて、Kは前から順番に考えて行ったらできそうな感じがするのに対し、Dは文字列が1つだとできそうだけど2つになったらわからない、Eは補グラフを考えてフロー?みたいな話になる。Kを実装してもらうことにする。このくらいからIJのACが増えてきてとりあえず目を通す。わかんない。AC数の多いDとEを考える。KがACする。再び3人で考察する。残り2時間弱くらい。
DがDPぽいという話になるけど遷移がよくわからないなあとなる、Eは頂点数が奇数のときは完全グラフにすればよくて、偶数のときは完全グラフにしてから辺をn/2個削ればいいという方針になるけど具体的なやり方がわからない。煮詰まったのでIとJの問題概要を2人に共有して考えてみるけどこっちも良い方針が立たない。しばらくして順位表が凍結し、順位表DのAC数がKとあまりかわらないしなんとかしてDを通したいなあとなるけど、何も浮かばず無を過ごしていました。

コンテストが終わって隣の建物に移動し、解説を聞く。英語なのでスライドの雰囲気で理解しようと努める(無理)。偉い人や企業の人のお話をきく。みなさん英語が流暢だなあという感想を抱く。最後にyes/noがあってぼくたちはnosubなのであんまり関係ないなあと思っていたけど、知り合いのチームや優勝争いのチームのyes/noは盛り上がって楽しめたのでよかったです。

f:id:wk1080id:20181212014843p:plain

結果は5完17位で、Dを通せていたら3つくらい順位があがった、という感じでした。Dは実装ではなく考察なのでもっと考察力があればなあという後悔が強いです。


結果発表後、コンテストをしていた会場に戻って企業賞の発表と集合写真の撮影がありました。priMe.caTが突然呼ばれてよくわからないまま壇上にあがったけど(全部英語なので何もわからない)、どうやらGoogleの企業賞をもらえたようです。Google Home Miniをいただけました。

そのあとはclosing partyで乾杯をした後、各企業ブースを回りました。ニコニコのマスコット(?)とindeedTシャツをゲットできたのはよかったです。ドワンゴボドゲが最初から最後まで盛り上がっていてすごかった。勝ったらカチューシャもらえるらしくて欲しかったんですがボドゲわからないので仕方ない…。あとは い つ も の をしていたり、マスコットオフ会をしたりしていました。

closing partyも終わり、解散の時間になったので解散しました。

そのあとは10人くらいで横浜に戻ってゲーセン旅行をしました。

みんなと別れてホテルに戻るをする。企業ブースで大量の荷物をもらったのでホテルについた頃には体が壊れた。

youtubeのコンテスト中継を見て寝た。

day3

3日目は企業見学で、bitFlyerindeed → LINE でした。



きゅうりさんの頭にティッピーを乗せるをした。


社内をあんまり撮れないからマスコットの写真を撮りがち。
企業見学が終わって、同じグループのメンバーとサイゼ。



各大学の強い人の話や企業コンの話をして盛り上がった。


その後みんなと別れ、秋葉原に行った。てんぷらさんと初エンカ。

そんな感じでICPCが終了しました。


最後に

priMe.caTは今年限りのチームですが、とても楽しくて、たくさんの思い出ができました。
また、横浜大会はいろんな人と会うことができて、新しい知り合いができたりみんなで遊んだりして充実した3日間でした。交流していただいたみなさんありがとうございました。
ぼくは来年もICPC出場資格があるので、チームメンバーは変わってしまいますが、また横浜大会に来たいし、そのためにいっぱい頑張ろうと思いました。