第 34 回情報オリンピックインドネシア大会(IOI 2022)は 2022 年 8 月 7 日から 8 月 15 日まで,インドネシアのジョグジャカルタで開催された.
開会式はインドネシア国立ジョグジャカルタ芸術大学で行われた.選手の宿舎は The Rich Jogja Hotel であり,随行員の宿舎は Hyatt Regency Yogyakarta であった.閉会式はプランバナンで行われた.
IOI 2022 には 88ヶ国・地域から 349 名の選手が参加した(公式参加者数).競技は 8 月 10 日と 8 月 12 日の 2 日間にかけて行われた.各競技日の競技時間は 5 時間であった.出題された課題数はそれぞれ 3 題(2 日間で合計 6 題)であった.競技結果に基づき上位者には金・銀・銅のメダルが授与された.全参加者の約半数にメダルが授与され,金・銀・銅の割合はおよそ 1:2:3 と定められている.今年は金メダルが 30 名(全参加者の約 9 %)に,銀メダルが 58 名(全参加者の約 17 %)に,銅メダルが 88 名(全参加者の約 25 %)に与えられた.さらに,今年から Honourable Mentions が新しく授与されることとなり,36 名に与えられた.
IOI 2022 における日本代表選手の成績は,金メダル 4 個であった.全員が金メダルの結果を残し,メダル獲得数では 1 位タイ・合計点では 3 位とともに去年を上回る結果を残すことができた.
IOI 2022 日本選手団
日本代表選手 |
| 金メダル | 児玉大樹 | 灘高等学校2年 |
| 金メダル | 渡邉雄斗 | 渋谷教育学園幕張高等学校3年 |
| 金メダル | 田村唯 | 大阪府立大学工業高等専門学校3年 |
| 金メダル | 田中優希 | 灘高等学校2年 |
日本選手団役員 |
| 団長 | 髙谷悠太 | 東京大学大学院数理科学研究科修士1年 (IOI 2014・2015・2016・2017 選手) |
| 副団長 | 平木康傑 | 京都大学工学部2年 (IOI 2019 選手) |
| 随行員 | 松尾凛太朗 | 東京大学教養学部1年 (IOI 2020・2021 選手) |
IOI は個人戦であり公式データとしての国別順位は存在しない.公表された成績に基づいて算出したところ,メダル獲得数による日本の国別順位は 1 位タイである.総得点による日本の国別順位は 3 位である.
- メダル獲得数 1位タイ
1位:中華人民共和国,日本(金4),3位:アメリカ合衆国(金3銀1),4位:大韓民国,台湾(金2銀2),6位:ウクライナ(金2銀1銅1),7位:イラン・イスラム共和国(金2銀1),8位:クロアチア共和国(金2銅1),9位:ベトナム社会主義共和国(金1銀3),10位:カナダ,イスラエル国,ルーマニア,シンガポール共和国(金1銀2銅1),15位:スロベニア(金1)
- 総得点 3位
1位:中華人民共和国,2位:アメリカ合衆国,3位:日本,4位:大韓民国,5位:カナダ,6位:台湾,7位:ウクライナ,8位:イラン・イスラム共和国,9位:ルーマニア,10位:クロアチア共和国,11位:ポーランド共和国,12位:シンガポール共和国,13位:イスラエル国,14位:オーストラリア連邦,15位:ベトナム社会主義共和国,16位:ブルガリア共和国,17位:トルコ共和国,18位:ブラジル連邦共和国,19位:インド共和国,20位:カザフスタン共和国
IOI は数あるプログラミングコンテストのうちの 1 つであるが,同時に数ある科学オリンピックの 1 つでもあり,中高生を対象としていること,必要な知識を最小限にとどめ柔軟な思考力を問うこと,代表選手が世界各国から集うという特徴がある. 競技では,与えられた開発環境を用いてプログラム (C++) を作成してソースファイルを競技サーバから提出する.提出したプログラムは競技サーバ上でコンパイル・実行され,その実行結果に基づき得点が与えられる.また今回は,与えられたデータセットに対し,なるべく良い解を作って提出し,その解の良さに応じて得点が与えられる課題も出題された.実行時の時間・メモリに制限があるため,効率の良いアルゴリズムを設計することが重要となる.早く提出することによるメリットや,誤った解答を提出した場合のペナルティは無い.選手には,高度な課題に対して,5 時間の競技中にじっくりと取り組むことが要求される.
競技時間内であれば解答の再提出も可能である (提出回数の制限は各課題ごとに 50 回であるが,通常この制限を超えて解答を提出することはあり得ず,実質的に提出回数は無制限と言える).
IOI 2022 で出題された課題は以下の 6 題である.
IOI 2022 競技課題
競技 1 日目 | ナマズ釣り場 (Catfish Farm) |
| 囚人たちの挑戦 (Prisoner Challenge) |
| 電波塔 (Radio Towers) |
競技 2 日目 | 電子回路 (Digital Circuit) |
| 最も珍しい昆虫 (Rarest Insects) |
| セリブ諸島 (Thousands Islands) |
いずれも数理的思考力が問われる良問である.各課題はいくつかの小課題に分割されている.小課題の中には,単純な実装で得点が得られるものから,高度なアルゴリズムを実装しないと得点が得られないものまで含まれている.従って 1 つの課題を丸ごと落として 0 点になってしまう可能性は少ないが,満点を取るのは難しい.
また,すべての問題の満点の配点は同じため,比較的簡単な問題では満点を取りたいところであるが,他のプログラミングコンテストと違い,選手はコンテスト中に順位表を見ることはできない.このため,選手は問題の難易度も一人で判断し,コンテスト中の時間配分を考えなくてはいけない.
IOI はプログラムの作成技術を競う大会ではない.技術力があるに越したことはないが,それよりも IOI で重視されるのは数理的な思考力・洞察力である.競技では課題の本質を見抜く力が問われ,(気づけばそこまで難しくはないものの) 一見して何をしたらいいか分かりづらいような問題も出題された.
(1) 競技規則の変更 : 競技規則の昨年からの大きな変更は無かった.
(2) 競技実施方式 : 今年はハイブリッド形式での開催であった.昨年に続き,スコアボードは不正行為防止を主目的として,各日競技終了まで公開されなかった.
IOI 2022 で出題された課題の形式は,与えられたデータを処理する関数(プロシージャ)を実装したソースファイルを提出する方式 (プロシージャ方式) である.
提出されたソースファイルは競技システム上ですぐにコンパイル・実行・評価される.競技参加者にフィードバックが返され,自分の得点を知ることができる (現在の競技規則では,すべての提出に対して完全なフィードバックがあることが明記されている).満点でなかった場合は,どの小課題で失点したかを知ることができる.
(3) 競技システム : 競技時間中,選手にはノート PC が 1 人 1 台与えられた.選手の PC には開発環境と,競技システムにアクセスするためのウェブブラウザがインストールされている.
競技システムは,昨年の IOI と同様,CMS が用いられた.インターフェースは簡潔で,また JOI 本選や春合宿等でも使用していることもあり,その使い方については選手が自ずと理解できたようである.
(4) 翻訳 : 競技日の前日の夜には副団長・随行員により問題文の翻訳が行われた.
今年の翻訳システムも従来通り Markdown 形式のもので,すべての編集がサーバー上に保存され,システム上から印刷を要求できるなど,使いやすいものであった.また,全体への連絡手段として Matrix が用いられており,問題文の修正も円滑に進んでいた.
今年の IOI は,COVID-19 の影響下での初めてのオンサイト開催であった.コンテストをハイブリッド形式で行う,現地の参加者に対して定期的に抗原検査を行う,など例年よりも負担が大きかったと思うが,両日とも問題なくコンテストが行われ,素晴らしい運営がなされていたと思う.大会日程については,開会式とプラクティスが別日に行われたため,例年よりも 1 日長かった.コンテストの日の午前中も休憩であったので,全体を通して時間に余裕があった.
競技会場は選手のホテル内にあったので,移動の負担もなく,選手には快適であったと思う.また,選手のホテルはショッピングモールと繋がっており,ガイドさんと一緒であれば好きなときに立ち寄ることができた.日本選手団はホテルの食事の気分転換に,ショッピングモールのお店で食事をすることもあった.団長団のホテルのまわりには特に見に行くような場所はなかったが,ホテルの中にはプールやゴルフコースなどがあり,ホテルから出なくとも十分に余暇を満喫できた.
観光ではインドネシアの史跡を訪れた.しかし天候に恵まれず,ボロブドゥール遺跡を訪れた際には強い雨に見舞われ,十分に遺跡を巡ることができなかった.閉会式の際も,会場が屋外だったのだが,雨に降られてしまった.しかし最後には雨も止み,盛大な花火を以て閉会式が締めくくられた.久々の花火は強く印象に残った.
今年は金メダル 4 個と,すばらしい成績をおさめることができました.今回,IOI 2022 への選手団派遣を無事に終えることができましたのは,日頃より情報オリンピックの活動にご支援をいただいている皆様のお陰です.この場を借りてお礼を申し上げます.どうもありがとうございました.今後ともよろしくお願いします.