heno239’s blog

まとめたいことをまとめる

AtCoder World Tour Finals 2022 参加記

  • まえがき

heno239です。今回はAtCoder World Tour Finals(以下略称としてWFと書きます)に選手として参加してきました。

大会中の大体の経緯はTwitter(あるいはX)に書いてきましたが、あらためてここに記事として書いていきたいと思います。

 

  • 2021年 参加権取得

2021年12月4日のAGC056の結果を経てWFへの参加権を得ました。

https://clist.by/standings/atcoder-race-ranking-2021-26421821/

しかし、この時は情勢的にWFが延期され続けており、本当に開催されるのか、開催されるとして一体何年後になるのか、という不安があり、あまり現実味がないまま年月が過ぎ去っていきました。

 

  • 2023年 開催決定

2022年後半あたりからオンサイトコンテストが復活し始め、ずっと頭に残っていたWFもそろそろ動かないかなと思っていたところ、ついに開催されると発表が出ました。

atcoder.jp

(実はこの発表より少し前から通過者には連絡が来ており、開催されるぞー!!とtwitterで大騒ぎしたかったのですが、内々での連絡内容を大公表するのはまずいなあと思い黙っていました。)

全ての通過者が参加できるようにかなり早い段階から日程アンケートが行われたりしていて、めちゃくちゃ配慮されてるんだなあと少し感動していました。

 

飛行機やVISAの問題など諸々の質問がメールで一斉送信されてくるのですが、毎回「私は日本人です」と返答することになり、ちょっと滑稽で面白かったです。

 

  • day 0 (コンテストday1前日)

この日はコンテストday1の前日で、主にhotelに移動する日でした。

他の参加者と会うこともなく、主に本番に向けて英気を養っていました。

泊まった部屋が32Fで、自身の過去最記録を更新しました。

  • day 1

11時間ほど眠り、朝9時に朝食に行きました。

ビュッフェ形式で、自分の考える最強の朝食を作り上げることができるので嬉しかったです。

 

11時頃からhotel→コンテスト会場の移動となっており、割と距離があって大変でした。

この時点ではまだ名札が無かったので、maspyさん達と会話しているうちにAtCoderのスタッフ勢に紛れこみ、スタッフになりきっていました。途中で渋谷スクランブル交差点の観光コーナーが始まったのは面白かったです。(海外勢どんな気持ちで見てたんだろう)

 

着いてからコンテスト開始まで1時間ぐらい余裕はあったので、会場で昼食をとったりし、コンテストに向けて集中を高めていきました。

 

Contest day1中にとった戦略を以下に書きます。

  1. とりあえず景気付けにA問題を考える。順位表を見ていると結構FAが早かったので、そのまま取り組み、AC。
  2. B問題からE問題までの問題のジャンルを見る。B構築、C数え上げ、D最適化、E数え上げ。自分はかなり数え上げに自信があるので、Cぐらいは解けないとこのWFで勝負にすらならないだろうと思い、Cを選択して一点集中する。
  3. コンテスト開始3時間時点で大体解けた気持ちになっていたが、微妙に計算量が悪くて定数倍改良を要求されたり、実装に細かなミスがあって時間を食われたりして、結果的に残り30分ぐらいでようやく通る。
  4. 30分しかないので、閃きさえすればすぐ解けそうなBに挑むが、間に合わず。

結果的に7位につくことができ、1位の5000点(凄すぎる)を除けばまだ十分day2で逆転できるなあという感じになりました。

 

コンテスト後にtwitterを見たところ、コンテスト参加者の異常行動が結構すごいと話題になっていましたが、そんなことになっていたとは全然気づきませんでした。(一番前の席だったからかな)

 

結構疲れたので、帰ってたくさん寝ました。あまり記憶が無いです。

 

  • day2

10時間ほど眠り、朝9時に朝食に行きました。

この朝もあまり記憶が無いです。とにかくday2で逆転したいという気持ちで一杯でした。

唯一残っている記憶は、この日も渋谷スクランブルエッグ交差点の観光があり、日本の素晴らしい文化「天丼」を海外の皆様にお伝え出来たことかなと思います。

 

Contest day2中にとった戦略を以下に書きます。

  1. 今日は全ての問題の配点が異常な上に、day1で少しビハインドを背負っているので、A問題で景気付けなどということは考えず、最初からA~E問題を見てみる。
  2. Aゲーム?、B数え上げ、C最適化、D数え上げ、Eゲーム。day1と同じ要領で、自分はB問題ぐらいは通さないと話にならないと思い、B問題を選択して一点集中する。
  3. B問題をFAでき、結構希望が見える。この時点での順位表がこちら
  4. ここから仮にA問題を通して4501点になったとしても、3001点勢が1人でも1500点↑を通したり、あるいは2502/2501点勢が一人でも2000点↑を通した時点で捲られてしまうので、A問題を通す価値は無いと判断。
  5. CDEのうち自分をここまで支えてきた"数え上げ"であるD問題に挑むが、解けない。
  6. 残り1時間時点で、あまりにも順位表が動かない様子を見て異常を察知した自分は、4501点でも3位に入れるのではないかと思い直し、慌ててA問題を考える。
  7. それっぽい解法を考え実装までしたが、サンプルが合わないまま終了。

結果的にday1終了時点と同じ7位になりました。3位に入るのもかなり現実味を帯びていたので悔しかったですが、このメンバーの中で7位に入れたのはかなり健闘できたのかなと思っています。

一方で、1位や2位との差はあまりにも大きくて、まだまだ高みがあるんだなあと思い知らされました。この2つの問題セットを作成できるmaroonさんもめちゃくちゃ凄いなと思い知らされました。

 

コンテスト後、懇親会があり、卓球やダーツ、テーブルサッカー、ビリヤードが遊べる会場に行きました。

自分は

  • 卓球: それなりにやったことがある
  • ダーツ: ゲームの中でしかやったことがない
  • テーブルサッカー: めっちゃやったことがある
  • ビリヤード: ほんのちょっとだけやったことがある

という感じで、主に卓球とテーブルサッカーをしていました。

chokudaiさんとバトルし、卓球ではボコボコにした(要出典)んですが、ダーツではボコボコにされました。(実際に僕に向かってダーツを投げられたという意味ではないです)

海外勢の数人とも卓球やテーブルサッカーで勝負して、とても楽しかったです。(卓球うまい人多くてすごい)

 

懇親会ではしゃぎすぎた結果、半分死にながらhotelに戻ることになりました。

hotelに着き、ここで正式にWF終了、解散となりました。

 

  • day3

起床後にhotelの朝食に行くと、海外勢が何人かいて余韻を感じました。

 

  • 終わりに

並みいるLegend達の実在を確認できてとても感動しました。そのうち何人かとは挨拶したり懇親会でゲームしたりでき、とても良い経験になりました。

 

英語をちゃんと話せたらもっとちゃんと交流できたんじゃないかなあという気持ちはあり、頑張っていかないと...という感じです。

 

コンテスト自体も、day1はB問題、day2はA問題が、AC数が多いのに自分が通していない問題で、5時間じゃ全然足りなかったんだなあ、あるいは自分がまだまだ頭の回転速度が足りていないんだなあ、と痛感しました。この辺りはもっと練習を積むことでもっと成長できるなあと思い、今後もより頑張っていきたいと思わせられました。

 

コンテスト後に、WFについての実況や、更には自分についての実況等をしているツイートをたくさん見て、とても楽しかったです。特にday2は、「day1で思ったより見られていたし、最後まで諦めた姿は見せず本気で頑張ろう」という気持ちになりました。ありがとうございました。

 

今年度もWFに通過できそうなので、これからもまた頑張ります。

ここまで読んでいただきありがとうございました。

 

  • おまけ

エレベーターで遊ぶのはやめた方がいいです