HIR180's diary

ICPC World Finals 2022 を集大成に

ICPC World Finals Dhaka 参加記

気付いたら帰国してから丸一週間が経ってしまいました (そ、そんな...)

当日まで
  • 普通に病院実習 (今回は形成外科) に丸被りで困ってしまったのですが、当科の先生方にご配慮頂き、まず参加できることになりました (8月くらい)
  • 一方、9月頃まで競プロの練習が圧倒的に不足しており、力が落ちすぎてヤバいということに気付き、HELP!に (どうして...) (マッチングが悪いよ~)
  • 9月末から週2+ペースでチーム練が始まり、徐々に勘を取り戻しつつチーム性能を向上させていき、直前には大分仕上がった気分に。
  • 基本的な立ち回りはmaroon: 何でもやる、幾何担当 / yutaka: 考察難や数学系など担当 / hir: 面倒枠、写経担当 という感じに落ち着きました。
Day1 (11/6)

前日なかなか荷造りが終わらず、2時間睡眠で成田空港へ。

 

abemaで全日本大学駅伝を見ながら眠気覚まししてました。駒澤強すぎてウケますね~

この時点でbatonさんと会い、少し雑談しました。batonさんは貴重なOI時代からの同期なので、急遽東工大のWF参加が決まって会うことができ、嬉しいね。

過年度のWFの過去問を眺めたり、ライブラリの位置を覚えたり、寝たりしながら飛行機を乗り継ぎ、夜中にダッカ着。

バングラデシュ、道路に信号がなく、車線もあまり意味を成しておらず、また教習所の教官が見たら気絶しそうなレベルの車間距離で全てが動いており、更に各々の車が挨拶代わりにクラクションを鳴らすので本当に凄いことになっていました (tatyamさんのツイートをお借りしています)

 

ホテルに日付変わってから到着。抗原検査して、色々準備してから寝ました。

Day2 (11/7)

この日はteam registrationがあり、本番使うTRD (A4 25ページのライブラリ) と辞書などを提出しました。その他は、前日の大移動の疲れが全然取れておらず、ずっと座って寝てた記憶しか残っていません...

 

WF、色々予定が詰まっていて意外と忙しないなという印象になったが、実は後の日はスカスカでした。

↑これ寝てて見逃しており、かなしい

Day3 (11/8)

この日はicpc challengeがあったんですが、諸事情あって会場に遅れて着き、既に始まっていたので参加せず、勝手にリハーサルもどきをやっていました。

workstation

その後opening ceremonyがあり、この日はこれで終了。

帰りは信じられないほどの渋滞に巻き込まれながらホテルに戻り、夕飯。

おいしい

この後の検査が本番への参加可否を決めるやつで、本当にビビっていて結果が出るまで寝つけなかったが、無事に陰性となり、安心。

 

Day4 (11/9)

この日はリハーサルでした。

ターミナルから提出できるの便利~ とか 普通に問題面倒なの多くて草 とか言いながら一通り解き終え、その後は自分は使う可能性が高そうなライブラリの写経をしました。

 

写経にまつわる裏話として、"粘着物を使ってモニターにライブラリの紙を貼り付ければ、視線移動が減り写経が高速化出来る" という気付きと、東工大チームから教えて頂いた "ランチボックスにあるポテチの缶の側面に剥がしやすいシールが貼ってある" という気付きを組み合わせることで圧倒的に効率が良くなり、もう完全に草でした (物が足りないと創意工夫が捗って、面白いですね)

 

夕飯を18時に食べ、部屋に帰り、引き続き写経練習としてmodint + ntt を何回か書いて満足して寝ました。寝たとはいいつつ何度か中途覚醒はしました。

 

Day5 (11/10)

いよいよ待ちに待った本番。

6時半に目が醒め、少しベッドでスマホを弄ってから起きました。

この時点で出発は8:25だと思っていたので、その後シャワーを浴び、のんびり朝食会場に行くと、急ぐように伝えられ、かなり???という気持ちになっていたのですが、
よくスケジュールを見ると8:10が最終便と書かれており、勘違いしてたなと思いきや、なんと当日7:40に変更になっていたとのこと。どういうことやねん。

 

 

バスの中では問題文が長くて実装も怠いが別に難しくはない、しかしあまり解かれないタイプの問題 (WF'15 MのWindow Managerという問題からWindowをManageする枠 とずっと呼んでいました) を確実に一撃で殺す機運を高めながら、ライブラリの位置を最終確認し、お気に入りのプレイリストを聴きながら気分を高めていました。

 

会場に移動し、色々雑談し待っていると、突然時計が残り5分から1分に進められ、焦る。リハーサルでもこれやってたし来年は心の準備をした方が良さそう。

 

(ここからコンテスト)

問題: https://icpc.global/worldfinals/problems/icpc2021.pdf

いつも通り大きく3分割して、順番にmaroon/hir/yutakaで読んでいく。

パッと見、E: よくわからんけど難しそうだし、多分自分の問題じゃない F: 笑 G: 典型だろうけど最初じゃないな~ と言う感じで、ようやくHが簡単枠。

Hは簡単枠というか既出 (?笑) (F - Bracket Sequencing) だが、少し自信がないので確認を取って、実装。このレベルの問題ですら初めてのオンサイトWFの1問目で書くと少し混乱するし提出する時心臓バクバクでびっくりした。通ってガッツポーズ (草)

次にGを読み、まあ典型なんだけどすぐ解き方が思い出せない (カス) が、とりあえず昨日まで散々練習したmodint+ntt写経の出番はありそうだなと思う。ただ序盤ではなさそう。Eは放置、Fはmaroon行き。

そうこうしている内に、Cの解法を受け取って実装することになり、簡単だけどオーバーフローとかコーナーケースが少し怖い感じだったので、落ち着いて詰めて、Jの後に通す。ここで実装やるだけ枠としてLを受け取り、少し迷走するもまあ出来るなという気持ちになる。その後にAを見て、最大の方がいまいち良く分からないな~って思っているとFが通り、Gも例の写経をすればいけると言われたので、Lより先にやることに。

↑のテクニックを駆使 & 練習の成果が出て写経は上手く行き、その後はmaroonが実は制約にミスがあったことなど無関係にすんなりACしてくれて、後から振り返るとここまではかなりいいムーブだった感じがする。(この時点では1位だった) (FAを確信したらカメラに向かってポーズを取ろうという話をしていたので、是非アーカイブを見てください)

ここから自分はAの方針を貰って、実装し通し、またBの後にLを詰めて書いた。少し実装と認識にズレがあり1ペナ吐いてしまい悔しかったが、assertに引っかかったお陰で原因はすんなり見つかり良かった。

この時点でDEIKが残っていて、Dの実装に着手していた一方で、自分はEを一応読んで考えたり、Iの手伝いをしたりして、Iが通った後はWAしてたDのデバッグ、またKもWAした後はKのデバッグをしようとしていたが、上手くいかずそのまま終了。

 

凍結後の順位表

終了直後はD, Kをどちらも落としてしまって落胆しており、また下手したら金すら怪しい?と思ったがそれは後から冷静に↑を見て多分大丈夫であることは気づきました。

その後の会話でPekingが10完、Zurichが9完したことを本人たちから聞き、自分たちのペナは圧倒的に少ない (MIT除く) ので、Seoul NUが10完するかどうかで3/4位が決まる、というのが唯一の本質ポイントであることを理解。

会場を出た後は別の部屋で食事を取りながら東工や京大とコンテストの感想を軽く喋ったり、写真を撮られたり、引き続きDKのデバッグをしたりしてました。

 

 

閉会式は、本当に各種スピーチの類が多くて長くてうんざりし始めたところでyes/noがようやく始まり、しかしyes/noもワクワクするのは最後の1~2割とかなので割と虚無で、そこまでは近くのLatin Americaのチームたちがハイテンションで楽しんでいるのを見て楽しんでいました。

 

銅・銀あたりでは、HSEが冷えてて予想大外れだったのと、Carnegie Mellon U, École Normale Supérieure de Paris とか ICPCメダル界隈では珍しい学校が出てきて面白かった。DEK以外の9問は全部人間向けだと思ったが、実装がそこそこある問題が多く5時間で全て揃えられれば銀が取れる、という結果になっており、実装練習は大事...

 

さて、争点のSeoulの完数は9で、Asia Pacific Championを死守し日本勢最高順位にも並び、とりあえず本当の最低限はクリアできたかなと個人的には少し安心しました。

 

 

MITはKも当然通しており、圧倒的すぎた。slime matthew jerry orz

ただ11完して並び立つことは当然出来るチームだったと思うので、圧勝させてしまったことに少し後悔はあります。

終結

閉会式はWorld Championが表彰されるとすんなり終わり、また夕食の会場に戻っていきましたが、気分が落ち込んでいてあまり交流のモチベが湧かず、割とすぐホテルに帰りました。(狭義WFはこれで終了です)

 

ホテルに帰った後は、スーツケースに全てを押し込み、ゆっくり寝ました。

 

Day6 (11/11)

ホテルでの最後の食事に行き、荷造りし、チェックアウト。

その直後に9年前に知り合ったバングラデシュの友人と直接会う機会があり、貴重な経験が出来ました (バングラデシュのお土産をたくさん頂きました) (日本にも来て欲しいね)

 

その後はチーム+コーチ 4人でバスの時間までの時間潰しとして、周囲を散策しました↓

ショッピングモール

 

各フロアに小さい店舗が密集してる感じで、基本衣類とか電子機器とかが売られていますが、宝石とか金のアクセサリー?的な店ばっかりのフロアがあり海外を感じました↓

VENUS DIAMOND COLLECTION (カラフル)

車と人の距離が近いアットホームな職場です!

ケーブルの絡まり方えぐない?

おいしいダッカ

この後夕方に空港へバスで移動し、飛行機まで約6時間ほど暇を持て余していたので、henoさんに現地通貨を頂いてスーツケースを縛るテープを買ったり、売店を散策したり、夕飯を食べたりしました。

コンテストまでは集中したかった&コロナのこともあり、またコンテスト直後は落胆していたので、この時間に初めてまともに海外チームと交流できた気がします。

23:55の便でシンガポールへ。

Day7 (11/12)

シンガポールへの便であまり寝られなかったので、空港のソファーで大爆睡し、トランジット8時間を消し飛ばしました。その後お土産を買って、日本への便の中ではあまり眠くなかったが、なんとか寝て暇を潰し、ついに帰国。

飛行機自体の遅延 + 荷物回収に時間がかかり、終電バトルが開幕して慌ただしく解散。

羽田からだったので自分は割とすぐ家に着き、WFは完全に終わりました。

まとめ

最後に、今回参加して感じた、ICPC WFでのtipsを (来年の自分のためにも) まとめておきます: 

  • 寒さ: 特に1年中暑い国では、逆に室内はクソ寒いことが多く、体が冷えると当然指先がかじかんでタイピングに支障をきたします。そこで、防寒対策が必要なのですが、コンテスト当日は支給されたTシャツを外側に身に着けることを強制されるので、薄手の長袖の服を用意するのが良いです。

  • 声かけ: 本番、特に最終盤はテンパりすぎていつも出来ることが出来なくなります。REが取れないならassertを全部消したか? とか 幾何でハマっているならepsを変えたか?とか (今回のDはepsを1e-9から1e-10にしたらACしたと後から聞きました) 、そういう典型的な声かけ集をチーム練の時からまとめて、直前に確認するとかしておけば、と個人的に思いました。

  • ライブラリ写経: 上記の通り、シールを探す旅に出て、見つかれば、勝ちます。(かなりしょうもない話だと思うんですが、こういう工夫がメンタル面でプラスに働き、実際に写経も捗ったので、やらない手はないです)

  • 荷物: 鞄やスーツケースの容量をかなり開けておかないと、大量に配られる各種お土産が入らない (いくつか向こうに置いてきました) だけでなく、表彰式で大量に重くかさばるプレートを貰ったり、ICPC challengeでPCを貰ったり、それこそWorld Championのトロフィーを貰ったりした時にとても困ることになるので、コンテストとは無関係ですが、注意しましょう。

  • その他: ある程度交流を楽しみたいなら英語をやっておくべき。 (自戒) あとどこの大学にどんな人がいるかを下調べしておくと観察が捗るので、おすすめです。

 

次回のエジプトのWFには再び UT a.k.a Isで臨みますが、その時には自分は研修医になっている (なっていてくれ) し、他2人も本業のウェイトが増していくと思うので、どの程度練習が積めるか不明ですが、悔いなく終われるようにはしたいなと思っています。また、次回はコンテストだけでなく、年に一度のお祭りということで、楽しむ気持ちも持ち合わせて行くつもりです。

とりあえず初手として、向こうで師匠とhenoさんにCFに復帰すると宣言したので、無理なく出られるdiv1には参加していくつもりです。

 

本当の最後に、今回のチームは間違いなく世界一になれるポテンシャルがあったと信じていて、結果としては届きませんでしたが、一番アツいポジションでWorld Championという大きな夢を見せてくれたチームメイト2人に感謝してもしきれないです。

また、2020年秋ごろから2年間、___ KING ___を応援して頂いた皆様、ありがとうございました。