ACM-ICPC 2018 Asia Yokohama Regionalに行ってきました。

ACM-ICPC 2018 Asia Yokohama Regionalに行ってきました。神戸大学のgetting_over_32というチームで、チームメイトは僕と同じく大学院生のkurenaifさんとcormoranさんでした。

 

1日目

Registrationが13時からだったので当日の朝に大阪を出て、新横浜に到着しました。日本大通り駅から会場までの間でかなり迷って辛かったです(実際には会場は僕が迷っていた場所のすぐ後ろにあったけど、外に看板などがなかったためわからなかった)。

 

 

会場についたら人々がいて、挨拶をして参加登録をしました。登録が終わったら説明などがあって、practiceがありました。チーム内で一番環境に慣れていないのは僕だったので練習の時間を多くもらって、AとBをコーディングしてACしました。問題が解けたらスタッフが来て風船を机につけてもらえるので嬉しいです。practiceが終了したらチーム紹介があって、我々のチームはなにも考えていなかったのでだいぶ適当でした。解散後は一旦ホテルに戻って、19時半ごろにTIke率いる参加者12人程度で中華街にご飯を食べに行きました。楽しかったです。

 

2日目

2日目はコンテスト本番でした。朝の9時ごろ集合して、会場の入り口で電子機器を持っていないかなどのチェックを受けて席につきました。コンテストが始まると同時に問題を開封して、環境構築をしているcormoranさんを横目にA問題を読みました。A問題は簡単な文字列のソートの問題だったのですが、僕がソートのルールを読み間違えていてサンプルが解読できず、環境構築を終えたcormoranさんに相談したところ正しく読解した上ですぐに実装できるということだったので任せてCを読みました。Cは飛行機だか船だかの乗客を全員緊急脱出させましょうという問題で、シミュレーションをやるだけだったのでこれは解けると思いました。パソコンを見るとすでにAは通っていて、kurenaifさんがB問題を実装していました。B問題の方針を実装前に説明されていましたが正直それほどよくわからず、定数倍バトルが厳しかったらしく少し時間がかかっていたのでその間に実装を考えていたら愚直にシミュレートするのは時間が足りないっぽいことに気づいて、priority_queueを使えば良いことを思いつきました。しばらくしたらB問題が通ってパソコンが空いたので座って実装して、しばらくしたらC問題をACできました。アジア横浜の問題の仕様上A,B,C問題は必ず最も簡単な3問であることがわかっていましたが、これ以降の問題の難易度はわからないのでとりあえずいくつか問題を読んで、しばらくしてcormoranさんがとりあえず思いついた方法でDを実装している間に僕とkurenaifさんでGを考える流れになっていたと思います(あまりよく覚えていない)。Gは数列を山形にソートするという問題で、しばらく考えたところ数列の中で最小の要素を近い方の壁に貪欲に寄せていくのが最適であるという話になっていて、実装をどうするかと言っていたら、覗きに来たcormoranさんがBITを使えば移動量をlogで計算できるというようなことを言ってきてなるほどと思いました。僕は比較的実装が遅い方なのでGの実装を2人に投げて、他の問題を読んでいました。しばらくしたらGが通って、順位表を見ると次に解くのはDもしくはKだなぁという話になったのですが、Dはcormoranさんが思いついた方法をすでにいろいろ試していましたがどうも解けそうにないということだったので、Kを考えました。Kは第六感を持った女性がカードゲームをする話で、相手の行動と自分の手札が与えられて、勝利数を最大にする手のなかから辞書順最大のものを出力せよという問題でした。しばらく考えたところ解けそうっぽかったのでまた2人に実装を投げて僕はDを考えていました。しばらくすると実装がバグったらしく、デバッグする2人を後ろで見ながらDを睨んでいましたがこちらも解法を出せず、そのままコンテストが終了しました。結果は24位 / 60チームでした。

 その後は隣のホールに移動して、問題の解説やスポンサー企業の人々のスピーチを聞いてyes / noを見ました。全完したチームが2チームいてかなりアツかったです。その後は懇親会があって、スポンサー企業のブースも出典されていました。僕は就活生なので企業のブースを回って資料やステッカーや景品を集めて回っていました。2時間くらいやっていると懇親会が終了して、kurenaifさんとホテルに帰りました。kurenaifさんは1日目、2日目ともにホテルが一緒だったので一緒に歩く時間がたくさんあったのですが、就活のことをあまり知らない僕にいろいろと教えてくれました(優しい)。

3日目

3日目は企業見学の日でした。僕が参加したグループはPreferred Networks→LINE株式会社→Indeed Tokyoというレジェンドルートでした。はじめにPFNのあるビルの前で場所を確認しようと配布された紙をカバンから出そうとしていたらどこからかシンヤカトーが現れたのでそのままあとをつけていくと集合場所に出ました。シンヤカトーの土地勘に目をつけた僕は、同じくシンヤカトーと行動を共にすることを選択したウクニキア様やWAらびもちさん、あるびんさんらと一緒に各企業を回りました。どの企業も人や設備がすごくて、とても楽しい一日でした。いつかこんな場所で働けるように頑張ろうと思わせてくれたという点で、とてもためになりました。この気持ちを忘れないようにしたいです。

企業見学が終わるととても疲れていたのでそのまま大阪に帰りました。阪和線関空快速から普通電車に乗り換えるときに電車の中にキャリーケースを置き去りにしたら荷物が関西空港まで行ってしまい、翌日取りに行きました(アホ)

 

おわり