IOI 2023 参加記
はじめに
IOI 2023 の開催に関わっていただいた全ての方々、特に JOI 事務局の方々や団長、副団長、随行員の方々に多大なる感謝を申し上げます。全体を通して楽しく、刺激的な体験をすることが出来ました。
この参加記では、IOI 2023 の全ての日に対して起こった出来事を書きます。細かいことも多々書きます故、短く纏まった参加記は JOI のページを御覧ください。(執筆時はまだ掲載されておりません。)
コンテストの内容に興味がある方は day4,day6 をご覧ください。また、問題のネタバレを含むため注意してください。(day4,day6 以外には問題の内容は入れません。)
day 1
この日は羽田空港に集合し、直前研修を行いました。この日に NTT の方から IOI 2023 の日本選手の T シャツを受け取り、また IOI 2023 についてのルール説明を団長から受けます。ここで提出するファイスは 1 問につき 1 個なので、今までのような output only(いわゆるテストケースが手元で見られるマラソン) と Alice.cpp と Bob.cpp を書きこの間で通信するような問題は出ないと分かりました。そしていよいよ飛行機に乗りイスタンブール経由でブダペストに到着します。約 15 時間のフライトでかなり体がしんどかったです。ただなぜかイスタンブールへの飛行機内部で隣の 2 人組に「知り合いがいるから席を変わってくれない?」と言われたので変わったらエコノミークラスからビジネスクラスへ移動。させられました。よかったのだろうか...
イスタンブールで次の飛行機を待っている間、IOI に参加する他の国の選手達に「IOI の選手?」と聞かれ少し雑談をしました。
day2
ブダペストに到着しました。ホテルへのバスを待つ間、少し広めの部屋に飲み物とお菓子が置かれていたので少し休憩します。これからバスに 2 時間程乗りホテルに到着します。運営の方や他国の選手の方が多くいました。ここでホテルのチェックインや写真撮影、IOI に参加する賞品をリュック丸ごと受け取りました。何故か卓球のラケットが入っていたが、何を意図していたのだろうか...
ここで日本のチームを担当するガイドさんに会います。IOI の途中で「自分は家に帰るから」と言っていたのでハンガリーの方らしいです。
この日は特に何も予定されていないので、ホテルの部屋で過ごしました、ただ何故か昼飯の提供がありませんでした。晩飯(ビュッフェ)を食べて部屋に帰りますが、偏食により酷い内容になってしまいました。食事の内容については基本的に変わらないので以降は略します。
day3
この日はプラクティスを行ってから開会式へ向かいます。8 時に朝ご飯を食べてバスに乗って割と近めのコンテスト会場へ向かいます。ここで 5 問のプラクティスの問題を解き、コンテスト中に持ち込むものを全て用意されたバッグへ入れます。
プラクティスが始まりました。席には 5 枚のカードがあり、それぞれ「コンピューターに問題が発生した」「飲み物が欲しい」「バナナが欲しい」「考察用紙が欲しい」「お手洗いに行きたい」という内容です。また、他には持ち込むものを入れるバッグ、水のペットボトル、軽量のパンとバナナ 1 本、マウス、マウスパッド、ノート PC が置かれています。今年もバナナなのか...と思いつつ持ち込んできたキーボードを接続します。来年以降の IOI に出る選手に警告しておきますが、会場の PC のキーボードは US 配列なので絶対にキーボードを持ち込みましょう。プラクティスの問題は予め見ることが出来て、output only(いわゆる手元でテストケースが見られるマラソン)はなかったので安心していました。(が、だからと言って本番に出ないと確信できる情報を私は持っていないので注意してください。)
さて、問題が発生します。私は普段コードテストを使っているので visual code studio を触らないので使い方が分かりません。春合宿の記憶を呼び起こし、なんとか Batch(いわゆる通常の問題)の問題を解くことは出来ました。
しかし、Communication (いわゆるインタラクティブ)の問題において手元で配布されているジャッジを使う方法が分かりません。coreputer という問題のジャッジファイル名が coreputer だったため、「how i use thie coreputer?」と非常に拙い clar を送ります。ここで運営の人が私の席に来て助けてくれますが、私は英語がほぼ分からないので当然聞き取れません。恐らく何が出来ないの?と聞かれていそうだったので coreputer を指さしながら「I want to use this.」と言います。すると「dot...slash...coreputer...」と言ってくれたので「./coreputer」と打ち込むことで動かすことに成功しました。そして clar で「We help you」と送られました。恐らく同じ人がこいつ英語出来ねえから簡単な英語で返してやろうと慈悲をくれたのでしょう。
ということでなんとかコンテストに問題なくコーディング等が出来そうです。一応日本語でも clar を紙に書いて送れそうなので、「これが見えていますか?(テストです)」と書いて送ると Yes と帰ってきました。「はい」じゃなくて「Yes」なのか...と思いましたがとりあえずよしとします。
プラクティス終了後に団長などの方々が会場に来ます。するとこの clar の紙見てないけど?と言われます。この日はとりあえず届いているかどうかだけのチェックらしいですが、驚きました。
そして昼飯を食べて開会式会場へ向かいます。色々ありましたが、終わってから隣のヨルダンの選手やメキシコの選手などと軽い雑談と写真撮影をします。ここで兄弟に会い、日本の人で写真撮影をしました。ここから他の国の人達と写真を取ります。ガイドの人にバスに乗って帰るか歩いて観光しながら帰るか選んでほしいと言われました。歩いて 15 分程度らしいので韓国の選手達と一緒に歩いて帰りましたが 50 分程かかりました。rng さんの「n 人で歩くと √n 倍遅くなる」を思い出しましたが、それにしても 1 人で 15 分は無理な距離ではないだろうか。
この日も晩飯を食べてから部屋で選手の 3 人と雑談をしてから寝ます。そしてカップラーメンを消費し始めます。いよいよ明日はコンテストです。
day4
いよいよコンテストです。朝ごはんを食べてからコンテスト会場に向かいます。ここでバスを待っている間 soon と言われましたが 15 分程待ちます。IOI 全体を通して、選手の間で「外国人の soon は 15 分」という共通認識が芽生えます。
コンテスト会場に着いてから、コンテストが始まるまで 30 分程待ちます。その間に何故か 3 人の選手が跳ね始めて、そこにどんどん人が加わり最終的に 200 人程の選手が集団で跳ねていました。運営から「please don't jump」と言われて会場に笑いが沸き起こります。海外のノリだな...と思いながら見ていました。
目指す結果としては、今年は初めてなので上位の戦いよりは金メダルを目指そうと思いました。ずっと前からそうですが、私はリスクヘッジをかなり好むので上振れを狙うというよりかは安定した成績を残すといった戦略のタイプをしています。OI としては割と一般的な動きだと思いますが、この戦略のやり方については私は自信を持っています。ただ、blackyuki は全く別で初めの 3 時間で解法を考察し、残りの 2 時間で実装するらしいです。このやり方だと誤読に気付けなかったときや、100 点が分からなかったときなどと多大なるリスクを負うため私とは正反対ですがそれで 4 位という好成績を叩き出すのは流石このような戦い方を好むだけあるな...と思いました。私はまだ OI の問題にここまでの自信を持てていないので、ある意味この戦略をしているのは自分への自信の無さへの裏付けであると実感しています。コンテストが始まる 4 分くらい前から会場が静かになり、いよいよ問題を見ることが出来るという高揚感を覚えます。
さて、コンテストが始まりました。全ての問題に目を通します。B が Communication、A,C が Batch です。ここで A の 2 乗解法が生えたと思い貪欲を投げますが通らず、少し考えると嘘だったので諦めます。B の問題文理解が正しいかの確認で簡単な 15 点を取り、 A に戻ります。とりあえず問題文確認のため 8 点を取り、愚直な dp を 2 乗の木 dp で高速化した解法が生えたので投げます。これは正しく、始めの部分点と合わせ 83 点を獲得します。ここまで 1 時間も経っていなかったので早々に 17 点を捨てて B,C に移ります。
C を考えます。この問題は少し点数が変わっていて、それぞれのケースに対して「選べる全てのマスを選んだとき条件を満たすか」を正しく判定出来たときその小課題の 1/4 の点数を得ることが出来ます。4 隅からヤング図形を削った形が必要十分条件と思い、暫く投げますが全く点数が得られません。テトリスの Z ミノのような形、つまり
xoo
oox
という反例がありますが、これに気付かず時間を浪費します。ここで 1 時間程使ってしまいますが、なんとか気付き理詰めで正しい条件を導出します。これは「列の間で選ぶマスの集合は連続しており、これを区間で表したとき 2 個の列の組であり片方が片方を網羅出来て、更にそれぞれの列に対して選んだ最も上のマスの行番号(ないならば$ -\infty を$ l_i としたとき、$ l_1 \le l_2 \le ... \le l_k \ge ... \ge l_{N-1} \ge l_Nとなっていること。」です。これで 25 点を得て、これを素直に 6 乗 dp で実装して$ N \le 30までの部分点を得ます。この時点で 65.5 点です。
ある程度の点数を得られたので B を解きます。グラフに強い制約がかかっているので、ほとんどの場合で長さ$ Nのパスがありそうです。これは正しく、そのようなパスが取れないときはグラフが$ 2個の完全グラフからなるときのみです。クエリ回数$ \mathrm{O}(N \log N)解法がすぐ生えたため、実装しますがコミュニケーション特有のクエリ関数の聞き方の制約違反などでなかなか通りません。なんとか修正して 55 点。はじめの 15 点と合わせて 70 点を獲得します。
ここまでで 83 + 70 + 65.5 = 218.5 点となんとか 200 点を超えます。この時点で 3 時間が経過しています。
最も点数の低い C 問題を考えます。$ N \le 30から$ N \le 500へ落とす必要があり、かなり苦しいです。ここで、先程の dp のうち 2 個の添え字は貪欲に最善の値を取るようにして状態と遷移からそれぞれ$ \mathrm{O}(N),\mathrm{O}(N)を削ります。全体としての計算量は$ \mathrm{O}(N^4)です。ただ、恐らく更に償却が効くだろうと予想して投げると$ N \le 500の部分点を獲得します。これで 77.5 点です。実は状態数がかなり減っていて map で持てば通るのではないか?と予想をしてコードを書き換えます。しかし$ N \le 500すら TLE してしまいました。ここから$ N \le 2000を通すためには残り 2 個の添え字についても同様にして、更に遷移についても償却が効かないので高速にしなくては行けませんが、この 2 個の添え字は先程の 2 個とはタイプが違う添え字であったので、そもそも初めが見えませんでした。
ここで 4 時間が経過しています。現在の点数は 83 + 70 + 77.5 = 230.5 点です。
C は厳しそうに思えたため、B 問題を考えます。ここで、初めに頂点 1 と他の頂点 1 個ずつに対してクエリを送ると考えます。そうすると、頂点 1 と結ばれていない頂点達は完全グラフを為す必要があります。その頂点達と頂点 1 と結ばれている頂点達が連結かどうか調べて、そうでないならば互いに完全グラフなのでサイズが小さくない方を適当なパスを取り答えます。連結である場合、完全グラフと頂点 1 と結ばれている頂点間の辺 1 本を$ O(\log N)回の質問で求めます。その頂点が最後になるように頂点 1 と結ばれている頂点を並べます。その後、$ x-1-yというパスから初めてどんどんここに頂点を加えていきます。$ zを加えるとします。今のパスの両端が辺で繋がれているかを持ちます。。$ x-yが繋がれていないならば$ x-zに辺があるかを聞き、あるならば$ x-zを結び$ y-zを次のために聞きます。ないならば$ y-zを結び$ x-zは結ばれてないと持ちます。$ x-yが繋がれているならば、$ z-1-...-x-y-...-wとして$ z-wが繋がれているかを次のために聞きます。
このあと、パスのどちらかの端点から残った完全グラフの頂点を全て通ったパスを返します。これで合計 85 点を得ます。
この時点で残り 18 分です。現在の点数は 83 + 85 + 75.5 = 245.5 点です。
C 問題に戻ります。最後に提出した$ N \le 500すら通らなかったコードを出来るだけ高速化してサンプルがあったので終了 30 秒前に提出しますが、$ N \le 30すら通らずコンテスト終了です。
外に出て団長達と合流して順位表を見ます。83 + 85 + 75.5 = 245.5 点で 8 位です。割と良い結果ですが、1 問も満点を取ることが出来ませんでした。blackyuki が A,B 両方満点を取っていました。自分の作戦を振り返ってみると、ここから A,B,C のどれかの満点を取るには厳しかったので満点を取るならばもう少し勝負に出るべきだなと感じます。ただ、今年は金メダルを取りたかったので来年もしチャンスがあればそのような戦略を試みてもいいかなと考えました。ところで、中国の選手は戦略など気にせず前から解いているらしい。彼らは CodeForces をやっているのだろうか?
この後は会場で昼ご飯を食べながら日本の選手で問題について色々と話しました。そしてホテルに帰ります。晩御飯を食べたあと、ボードゲームが出来る場所があると聞いたので blackyuki を行ってみました。開会式で仲良くなった韓国の人達がいたので、2 vs 2 で四目並べをしました。最終的に 1 行以外全てのマスが埋まり、リーチを相手に渡すことになり敗北してしまいました。ずっと後手後手の形に回ってしまったと思いました。また、エジプトの人達とビリヤードをしました。かなり難しかった...
day5
この日はエクスカーション、いわゆる観光です。この日は林や草原に色々な建造物があったり、博物館があったりする場所に行きました。ただ、虫嫌いにしては虫が多くかなり辛かった記憶が多いです。博物館を出たあたりで団長や双子達にたまたま会いました。昨日の問題の感想を話してから昼食を食べます。焼き魚やビーフシチューなど、初めてまともな食事を行いました。そして IOI 2023 の選手とガイドさん全員で集まって上から写真を取ります。このような撮られ方は初めてで割と面白かったです。明日もコンテストがあるため、早めに眠りに就きます。
day6
コンテスト 2 日目です。特に 1 日目と変わらないのでコンテスト開始前は略します。ただ、また選手達が跳ねて「do not hop.」と言われていました。あれはジャンプじゃなくてホップなのか...(違いが分からなかった。)
ただ、この日の記憶は消したくても中々消えないでしょう...
コンテストが始まります。全ての問題に目を通します。特に分かりそうな問題がなく、特に B が前日に話していたが私が書けない CHT の匂いを感じてかなり絶望を感じます。
さて、とりあえず A を考えます。条件が複雑すぎるので何か簡単な条件に言い換えられるのだろうか?と思い、とりあえず A のパスの場合と深さが高々 2 であるの部分点 5 + 9 = 14 点を取ります。ここで、条件をそれっぽく一般に拡張した(嘘)コードを投げます。何故か同じ色の辺は高々 2 本までの部分点が得られ、5 + 9 + 8 = 22 点になります。これは正当性があり、深さ 3 以上の頂点があると必ず不可能であり、そのような場合は私の必要条件を満たさないからです。このような問題はそれっぽい条件を導出してからどんどん計算量を落としていくというやり方を取りたいですが、そもそも正しい多項式の条件すら導出できず、諦めます。ここまでで 40 分経過しています。
C に移ります。自明な部分点の「障害物はない」と「$ H = 2」を取り、16 点を獲得します。ただ、問題文の細かい理解が難しかったり、呼び出す関数の条件が厳しかったりかなり時間を使ってしまいました。これ以降はかなり面倒そうなので一度置いておいて B に移ります。この時点で 1 時間 20 分が経過しています。
B を見ます。まず、$ Xより早いバスは無視してよいです。初めの $ N本のバスの動きは簡単にシミュレーションできます。なので、$ 1個のクエリを今どこにいるかを持ちながら二分探索することで $ Q \le 5000の部分点は取ることが出来ることが分かりました。ですが、A,C が厳しい今 B で 100 点を取らないとかなり苦しい戦いになると思って B の 100 点を考えます。(いつもの私ならここで実装をしていたであろうが、状況が状況であるため)
ここで、1 回どれかのバスにぶつかってしまえばそれ以降は「$ i個目の整列所に着くバス達のうち、$ j番目に早く到着するバスの時間から、その場所から速さ$ Xでバスが出たときの最終的に地点$ Lに着く時間」を前計算すれば解けると思いつきました。これは二分探索を用いて$ \mathrm{O}(NM\log N \log M)で出来て、更に初めにどのバスにぶつかるかも$ \mathrm{O}(\log N \log M)で求められたので実装をします。ここで C++ の set のイテレーターで引き算をすることで場所を求められると勘違いをして実装を間違えてしまいます。更に、そのテストで vector でも出来ないとなってしまい焦ります。これは実際には出来ますが、lower_bound に渡した引数が vector だと思われてしまっていました。なので、map を用いて頑張って実装をします。1 時間を使って実装をします。これが通らなかったら絶望だな~と思っていましたが、得られたのは 10 点。終わりだ。
サンプルがあっただけのコードだが、バグがどうしてもどうしても見つからず、焦りまくる。このときの感情は思い出したくもありません。2 時間半経過時点で 22 + 10 + 16 = 48 点。何かの夢でしょうか?コンテストで毎回あと 1 時間あるなら詰められる.../実装が終わる.../バグが取れる...から AC が取れないを繰り返してきた身としては、もう何もかも投げ出してしまいたい気分です。今回もそう終わってしまうのか...という気持ちがあり、A 問題も自分が見えてないだけで簡単な条件があり他の人達は既に高得点を取っているのか?という焦りもありもうどうしようもありません。抗いようもない A の周りの点数が分からない、B のバグが直らない恐怖という力に襲われます。この時の気持ちは思い出したくもない。
バグが本当に見つからず、早まる心臓の鼓動を押さえつけながら諦めて愚直解を書き提出します。ここで焦っていたので、初めの 3 個の部分点は愚直の $ O(NMQ\log N)を許容するであろう制約だったのに$ N,M,Q \le 100と assert に入れてしまいます。焦っているのがよく分かる。ここで愚直すら落ちますが、なんとかデバッグをして 3 分程で通します。ここでランダムテストを回りまくりますが、見つからない。サンプルのケースで全ての時間について行っても同じ。どれだけテストケースを回しても同じ。それもそのはず、私は時間も距離も分かりやすいように$ 100以下にしていたのです。バグの原因はオーバーフローです。IOI は int solve(vector<int> a,int x) のような関数を実装して提出しますが、int と long long の間に互換性がなく long long としては受け取れません。クエリの関数には long long でグローバルでおいていたからいいものの、init、つまり前計算の関数でオーバーフローしています。普段 long long を使っている身からしたらその可能性はそもそも頭にないのです。一応 $ 100を$ 10^9に変えてみると落ちるテストケースが見つかります。希望です。なんとか焦っている中 print デバッグを繰り返してオーバーフローを発見します。提出時点でコンテストは 3 時間が経過しており、ここで通らなかったら本当に終わりだな...と思いながら投げると 65 点を獲得します。救われた気持ちになります。この時の安心感も今までの絶望感も忘れることはないでしょう。落ちている 35 点も TLE であるため、log を 1 個落として提出して 100 点を獲得します。なんとか合計 138 点とまずまずの結果になり安心します。このパートは 10 分程で処理出来ました。ここで、C が面倒であったのと A が何か簡単な条件があるのではないか?と思って A に向かってしまいます。順位表が見れないのは怖いものです。実際に A で多項式に落とした人は 4 人しかいません。何度も何度も条件を考え直し、提出を繰り返し、0 点の文字を目にします。春合宿でも体験したこの冷酷は 0 という数字の繰り返しの絶望。頼むから黄になってくれと思いながら投げ続けますが、この数字が多項式時間に落ちたことを表す瞬間はコンテスト終了までありません。途中で順列全列挙を書き 9 点を獲得しますが、何故かこのコードは配列外参照をしていてそれに気付かずランダムテストで時間を更に失ってしまいます。結局この問題で 1 時間 20 分程を消費してしまい、残り時間あと 30 分の段階でもまだ 147 点です。どうしようもなく C に向かいます。
C で狙うは小課題 3,4 の部分的な解答による 50 % の部分点です。小課題 3 で dfs のコードを書き 4:48:50 で +9 点、小課題 4 でそれを少し変えたコードを提出して +10 点で合計 35 点です。残りの 7 分半でなんとか完全な解答が得られないかと考え、小課題 4 の方で完全な解答が分かったので頑張って実装をしますが間に合わずコンテスト終了。合計 31 + 100 + 35 = 166 点でなんとか 100 点後半には乗ったものの A の周りの結果が未知数過ぎて恐怖に襲われます。3,4 列程前にいる kodaman が頭を抱えているのが見え、少しは安心をしますが彼は 2 年連続金メダリストです。C が出来なかっただけで A は簡単だった可能性は否定できません。離席が許可された瞬間、kodaman の方に飛んでいきます。A の点数を聞くと 31 点と言われて安心しました。penguinman,blackyuki も多項式には落ちておらず、安心しました。
なんとか外から団長達を探し出し、順位表を見ます。全体 9 位です。金メダルです。周りの A の結果次第で金が、流石にないだろうが最悪銀が怪しいと思っていたので本当に安心しました。この後のことはコンテスト中の記憶が強すぎてあまり記憶に残っていません。昼食を食べて、日本の選手と問題の話をして、他国の選手達と雑談をしてからホテルに戻ります。暫くの間途方もない絶望感からの解放という凄まじい安心を覚えました。晩御飯を食べてから眠りにつきます。
day7
この日はエクスカーション 2 日目です。バスの中で動物園でコミュニケーションタスクがあると聞いていましたが、最後までよくわからなかった。動物園を周ってから色々な遊びが出来る場所に移動して昼ご飯を食べます。平面四目並べ(ただし、駒にサイズがあり大きいものは小さいものに被せられて、一番上にある駒を移動する操作も可能)を団長としました。かなり長引いて、終わらないのではないか?と思いましたが、最大の駒でダブルリーチをかけられて負けてしまいました。そのあと、blackyuki と kod の立体四目並べを見てからバレーボールを 3 人でしました。そこにどんどん人が来て、最終的に 6 vs 7 程になっていました。バスの時間になったので移動をします。blackyuki がサーブが何故かかなり上手かった。(バスケと相関があるのか...?)
この日は何故か夜にディスコのようなものがあり、すぐそこの会場で晩御飯を食べます。ここで、バチャを行っていたときの朝昼晩が出てくる天才解法の問題の作者と会います。彼はデータ構造が好きらしいですが、どうしてそれでこの天才問題が解けるのだろうか...
初めの方は少しいましたが、コンテストの疲れと動物園や遊んだ疲労や慣れないノリなどもあって blackyuki,kod と 3 人で帰りました。その時もう 1 人の恐らくサブ的な役割の女性のガイドさんにホテルまで一緒に来てもらい、その時に「このようなノリは疲れてしまうので苦手」と言っていた。そのあと KARAOKE(カラオケではないらしい)に penguinman と団長など合計 4 人でステージに上り紅蓮の弓矢を歌ったらしい。(海外だと人気なのか?)
帰ってきてから晩飯までと 24 時くらいまで、blackyuki と kod に 7 days to end with you をやらせていた。かなり見ていて面白かった。
day8
いよいよ閉会式です。午前にプレゼンテーション的なものが行われていたらしいが、疲れていたのでぐっすり寝ます。起きて会場で昼ご飯を食べます。晩御飯は閉会式会場で食べるらしいので、明日の朝飯は簡易的になろうと思うとホテルでのほぼ最後の食事。かと言って食べられるものが増える訳でもなく...
閉会式で金メダルを貰います。ニュージーランドの 10 歳の子が銅メダルを貰うとき物凄い拍手を貰っていた。彼が来年以降金メダルを撮り続けた場合、tourist の 6 個を超えることが可能らしい。閉会式後、写真撮影を行った。ところで、私は写真を撮られるのがかなり苦手なのだがどうにかならないだろうか...(どのようにしていればいいかが分からない。)
会場で晩御飯を食べる。初めてまともな肉を食べることができ、感動していた。この日も帰ってから特に何もせず雑談をしてから寝ました。
day9-10
この日はいよいよ帰宅ですが、penguinman が金メダルや景品や財布などを入れたリュックを昨日夜写真をラウンジで撮ったとき置いたままにしてしまったらしく、無くしてしまいました。これを探し回りますが見つからず、金メダルは予備に 1 個だけあったのでこれを貰い他は諦めました。ここでガイドさんとお別れをします。ただ、10 月末に金メダリストが来れるキャンプのようなものがあるためそれに行くなら会えなくはなさそう。バスでシゲド駅まで移動しますが、何故か駅前で団長と blackyuki がラジオ体操を始めました。何故だろうか...
そのまま後の車に乗ってきた人達と合流して、海外の新幹線らしきものに乗ってブダペストまで移動します。ここで荷物を預けて少し移動してから観光組と食事組に別れました。まともな朝飯を食べていなかったのでお腹がすいて、食事組に行き人生初のハンバーガーを食べました。野菜とソースを抜いてほしい...
ここから地獄の飛行機です。2 本炭酸を買いますが、出国検査後の店で炭酸以外を買っていたため 2 本買いました。こんなことになるとは思わず、次の保安検査所までに飲み干さねば...となりました。
まずイスタンブールに行くため 2 時間程飛行機に乗ります。ですが、行きは保安検査所をイスタンブールで通ったはずがロビーが近くにあり何故か通らずに済みました。クロワッサンとジュースを買って晩御飯とします。何故か飛行機が 30 分程出るのが送れていました。ここから 12 時間程飛行機に乗って東京に帰ります。隣の席が空いていたので寝やすかったです。ですが東京に着いたらもう day10 の夜です。ここから色々と行い空港を出てホテルに向かいます。晩御飯は肉と米が食べたかったため、焼肉を食べました。JOI 事務局の金で食べる焼肉は美味しかったです。何故か火が 1 点からしか出ず、yakiniku optimization が始まってしまいました。ホテルに帰り眠りに就きます。...と言いたいところですが飛行機で寝た後なので寝ることが出来ず、ダラダラして過ごしました。翌日の朝にカフェイン飲料を買うことでなんとか耐えようとしました。スーツケースをコンビニで家に送り、朝飯をコメダで食べました。トーストのモーニングセットを食べ、今はキャンペーンで 1 枚お代わりを貰って食べました。これでは足りなかったのでコンビニでカフェイン飲料とざるそばを買って部屋で食べました。ざるそばがあまりにも美味しすぎて、ハンガリーで食べたどの食事より美味かった...(ハンガリーには申し訳ないが...)
ここから表敬訪問に行き、文化庁副大臣に表彰を貰い懇談を行った。ここで IOI 関連のイベントは全て終わり解散となった。この後は知り合いに会いお好み焼きを食べてボーリングをしてから新幹線で家に帰った。ボーリングで 151 点が出せてかなり嬉しかった。(上振れだが...)
おわりに
とても楽しい 10 日間を過ごすことが出来ました。来年も IOI に行くチャンスがあるので、より高順位を取りたいと思っています。今までずっと IOI に行っていた kod,blackyuki が今年で引退ですが、下の学年が強く、春合宿がかなり難関と感じます。ただ、今年は施設と食事がかなりいい方だった上来年は大学の寮に止まるらしく、海外耐性と偏食、英語の出来なさをどうにかしなければ...
最後になりますが、改めて IOI 2023 に関わっていただいた全ての方々、特に JOI 事務局の方々や団長、副団長、随行員の方々に多大なる感謝をこの場を持って表明させていただきたいと思います。