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

JOIG 2023/2024 春季トレーニング参加記

日本情報オリンピック女子部門第4回の春季トレーニング(2023/2024)に参加させていただきました。JOIGの方はあまり参加記がなさそうなので、書いて少しでも女子部門を盛り上げたいという魂胆です。問題の方針のネタバレはありませんが、どの順番で解いたなど競技中の行動についての軽めの言及があります。

 

今までのJOIG歴

今年が私にとってのラストイヤーなので、JOIG歴を軽く振り返りたいと思います。

ちょうど競プロを始めた時にJOIGの第一回が始まったので、運よくその時から参加させていただいています。

  • 第一回:なぜこの時優秀賞が取れたのかよくわかりませんが、とにかく驚き、自分に競プロの才があると思い込み始めた頃です。結果として競プロを続けるきっかけになりました。
  • 第二回:競プロの才は実際には無く、調子に乗った結果ボーダーの数点下で春季トレーニングを逃しました。目が覚めました。
  • 第三回:第二回の反省から頑張り始めた結果、本選で銅賞をいただきました。
    ただこの時もまた調子に乗った結果、春季トレーニングでは初日最下位・最終日は下から2番目という散々な結果を残しました。場にのまれたことやしょうもないミス*1なども点数が下がった原因でしたが、それ以上に実力が全く足りませんでした。
  • 第四回:四度目の正直で、これが今回です。

JOIG第一回表彰式の思い出です。同じビル内にありました

本選

四完までスピードでできましたが、それ以外は全くダメでした。特にE問題は満点が思いついたのに、実装が微妙に違って全然点数がとれていませんでした。

春季トレーニングに通るか通らないくらいかだと思いましたが、蓋を開けてみるとまた銅賞で目が飛び出ました。ただ合格最低点との点差があまりなかったので、今回は大波乱 and/or 皆実力が似ている、と感じ春季トレーニングが怖くなりました。

本番まで

かなり前から難易度7から9を順番に埋めていました。8からかなり辛くなってきたのを覚えていますが、なんとか少しずつ解き進めていきました。ただ、色々他の予定が詰まっていて正直精進量は足りなかったと感じています。

Day 0

表彰式では、何回か会った方も初めて会う方もたくさんの人と交流ができて楽しかったです。昨年と違って、今年は企画がいくつかありました。人と交流してシールを集めるものは全完して、ペーパータワーを作る企画は安定性では一位だったと思います。

式の後にプラクティスがありました。問題セットは昨年と全く同じだったので、競技しやすい環境構築がきちんとできるかの確認に重点を置きました。

Day 1

この日、JOIGは競技がありません。交流会と講義が行われました。

交流会

自己紹介を一周してから、名前を覚えるゲームやUNOやitoなどのカードゲームで遊びました。ほとんど初めて会う方々だったので最初は空気が硬かったですが、カードゲームは盛り上がったので少し打ち解けてきたかなと思います。なんと半分が中学生ということで、日本の未来は明るいなと感じました。

bento1

講義

東京医科歯科大の先生が情報の医療分野での講義をしてくださいました。1時間半ほどで、かなりガッツリとお話が聞けたかと思います。

特にAIの活用についてがメインフォーカスで、乳がんの特殊性やAIがどのように抗がん剤やコロナの薬に活用されていたか、情報学の重要性などについてのお話を聞きました。こういった医療x情報には興味があったことに加え、個人的に乳がんは関わりのあるお話だったので、とても興味深かったです。

Day 2

実は四日間ともJOIG勢では一番乗りに会場についてPCで色々やっていました。この日がなんと書いていた論文の締め切りで、この日ギリギリまで編集をしていたこともあってか競技はあまり緊張しませんでした。昨年の反省で緊張しすぎると場にのまれることがわかっていたので、これは良い精神状態だったと思います。

競技

まず1問目から見始めます。かなり解きやすそうな見た目をしていたので、早く満点を取っておきたいなと考えますが、すぐには解けなさそうなのでまずは小課題を見ていきます。小課題1の愚直をまず取った後、小課題2をヒントにして満点がわかりました。実装もとても軽くて、ここまでで25分です。

 

2問目からいきなり難しくなります。愚直を実装してみますが、実装が個人的に重くて何かをバグらせてしまったため、早々に3問目に移行します。満点は2問目より難しそうでしたが小課題は明らかに取りやすそうだったため、途中まで取って少し考察して伸ばしてをしばらく繰り返します。

しばらくして2問目に戻ると、シンプルめな実装方法が思いついたので書いて部分点を取ります。また少し考察して小課題を順番に取っていきます。

 

とりあえずパッと思いつく解法で解けそうな小課題ができたので、考察を頑張るかcommunicationに手を出すかの二択になりました。ここでcommunicationを頑張りましたが、小課題1から微妙に違っていて結局0点で終わってしまいました。

 

競技後

競技の日はお弁当の写真を撮るのを忘れました。

半分の200が取れていなかったのでボーダーギリギリくらいかなと感じましたが、明らかに皆お通夜でした。順位表を見ると第2位で、落ち着いて小課題を取っていったのが良い方向に向かったと思います。

 

この日はえらーめぐさんと一緒に帰ったので、少し仲良くなれました。

 

Day 3

この日、JOIGは競技がありません。再び交流会と講義の日です。

交流会

交流会と名がついていますが、今回はチューター企画でiro_さんがランダムケース生成について教えてくれました。重要スキルなのはわかりつつ今まで全くやったことがなかったので、とても役に立ちました。ただこれをコンテスト中に実際にやるのはきつそうで、これを機にもっと慣れる必要がありそうだと感じました。

 

有名なりんごのぬいぐるみが置かれていたことから、みんなのマスコットを集めて写真撮影をしました。可愛いの天国。

JOIG集合写真(マスコット欠席の方もいますが...)

余った時間でまたカードゲームをやりました。iro_さんおすすめのトランプのゲームを布教された後、チューターであるしろいあづきさんおすすめのセットというゲームを楽しみました。数オリ界隈では有名らしいです。両方とも知らないゲームだったのですが、かなり楽しかったです。

 

この日のお昼ご飯は情報科学の達人*2とGCI*3の話になり、チューター並みに私が喋ってしまい少し反省しています。でもしろいあづきさんが「いい話を聞いた」と喜んでくださっていたので、嬉しかったです。お昼にはblackyukiさんも来られました。

bento3



最寄駅である駒場東大前駅にあったGCIの広告

講義

今日の講義は女性の東工大の研究者の方で、マッチングに関するお話や女性のキャリアについてのお話を聞きました。ポピュラーマッチングというのが最近ホットなトピックだそうです。マッチングの話は以前に何度か聞いたことがありますが、これは初めて聞くお話でとても面白かったです。

女性のキャリアについては、日本の情報での女性研究者の割合は国際会議に比べてもかなり少ないそうで、進路の途中から女性一人だったことに加え国内では会議でも女性一人なことがざらにあるそうです。想像以上にシビアでした。

 

この日もえらーめぐさんと一緒に帰りました。明日出そうな問題を予想したり*4、学校や共通の趣味の話などをして、結構仲良くなれたと思います(私個人の感想)。明日一緒に代表になれるといいなと思ったりなどしました*5

参加者の方が、置いてあったチョコレートのフィルムを綺麗すぎる鶴にしていました

Day 4

今圏内なのに落ちたら最悪だという思いからか、Day 2の100倍緊張していて、心臓が口から出そうでした。ただ実際に朝会場に行ってみるとやはり一番乗りで、不思議と緊張はかなり緩和されました。

競技

全体的にDay 2よりも易しめなセットに感じました。ただ1問目はDay 2よりも考察が必要で、今回は55分くらいかかりました。

2問目は愚直を書くのに満点の本質と違う解法を書いてしまい、それを正すのにかなり時間がかかってしまいました。ここがもっと早く見えているべきだったと思います。ただ、2時間半か3時間くらいで満点が取れたと思うので結果的にはよかったです。

 

この時間の掛け方が悪く、3問目と4問目の部分点は合わせて35点しか取れませんでした。4問目は考えるのが大変そうだったので3問目をもっと伸ばそうと思っていたのですが、取ろうとしていた部分点の考え方が違いました。また、割と重要な性質に気づいていなかったのでそれに気づいていれば点数がもっと取れたと思います。

点数は100-100-20-15=235です。総合は411点でした。

 

Day 2の振る舞いには満足していますが、この日はもっとうまくやれたところがあると思います。結果は総合2位で、無事にEGOI 2024の日本代表になることができました。

 

まとめ

IOIもEGOIも中二の代表が誕生したということで、日本の未来は明るいと思いました2。自分の話だと、4年目にして長年の目標を達成できて感無量です。JOIGを運営している方には本当に感謝しかないです。

 

JOIGは次年度から二次予選までJOIと共通になり、春季トレーニングも上位10人から15人になるそうで、レベルがだんだん上がっていることを実感しています。自分が女子部門に対する意見を吹っ飛ばせるほどの能力を身につけられていないのが申し訳ないですが、今後の方達には頑張ってもっと盛り上げていってほしいです。

 

これから春季トレーニングに参加する方への教訓としては、カタカタする音がストレスフルなので耳栓が苦手でない人はできるだけ持っていくこと、緊張はできるだけほぐして場にのまれないようにすること、小課題は落ち着いてとること、です。

 

EGOI 2024での目標は、日本チームで一番国際交流をすることと、金メダルを取ることです。夏までまた頑張ります!

*1:https://x.com/clara775_kyopro/status/1637719211337465856?s=20

*2:

www.nii.ac.jp

*3:

gci2.t.u-tokyo.ac.jp

*4:この予想はわりかし当たっていました。すごい

*5:えらーめぐさんも日本代表になりました

高校生がフォルシア株式会社でインターンをした話

今年の夏休みにインターンをさせていただいたので、その体験記かつ会社のご紹介です。

インターン探しの経緯

探し始めたのは2月ごろのことでした。海外大学受験を見据えるとインターンをしておいた方が良いのではないかと思い、学校からも「夏休みは職業体験やろうね」と言われていたことから、早いうちにどんなものがあるか見当をつけておこうと考えたのです。

結果的に、2月中に一社オンラインで面談するところまで漕ぎ着けました。お話を聞いて夏休みいっぱいのインターンの内定をいただき、そこで一旦インターン探しは終了しました。

 

しかし、7月初頭に事件が起こります。その会社から会社側の都合でインターンを全員停止しなければならない、と通知されたのです。

というわけで、ここから再びインターン探しの旅を始めました。

 

しかし問題は、この時点で7月10日だったことです。そもそも高校生用のインターンのプログラムはほぼないですし、あっても応募はもう終わっているものしかありませんでした。大学生向けのものに応募してみることを考えても、そちらも応募は終わっているものがほとんどでした。

 

そこでどうするか。私はとりあえず複数の会社のお問い合わせ欄からインターンができないか突撃することにしました。自分のスキルセット的に競技プログラミングに理解がある会社が良いだろうと思い、CodeQUEENのスポンサーをされていた複数の会社にお問合せをしてみました。

 

その結果、一番早くお返事が来たのがフォルシア様(以下敬称略)でした。しかもオンライン面談をしませんか、との前向きなお返事で、私は飛び上がるほど喜んだのを覚えています。

 

しかも、対応してくださった人事の方が気を利かせてくださり、フォルシアでCodeQUEEN本選に参加する予定の三人の女性エンジニアの方も面接に同席していただくことになりました。ここで、私の能力や経歴や条件のすり合わせをしていただき、無事内定のお知らせをいただくことができました!

この面接の時、私にどんな課題ができそうかを私の希望や経験を聞いて探ってくださった感じがして、この時点でとても良い印象を会社に抱いていました。

 

いざ出社

今回のインターンは、7月末から8月末までの一ヶ月間でした。インターンする時には出社するというお約束だったので、毎回オフィスに出社していました。ここでメンターの方にお会いし、その方に見ていただきますよと言われて出会ったのがまさかのdokinさん(超つよつよの人外の方)。ここでdokinさんが何者なのか知らなかった自分に全力で喝を入れたいです。贅沢すぎます。

何をしたのかざっくり書いていきます。

研修用課題

今回のインターンでは、フォルシアでも重要であるSQLの高速化に取り組むということで、まずはSQLの基礎研修課題から始めました。環境構築が大変でしたが一つ一つ教えてくださりとてもありがたかったです。

SQLはGCSEのComputer ScienceとGCIで超基本構文を学んだことがあっただけだったので、ここである程度使いこなせる様になったと思います。

 

そして続いてSQLの高速化課題に取り組みました。競プロをやっているとはいえ、SQLの高速化の方向性は全く見えておらず、コツや手法を教えていただいて手探りで課題に取り組みました。工夫を重ねることによって実行時間が1/10にも1/100にもなるところは、自分の努力の成果が感じられてとても楽しかったです。

実務課題

実務課題ではRustでSQLへ組み込む関数の実装に取り組みました。このフローはインターンの初めに言われていたので、実務課題が近づくにつれて「私Rust一回も書いたことないぞ」という危機感が高まり、親切なフォロワーさんがたに教えていただいてHello Worldを自分で書いてみたりしました。

課題を作ってくださった方も競プロをされていたそうで、競プロの問題の書き方にかなり寄せてくださっていて嬉しくなりました(問題文、制約、入出力例などがフォーマットをかなり寄せて書かれていました)。

 

想定解がなかなか思いつかず、一番重要なライブラリをメンターの方に教えていただきつつなんとか終了することができました。ここでRustの実装にもかなりなれることができたと思います。Rustは厳しい言語なのかなという印象を持ったので、競プロで使われている方はすごいです。

実務追加課題

方針を教えていただいた後の実装だけは早くできたので、今までの課題を発展させた追加の課題を用意していただきました。こちらは実装メインの課題だったため早く終わらせることができ、自分の強み弱みをよく認識することができました。

インターンを終えて・会社の良いところ

フォルシアでのインターンを終えて、正直にとても働きやすくて良い会社だと感じました。詳しく書いていきます。

周りの方の優しさ

信じられないほど優しい方ばかりでした。メンターの方々はもちろんのこと、同じ部署の方が「休憩してますか」と声をかけてくださったり、全く違う部署の方が通りすがりに挨拶しに来てくださったりと、周りの方の親切にとても助けられました。

ある方がフォルシアの社員は社会性フィルターがかかっているとおっしゃっていましたが、会社のHPでも直接顧客とやりとりすると書かれているだけあって、本当に皆さんによくしていただきました。ある方にはランチ終わりに連絡先を交換し、あだ名で呼んでいただき、ランチ前に私の学校を事前に調べてくださった上にゴンチャまで奢っていただきました。

競プロerの多さ

紹介していただくときに、自分も競技プログラミングをやっておりまして、と名乗られる方がすごく多くて驚きました。パッと思いつくだけでも10人くらい*1はお会いしたと思います。暖色コーダーや青の方、中には赤色まで強い方ばかりでした。

CodeQUEENでは1位と3位がフォルシアの方だったということで、オンサイトでもフォルシアの強さが際立っていたと思います。フォルシアでは社員の方が企画しているゆるふわオンサイトのほか、定期的に集まって開催される競プロ会もあり、活動も活発です。私も期間中の競プロ会に二回参加させていただきましたが、暖色コーダーの方々の高度な会話を横で聞くことができたので、とても貴重な体験ができました。

福利厚生の厚さ

詳しくは会社のHP*2をみていただければと思うのですが、福利厚生がしっかりしていらっしゃる会社です。また交流を兼ねて違う社員の方とランチする機会を設けてくださり、皆さんのこの仕事に就くまでの経緯や競プロの話などをたくさんすることができて有意義な時間を過ごすことができました。

まとめ・インターンをしよう

結論として、インターンをやってすごく良かったです。

進路に悩んでいる私にとって、インターンの経験はある種の自信になりましたし、自分の能力の幅を広げるチャンスにもなりました。

また競技プログラミングをやっている・いた方が多いことから、お話を聞くだけでも参考になったものがいくつもありました。実際に、お聞きしたことの一つを大学の学部選びの軸の参考にしています。

 

一般的なことでは、インターンをすることによって社会性が身に付きます。今回は、前回ボランティアをやった際にオンラインミーティングをすっぽかすミスをしたことから、メールのやり取りは逃さないようにしっかりやりとりしました。また、お会いした人に丁寧に挨拶したり、すれ違った時会釈したりといった社会人として当たり前のことも身につけられたと思います。

 

高校生でインターンをやらなければいけなかった状況は珍しいかと思いますが、これが就職前であれば尚更、さまざまな側面からとても役に立つと思います。やはりインターンをするとその会社を内側から知ることができるというのは大きなメリットだと思います。

 

インターンをしようかどうか迷っている方は是非恐れずにやって欲しいです。ぜひフォルシア株式会社のインターンも検討しましょう。

改めまして、フォルシア株式会社の方には本当にお世話になりました。ありがとうございます!

*1:引退した方も含めて

*2:

www.forcia.com

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の方は誰でもウェルカムだと言っ下さったのが、ありがたかったです。

 

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

 

 

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

イギリスの数学オリンピックの代表合宿に参加した話

イギリスの数学オリンピックの代表合宿に、3月末から4月初めにかけての6日間参加しました。なかなか珍しい貴重な経験をさせていただいたと思うので、できる限り共有できればと思います。

どこに行ったのか

ケンブリッジ大学のTrinity Collegeというカレッジで行いました。ケンブリッジ大学は幾つものカレッジが集まって成り立っており、1つ1つが独立した小さな大学のようになっているそうで、トリニティは大学内でもかなり有名なカレッジだと思います。何せみんな大好きラマヌジャンやハーディー、ニュートンの出身校なのですから!それだけで私のテンションはマックスです。

BMO(イギリスの数オリ)の進み方

前提として必要だと思うので軽く説明します。

SMC (Senior Math Challenge)

Year 13 = 高3まで参加できる数学のチャレンジで、1時間半で5択を25問解きます。結構スピードが必要です。間違えると点が引かれます。

私の学校ではYear 11(高1)の数学トップセットの生徒とYear 12,13の数学をとっている生徒全員が受けることになっていて、私は去年も先生に「受けたい」と言ったところYear 10でも受けさせてくれました(JMOと同じで下の年齢制限はない)。今年はYear 11になったので、同じ数学のクラスの友達も受けました。

毎年70万人近くの参加者が世界中から集まるそうです。一方JMOの予選は2022年の統計で5000人に達していないので、だいぶ大規模だと思います。学校が費用を負担し、私の学校のようにみんなに機会を与えるといったチャレンジが数学以外にも多いように感じるので、そこもイギリスの教育の好きなところです。科目が苦手でも受ける敷居がぐんと低くなっています。

BMO Round 1

SMCで大体上から1000人くらいの高い点数を取受けることが出来ます(年によって、125点中100-110点くらい)。そのほかのトップ6000人には、別のKangarooというチャレンジもあるので、幅広い人に機会が与えられています。

BMO1は3時間半で6問、全て筆記で解答を全て書きます。JMOと比較して、早いうちからフルで解答するのが違いです。

BMO Round 2

BMO1でトップ100くらいになるとBMO2に進みます。

3時間半で各10点の4問を筆記で解答を全て書きます。ここまで来ると問題も難しいので、これに進むと学校の先生に結構褒められます。私は15/40点で、3問フルで書いたと思ったのに全然点数が取れませんでした。ちなみに去年は8点で全然ダメでした。

 

ここを通ると、24人が春のTrinity Campに参加できます。JMOでいう春季キャンプの位置付けです。他にも女子のチャレンジであるUKMOGや、Intermediate Math Challengeから入る別のオリンピックなど沢山の数学チャレンジが行われています。

というわけでこのTrinity Campの参加記を書いていきます。

Trinity Campの流れ

Day -N

2月中頃のHalf termの時に、数学の先生から「Trinity Campに招待された」とのメールが転送されてきました。何が起こったのかわからず、はてなマークでいっぱいの頭でとりあえず春休みの飛行機の予約だけ変えてもらいました。

上位の人の名前や成績はwebで発表されていて、その人たちとの差が凄すぎることから確実に点数ギリギリで招待がかかったとわかっていましたが、それでも嬉しかったです。そのためJOIGの方を頑張った方が良いと思い、対策は特にしませんでしたが、獲得!金メダルと船旅は買っておきました。

Day 0 

JOIGの春合宿で日本に帰っていたので、朝の便に乗って渡英してホストファミリーの家に泊まりました。日本滞在、短すぎました...

Day 1

お昼を食べた後にタクシーでケンブリッジ大学まで向かい、自己紹介をしてから部屋に向かいました。自己紹介した先生方、ヘルプのトリニティカレッジ現役大学生、そしてその他のスタッフの方々の人数がとても多い!大学生は10人くらい、先生方も10人弱と多くの人が関わっていることがわかりました。結果、先生方と大学生に関しては全員が講義をして下さったので、見守りだけではなく実際に選手と強く関わってもらえました。

 

講義やテストが行われる建物と宿泊場所は隣り合っており、どちらもとても近代的で綺麗な建物です。建物自体のキーカードと部屋の鍵が渡されるのでセキュリティもバッチリ。

ちなみに全員交通費と宿泊、朝昼晩の食事が無料。部屋が2人でも、なんなら3人でも(ベッドさえあれば)行けるのでは、というくらい広くて綺麗で素敵でした。太っ腹!

 

ご飯はハリーポッターの食堂のようなところで食べました。ここは宿泊場所から10分ほど歩くところで、立派な門をくぐり、左右に緑を眺めて進んだ先にある大学生の寮と回廊(最初の写真)を通ってたどり着きます。

写真は日中ですが、夜は少し暗めでテーブルの上のライトがぼんやりと光っており、とても雰囲気がありました。また写真に写っているヘンリー8世(イギリスの歴史では有名人)など、偉人の肖像画が沢山飾られていました。見たことのある肖像画でおそらく数学者だったものがあるのですが、結局誰だかわかりませんでした。天井近くはどれもステンドグラスでこれも美しく、建物内の装飾も豪華絢爛な雰囲気でイギリス感を感じられます。

 

食事もそれなりに美味しく、デザートが出たりヨーグルトやサラダが取れたりとレパートリーには困りませんでした。イギリスの食事は一般的に悪い噂しか聞かないと思いますが、私は聞くより美味しいと思います(日本の食事の方が良いのは当然ですが)。

 

 

 

スケジュールの紙がここで渡されました。講義はいくつかの例外を除いて、全てキャンプに来たことがある組と初めて組で分かれていました。交流や他のイベントは全員一緒です。1コマ1時間半で、午前と午後に2つずつ、夜は日毎に違うイベントが企画されている感じでした。

6日間の間にTeam Selection Testは2つしかありません。他は講義や自由時間・交流の時間に当てられており、教育的な目的がこの合宿の意義を大きく占めているなと感じました。

講義の内容などはどこまで言って良いのかわからないのであまり言いませんが、初日の講義は概ね大丈夫でした。ただすでにこの時点で他の人とのレベルとの違いを感じ始めてはいました。講義の多くは、問題を解いてみてその解説を通してストラテジーを学ぶという構成だったので、解くスピードの差から危機感が...。

 

その日の夜はリレー企画。4人ずつのチームに分かれて短めの数学の問題をテーブルからとりにいき、解いたら次の問題を取っていくという感じでした。やはりチームメンバーの解くスピードが早すぎて全くついていけなかったですが、数問は1番(タイ)で解けました。時差ボケがありましたが、純粋に楽しむことができました。

 

自由時間はこの日以外も色々なゲームをやりました。Avalonやone nightという人狼みたいなゲームや、sevensという七並べのようなものもやりました。sevensは、とても似ているのにほんの少し違って面白かったです。

Day 2-3

前日の危機感というレベルではなく、とにかくボコボコにされました。皆テクニックや定理の知識量が半端ではなく、問題を解くスピードも全く違ってレベルの違いを見せつけられた気分でした(私が勉強不足なだけです)。

苦手な幾何とかでは困ってしまうだろうなと思っていましたが、意外と他の分野もそれと同じくらい困ってしまいました。特に一番ましだと思っていた数論の講義が本当にちんぷんかんぷんで、かなり落ち込みました。問題が解けないだけではなく解説からです。そもそも語彙がわからないという状態に久しぶりに陥り、知らない概念や使ったことのない定理のオンパレード、試験がやばいという以前についていくのが大変すぎました。

 

3日目の最後はTST1直前ということでwrite-upのコツが1セッションありました。そこでもついていけなさすぎて大学生の人を困らせていて本気で泣きそうでした。ただこのセッション自体は、このようなことを全く教えてもらったことがないのでとても役に立ちました。

Day 4

初めてのTST1です。IMOと同じように4時間半で3問ときます。8時スタートだったので割ときつかったです。問題については、JMOと同じで言及厳禁なのでノーコメントです。何かしら自信のあることが書けただけ、自分的には合格点だと思います。

ランチでキャンプの感触を聞かれた時に、あまりうまくいっていないとこぼしました。すると手伝ってくれている大学生の人が「大学に行ったら自分だけ出来ない気分になる」、キャンプに何回も来ている人も「初めてのキャンプなら誰でもそんな感じだし、僕もそうだった!」とみんな親切でした。優しい〜!

フリータイムの後、みんなで集まって解説のセッションが2時間ありました。割と惜しいところまで行っていた気がしたのでさらに嬉しくなりました。

晩御飯の際に、取りまとめの先生が私の1問目をマークしたと教えてくれました。昨日のwrite-upのセッションでのtipsを意識したのがよくわかって、すごく良かったよと言ってくださりとても嬉しくなりました。一応今年のEGMOの補欠なので、来年はいい位置にいると思うよとも言われました。

 

フリータイムには解説を聞いてモチベーションが上がったので、その後は本を読んで勉強しました。交流や講義があるとこのようにやる気も上がるのが良いところかなと思います。

Day 5

この日はDay 1-3と同じように講義のみの日でした。

夜に毎年やっているらしいクイズ大会があったのですが、初めのセクションが全部日本に関することでした(今年のIMOの開催地が日本なので)。ただ、鎖国中に出島に唯一入れたヨーロッパの国は?や日本の二大宗教は?、温泉に入れないスタッフがいるがそれはなぜ?(答:タトゥー)など、私は日本人だから知っているけど...というような難しい質問がかなり多かったです。

他のセクションは、イギリスのクイズ大会でありがちなスポーツフットボールポップカルチャーで私は全く役に立ちませんでした!笑 でもとても楽しかったです。

Day 6

TST2の日でした。受ける前に部屋を空けなくてはいけなかったので、朝はとてもバタバタしていました。

昼食後に解説があったあと、3時に保護者も含めてお茶があって解散となりました。そこで、やはりキャンプに毎年数人の生徒が参加する学校がいくつかあること、参加者の多くが実際にCambridgeのTrinity Collegeに進学していることなどを聞き、やっぱりそうなのか!と思いました。

まとめ

みんなのレベルが段違いだと実感を持つことができました。この合宿に参加できた幸運で、IMO銀メダルの人などと交流でき、明確な目標ができ、そしてレベルの高い講義から得られた学びと沢山余った問題と、とても充実した週になりました。

今年は自信を持つことなく終わってしまいましたが、来年はしっかり勉強してもう少し自信をつけて帰って来れるようにしたいです。

これを経て、船旅の英語原著EGMOを買ってみようと思いました。英語の数学本はBMO 1/2 レベルしか持っていなかったのですが、英語でこのレベルの数学を身につけるには、それ自体を英語で学ぶことが必要だなと感じたからです。

 

ヨビノリのパーカーです。大学生の人にジョークだと伝わった時はこれで私の全ての目的が果たせたと思いました笑 いえい!