数学とか競プロとかイギリスとか

EGOI2023 イギリス代表としての参加記

EGOI2023がとってもとっても楽しかったのでその参加記です。交流で聞いた他の国の事情など、コンテスト自体以外のことも多分に入っていてすごく長いので、いらないところは流し見していただければと思います。

誰かのお役に立てば嬉しいです!

※問題への言及があります。

各国のOI事情

順番が違いますが、今回大会で聞いた話から学んだOI事情が日本からは想像がつかず面白かったので共有したいです。大会自体を教えてくれという方は飛ばしてください。ちょっとしたお気持ち表明があります。

 

ヨーロッパ

日本代表団の引率の先生によると、日本のように組織的に選手を育てたり派遣したりする国はヨーロッパでは少ないそうです。

それよりは個人経営に近く、割と1人で全てを切り盛りしているところが多いとのことでした。

 

それを踏まえて、イギリスも実際そうなんですよね。

 

ウェブサイトは年に2回の更新しかありません。IOIの結果も載せられません。IOI代表は、誰でも受けられる予選(しかも1ヶ月の間から試験日を選べる)からトップの15人のみをいきなり合宿に呼びます。

 

結果的には私もEGOIチームメイトになった子もギリギリで予選に落ちていたよう。そこでチームメイトがBIOの運営の人に「EGOIという大会があり、参加したいです!」と複数回メールを出し、2ヶ月ほど待って3月末に返信が来て、5月に急ピッチでEGOI選抜の場が整えられたようです。

そして、なぜか2人だけが代表チームに選ばれて、1人のスタッフの方がつきました。

 

それが、今回イギリスが初めて参加する事になった経緯です。

比較すれば、日本の情報オリンピック委員会はとてもしっかりと運営されており、お土産や国旗が用意されていたり、スタッフの方が4人ついていたりというのもとても珍しいし恵まれていることだと今回感じました。

 

なので、参加させていただいているJOI・JOIGの運営の方のありがたみを実感します。

様々なバックグラウンド

今回、国籍としては日本人の私がイギリスを代表してEGOIに参加させていただきました。経緯はツイートした通り、12月ごろにBIOの予選を受験し、3月のJOIG春合宿の後にEGOIイギリス代表選考会の連絡を受けて代表になったというものです。

 

12月頃は、JOI二次予選の準備に加えて学校のフィールドワークにコースワーク、オーケストラの舞台に模擬試験と目の回るような忙しさでした。その中で受けたBIOの予選は、「まあ1度受けてみるか!15人しか選ばれないし。」くらいの気持ちでした。その15人の枠に入るのは、IOIの代表選考ですからとても難しいですし、実際入れませんでした。

 

幸運なことにチームメイトのおかげでEGOI参加の選考のチャンスがもう1度与えられましたが、今までイギリスが参加していなかったことから、EGOI 2023にイギリス代表として参加できる可能性なんて1ミリも考えていませんでした。

 

前置きはここまでで、今大会中に色々な背景を持った人たちと出会いました。

実はEGOIのイギリス代表は、元々は私と、今回チームメイトになった子とは別の女の子で決定していました。ですがその子はイギリスの学校で学んでいるウクライナ人の子で、イギリスの代表選考には参加したものの、その後ウクライナ代表に選ばれたためにイギリス代表を辞退したとのことでした。

 

他にも、生まれも幼少の育ちも現在の居住地も違う人などにもたくさん出会いました。みんなそれぞれ違うバックグラウンドを持ちそれを誇っていると感じます。

 

今の時勢、1人1人違う事情がある中ではっきりとした境界線を決めるのはとても難しいと実感します。だからこそ各国に参加資格のルールがあり、そのルールに則って複数の国で参加OKな人たちは多数いて、両方に参加が認められています。

私も、日本と英国どちらにも都度報告と確認をして、毎度承認をもらっていました。

今回、様々な出会いを通して視野がさらに広がりましたし、イギリスの学生でも日本人でもある私の存在も認められて救われたような気持ちになりました。

 

性自認

これは私の推測の域を出ませんが、外見からの判断からして参加者の中に生物学的男性はいたと思います。一人とかでもおそらくありません。

日本でも女性自認については最近よく話題に上がりますが、EGOIで出会ったそのような方達は、とても可愛い服を着て普段から女性としてずっと生活されていたと感じます。

 

男女どちらがプログラミングをしても差はないよね、だから女性にプログラミングを広めよう、というのがEGOIの根底にあります。(スポーツやお手洗いなど他の事柄は全く関係なく)こうした女性が対象の科学コンテスト・オリンピックでは、本当に自認が女性なら歓迎されるべきだと思うので、少し嬉しくなりました。

EGOI 2023

day -1

緊張のあまり、本気で心臓が口から飛び出そうでした。shiborimameちゃんから教えてもらったキーボードを買ったり、マスコットを勢いで3つ買ったりしました。

day 0

夏休みで日本にいたので、行き帰りは日本代表団の皆さんにお世話になりました。

羽田空港での壮行会から注意事項説明までを横で聞き、晩御飯の中華までご一緒させてもらったので少し申し訳ない気持ちになってしまいました...。ですがワクワクも同時に高まってきました!

 

ここから13時間の長いフライトと、乗り継ぎで1時間少しの便に乗ってコペンハーゲンまで向かいます。飛行機には慣れているおかげでしっかり寝れたのがよかったです。ナプキンがマリメッコで可愛かったです。

 

空港ではスタッフの方が待機していて、電車と路面電車を乗り継いでさらに少し歩いて会場に到着しました。この時点で現地時間10:00AM。

この日は1日暇なので、私は少し日本代表団と離れてホテルの朝食を食べてみたり、また合流してスーパーに行ったりゲームルームに行ったりして過ごしました。

 

 

会場にはホテルから5分弱歩いたところにゲームルームがあり、そこにかなりの種類のボードゲームやカードゲームがあり良い社交の場になっていました。アップライトピアノがあって嬉しかったのと、カラオケや写真ブースまであったのが印象的です。

 

イギリスチームはこの日、飛行機の遅延を含め三重くらいのトラブルにあったらしく、18時の到着予定が22時くらいに。いくら機内で寝たとは言っても、この時間まで起きて待っているのは少し辛かったです...

 

day 1

午前中の開会式からスタート。

会場

式はまず二人の司会の方が、EGOI全体について紹介した後にルンド大学とスポンサーの紹介があり、そして各国が挨拶して終わりました。ルンド大学は留学プログラムが充実していて、1/4がエンジニア系の学部におり、世界の大学トップ100に入っているそうで、大学のお話を聞けたのはすごく面白かったです。

 

司会の方の会話は結構面白く、

「なぜヨーロッパと付いてるのにヨーロッパ以外も参加してるの?」

「えっとね、ヨーロッパ以外の国も参加したいんだよ!」

 

「なぜルンドで開催されるの?首都でもなんでもないし何も無いのに」

「確かにそうだけど、ルンドは知的首都だよ!!」\ドッ/

みたいなやりとりもありました。笑

 

式では入場した時からマーチバンドの方(学生オーケストラと紹介されましたが、弦楽器や一部の管楽器がいなかったので)が陽気な音楽を奏でていて、チームメイトと「お祭り気分になるにはちょっとまだ早いよね」と話していました。ですがダンサーの人も可愛くていよいよ始まった...!という感じが味わえました!

合計3、4回は途中で演奏されていたのに、開会式後も会場の外で弾いたり踊ったりしていたので体力がすごそうでした。

 

この後から、アイルランドの子とチームガイドが同じだったためほぼ同じチームのように行動するようになります。※普通は1チームにつき1人のガイドさんですが、イギリスが選手2人、アイルランドが1人だったため合わさることに...

アイルランドはいつも選手が1人らしく、にもかかわらず先生が2人ついていて(student to staff ratio的に)少し羨ましかったです。

 

お昼ご飯の場所が昨日と違い大学の食堂でしたが、正直比べ物にならないほどここの方が美味しかったですし、場所も綺麗で広く近代的でした。

写真のチーズカレーは2日目のディナーで、今大会の個人的ベストミールです。

 

さらにここから本格的に交流を始め、食堂が遠いため道中で色々な人とお話をしました。

 

ラトビアは手続きがうまくいかなかったか遅すぎたがで、登録できていなかったようです。そのために開会式でも国名が呼ばれず、解散と言われたあとに国名が呼ばれてしまい少しかわいそうでした。

ホテルも自分で手配しなければならず、仰々しい魚が壁に描いてある少し気味の悪いホテルになってしまったそうです。
エジプトのチームとも連絡先を交換しました。

 

午後のプラクティスでは、キーボードの配列を日本に変えるところからトラブって始めは少しヒヤヒヤしました。大体解決された頃、配列が微妙に違って | が打てないことに気づいて困ってしまいましたが、団長がorとbitorで解決することを教えてくれたので助かりました。

写真はありませんが、去年のトルコ大会で見た写真のような大部屋ではなく、10人ほど入れる小さなコンピュータールームをいくつも使っているようでした。

 

この日の晩御飯、ベジタリアンのラザニアはとても美味しかったです。眠くて交流する気力がなくなってしまったのが少し悔しいです。

 

day 2 - Competition 1

1日目なのであまり緊張していませんでした。他の選手のログイン情報が配り終えられて無いとのことで、15分遅れての開始になりました。

 

今回のEGOIの方針は、私は書いてる途中によく迷子になるのでちゃんと解法を書こう、でした。そしてJOIGでタイピング音がすごく気になるということがわかったので、耳栓を忘れないこと、です。

 

まず1問目はこれに沿って、すぐに満点解法がわかりましたが紙に書きました。ただ謎のコマンドエラーに苦しみ、なんとか始めの1時間で満点を取れました。コードは開始20分くらいから1文字も変えていないので、普段と違うデバッグに慣れていなかったのだと思います。

 

次に2問目の愚直を投げ、バグりつつ16点は取れました。12点の部分点も追加で取ってから3問目へ移動し、簡単な解法で取れるはずの20点のコードを書いて提出しました。

これがかなり問題で、インタラクティブですがコーナーケースに引っかかって競技時間中ずっとTLEを出して終わってしまいました。全体に公開された質問にもこの関連の物があったので、気づくべきでした。

 

割と時間を使ってしまった後、4問目を読み始めましたが、そもそも問題文を読むのが難しかったです(翻訳もどうやら辛かったそう)。現実世界にありそうな道路の問題なのに、なさそうな設定だったからかもしれません。なんとか趣旨を理解して、隣接頂点に2本道路を建設して条件を満たせる・満たせないで判断する簡単解法でsubtask 2までの15点までを取りました。

 

そして最後に、満点解法が思いつきそうだった2問目に戻って書き始めました。グラフ的に解けると思って書き始めたのは良かったのですが、実装しているうちに細かいところの詰めが足りないことに気付き他の部分も変更しながら実装したのがダメでした。1分前になんとかサンプルが全て通るコードを出しましたが、全てWAになってショック。

 

結果は100-28-0-15で143点です。

 

 

この後スポンサーイベントがあり、4人チームでの数字推測ゲームでした。イギリス+アイルランドチームはエストニアの子も加えて4人チームを作り上げ、なかなかよくできて2位で終わりました。

13問のうち1番良いスコアは数学の問題かつ私が得点し、さらにその問題であり得る最高スコアだったので、貢献できた気がしてとても嬉しかったです。

 



 

 

そして晩御飯の後、コンテストがすごく悔しかったので、書けそうだったところをもう1度書き直しました。まず3問目でコーナーケースを考慮したコードを書いて20点とり、そして2問目にチャレンジ。すると一発で満点通ってしまいました...。かなりショックでした。。

しばらくは、両方取れてたら...というとてもくだらないことを考えていて、それでもプレッシャー下で時間内に解けなかったものは普通に実力なので、寝る頃には割り切ることができました。この辺りはJOIG春季トレーニングの失敗経験が生かされていたかなと思います。

day3 - Excursion

朝9時にホテルをバスで出発して、動物園とビーチに向かいました。この日も快晴でしたが、時々パラパラと降るくらいはありました。

 

まず動物園。といってもアニマルパークという感じで、アスレチックなものやひつじのショーンの乗り物がありました。ひつじのショーンの乗り物はトラクターを模した四人乗りのライドで、エリアを一周して帰ってきます。

途中ではキャラクターたちが傍にいたり、ここから進むなという看板が貼られた橋があったり、豚に水をかけられたりしました。

 

そこからは順番に動物園を回って行きました。恐竜エリアもあるなど飽きない動物園でしたが、運動神経皆無の私がアスレチックエリアに行ったのでめっきり疲れてしまい、お昼ご飯の時には体力がかなり消耗されていました。

 

運営の方からのミッションがあったので午後はその消化をメインに。パーク内にある3択クイズに答えたり、√2mに一番近いタワーを作るなどのミッションでした。

スウェーデンの3択って1,X,2なんですね、なんでだろう...。

√2mは、チームメイトの背が高いので、彼女が膝をついて私のカーディガンを乗せたら誤差1cmになりました。)

 

16時半ごろにビーチにバスで移動しました。この間イギリスとアイルランドチームで北アイルランドの領土についての話をしましたが、みんなイギリス・アイルランドで生まれていないよねというオチに収まりました。2階建てのバスでテンションも上がりました。

 

 

 

ビーチでは、珍しくベジタリアンではないBBQのディナーでした。アイルランドの子は真っ先に泳ぎに行きましたが、私とチームメイトはタオルを持ってくるのを忘れたのでやめておきました。そもそも私泳げませんが。

 

食事をしてから海を見てひとしきり写真を撮り、海外版人狼AVALONをやろうという話に。人数が足りなかったので日本チームを勧誘しに行って一緒にプレイしました。

 

人狼よりルールが難しいのですが、はっぱちゃんが英語で聞いたルールをすぐに理解して周りに説明し、かつ心理戦の作戦まで理解していたのは本当にすごいと思いました。

私はTrinity Campでプレイしたことがあったのでそこそこ大丈夫でしたが、初回でそんな頭の回転できない〜

 

clara775.hatenablog.com

 

day 4 - Competition 2

銅メダルでも下の方だったので、朝からすごく緊張していました。ただガチガチにはならずに済んだかなと思います。

 

競技開始後、一通りのタスクを読んで1問目の出来そうな部分点から実装しますが、subtask 2までいけるだろうと思ったコードが1までしか通らず、バグに時間がかかったので諦めて2問目へ移行しました。この時点でタイプミスが多かったのでやっぱり緊張してるんだなと気づきました...

 

2問目は、昨日の夜部屋でDPがでそうだよねという話をしていたので、これだ!と思いました。ただ変に二次元DPにしてしまい、多分subtask 2くらいまで通ったと思います。

その後三次元DPに直して、満点を取れました。ここで満点を取れたのが精神的に良かったです。遷移をはっきり紙に書いておこうという戦略がうまく行きました。

 

次に3問目の部分点を取りました。愚直を書いて22点取りましたが、実装を直せば直すほどガタガタになっていったので、諦めて4問目のインタラクティブへ。しかし競技1日目の二の舞で、今度はWAが抜けませんでした...。

 

ここで1番取れそうな部分点は11点しか取れていなかった1問目かなと思ったので、愚直を書いてsubtask 3を通し、通らなかったsubtask 2のad-hoc解法を見直しました。少し数を大きくすると間違いであることに気がついたので、数十分で直せたと思います。これで無事、1問目は69点まで上がりました。

 

結果は69-100-22-0で191点。結果が気になったので、ホテルに戻って携帯を確認し、銅メダルらしいとの情報を得ました。

 

結果的に2日目の振る舞いは、できうる限りのベストだったと思います。

1日目はスコアをもっと伸ばせたはずで、もう少し時間の意識が必要だったと思います。最初はメダルを取ることが目標でその実現も怪しいと思っていたのですが、こうしてみるととても悔しいです。

 

この後はパズルを解くスポンサーイベントと晩御飯があった後、もう競技も終わったことだし交流に力を入れよう!とゲームルームに比較的長く居座りました。カードゲームをやったりカラオケをやったり、チームでフォトブースに行って写真を撮ったりできたので、とても良い思い出になりました。

 

day 5

午前中はシルバースポンサー3社のイベントでした。

 

最初の1社はJavaアプリの会社で、メモリやVMなどの解説がありました。GCSEのComputer Scienceを修了して良かったなと思った瞬間です。

次はGoogleで、機械学習の紹介がメインでしたが、枠1時間の半分くらいで終わってQ&Aに移りました。やはりみんなインターンに興味があるようで、たくさんの質問が飛んでいました。

最後はモクテルが出される自由な時間で、3種類のうちの1つがとてもとてもおいしかったです。ここでは、会社の人に自由に質問ができ、3社とも違う個性があってとても楽しめました。

 

お昼の後、路面電車に乗って閉会式へ。式ではEGOIに関する数字が紹介されたり、大学の教授がお祝いの言葉をくださったりなどしました。

結果イギリスチームは銅メダル+Honorable mentionでした。無賞ゼロ!

 

成績の下から呼ばれるのですが、私は銅メダル最後のグループに呼ばれて、やっぱり悔しい〜と思っておりました。

 

それはそうと、日本チームは全員銀メダル以上獲得という大快挙を成し遂げられたので、自分のメダルをもらったあとは日本チームが呼ばれるたびにヒュー!といって盛り上げる役をコッソリしました。

 

少し歩いてバンケット会場のホールへ向かいます。前菜、メイン、デザートが出てくるしっかりしたお祝いのディナーで、デザートのアイスが出てくる時に花火の演出があって面白かったです。

 

また、食事の合間に歌のパフォーマンスがあり、ハモリもあってプロ並みに上手かったのが印象的です。なぜか、イギリスの有名な王であるヘンリー8世が背が低かった話の歌やフィンランドの歌を歌っていて、ちょっと笑ってしまいました。

 

終わり際には開会式で出てきたバンドの人が登場し、かなり盛り上がりました。

みんな踊ろう!という掛け声をきっかけにみんな動き出して、学校のディスコでありがちないわゆる「でんしゃっしゃ」状態がここでも起こりました。欧米共通の盛り上がり方なのでしょうか。私のちゃっかり中に入りましたし、純粋に楽しかったです。

 

その後、アフターパーティーに参加するつもりだったのですが、ディスコ音楽がかなり重低音効いた感じで長時間耐えられないと思ったので、仲良くなった人たちと一緒にルンドの街を回りました。

 

お互いの言語文化について話しながら、ロゴの元になった大聖堂やLUNDのモニュメントを見て一緒に写真を撮り、ヨーロッパらしい可愛らしいレンガの街並みを眺めながら夜中にひとしきり歩いて回ったので、行ったメンバーとさらに仲良くなれた気がしてとても嬉しかったです。

 

 

 




北欧はセブンイレブンが多そうですね。

 

day 6

また日本代表団にお世話になって日本へ帰りました。チームメンバーやガイドさんとは名残惜しい別れをしたので、改めて交流ができて良かったと実感することができました。

はっぱちゃんにコード読みやすいよねと言われてテンションが上がりました。

個人的に、チームメイト、アイルランド代表の子、そしてはっぱちゃんとは結構仲良くなれた感じがあります。一方的だったらどうしましょう。

全体的な感想

国際大会ってこんなに楽しいんだ!!と心から思う大会でした。国際交流の意義と楽しさ、そして大きな大会で問題を解く大切な経験をさせていただきました。

たくさんのスタッフの方や、2年ほど前から準備をしてくださった運営の方々、そしてお世話になった日本代表団の皆さんと派遣してくれたBIOの方に感謝を伝えたいです。

 

振り返って、昨年のJOIGの本選で優秀賞を逃してからここまで、特に昨年の夏からの一年間はよく競技プログラミングの努力を積んできたなと自分でも感慨深くなります。競プロ愛が一層深まったように思います。

 

そして、次年度へのモチベーションが上がりました!果たしてイギリスは来年選手を派遣してくれるのかどうか、それもよくわかりませんが、是非次年度も頑張ってどこかの国から出られるように頑張りたいです。

JOIの方は誰でもウェルカムだと言っ下さったのが、ありがたかったです。

 

目標は今年よりも良い色のメダルを取ることです。といって自分に圧をかけておきます。

 

 

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