ACM-ICPC 2018 Asia Yokohama Regional 参加記

この記事は、 OIT Advent Calendar 2018の13日目の記事です。

予選落ちな予定でしたが、繰り上げにより突如参加することになったチームodan(chocobo, mkan, hm05)です。

弊学がアジア予選に出るのは3年ぶりとのことで、予選通過のメールを見たときは泣きかけました。

1日目

新幹線でチームメンバーと合流しつつ、中華街に寄り道しつつ会場に着きました。

ちょっと休憩していたら開会式が始まりました。 が、英語が全く分からないので、ジョークで会場が笑っている場面では満面の笑みを浮かべるだけで終わりました。

リハーサルでは特に問題も起きず順調に進みました。 問題をACしたときに風船が届くシステムが衝撃的でした。

リハーサルが終わったら、odanさんとodanメンバーで中華の食べ放題に行きました(ここでチーム名の承諾を得る)。 その後、赤レンガ倉庫に行きました。

2日目

無事起床に成功し会場へ。

コンテスト前に、ICPC国内予選で着ていた予選突破の願いが込められた服(?)を着るようにチームメンバーから言われたり言われなかったりしたのですが、流石にまずいと思い、今回は狐耳を着けました。

コンテスト

  • 初めに問題文の読解でA問題をhm05さん、B問題をmkanさん、C問題を自分が担当
  • Aは実装が面倒だけど出来そうとのことで、hm05さんがAを実装している間、mkanさんと自分でBとCを考察。
  • BはO(n3)しか思い浮かばず、Cはシミュレーションでやってみることに。
  • AをAC。mkanさんがBを実装。
  • TLEする。Bは置いといて自分がCの実装に。
  • サンプルが合わず長時間デバッグ。hm05さんの指摘で実は問題の入力の仕様を勘違いしていたのが原因だと分かり、サンプルが合ったので提出。
  • TLE。もしかしたらと思いシミュレーションではなくDPを実装してみたらAC。
  • Bが何も分からず、枝狩りO(n3)を提出したりO(n2logn)を 提出したりするもTLE。
  • hm05さんが109個のbool配列を用意し、愚直O(n3)を投げたところAC。
  • 残り1時間で、残りの問題をとりあえず読んだり、順位表を眺めたりしてG問題の考察を始める。
  • 「BITを使いそう」まで考察を進んだところで、時間がもう足りないということでrand()を出力するプログラムを終了5分前に投げてコンテスト終了

というわけで、ABCの3完でした。

コンテスト終了後はスポンサーさんの挨拶とコンテストの解説(日本語でも理解できるか怪しいところなのですが英語なので何も分からなかった)とYes/Noおじさん(と言われている)の順位表発表でワイワイしました。

懇親会

チームメンバーと共に企業さんのブースを一周する旅をしました。 会社についてお話をさせてもらったり、ステッカーや同人誌、キーボードのキーなど色々もらったりしました。企業さんの方からインターンに来てくださいと言われたとき、競プロerの力に企業さんが目をつけているんだなあと思って、すごい世界だと感じました(自分はすごくないためア)。

懇親会のあとは小籠包を食べました。

3日目

P社 → L社 → I社 と企業見学に行きました。falさんと碧黴さんが同じグループだったので何度か会話しつつ巡ってました。見学の詳しいことは企業秘密で言えないのですが、どのオフィスも魅力的で、将来はこんなところで働きたいなあと思いました。

企業見学後はラーメン

最後に