今年の競技プログラミングも終盤にさしかかってきた。世界中の大学生がプログラミングで戦うICPCは、今年もアジア・パシフィック予選が11月17日に横浜で開催され、ワールドファイナル出場の切符を争う。来春は、モスクワで開催される予定だ。ICPCは、大学対抗で開かれるプログラミングコンテスト。3人1組でチームを組み、5時間の競技時間の中で与えられた課題を1台のPCを使って解き、正答数とその速さを競う。国際大会のため、予選段階から全て英語で進行し、課題も英語で書かれている。

今春、ポルトガルのポルトで開催されたICPC 2019 ワールドファイナル。
次回はモスクワで開催予定

 今年のワールドファイナルは、4月にポルトガルの都市ポルトで開催され、世界各国から全135校・405人が参加した。総合1位には、昨年の北京大会に続きロシアのモスクワ大学が輝いた。2位をアメリカのマサチューセッツ工科大学(MIT)、3位を日本の東京大学、4位をポーランドのワルシャワ大学という結果を収めた。規程によって、これら上位4校が金メダルを獲得。5~8位までが銀メダル、9~12位までが銅メダルを獲得した。
 
ICPC 2019 ワールドファイナルに出場した選手団

 3位の東京大学は、昨年の北京大会の4位から順位を一つ上げ、2年連続で金メダルを獲得した。1位のモスクワ大学は11問中10問正解で、うち2問を最速で正答。2位のMITは9問正解で、同じく2問を最速で解いた。東京大学は同じく9問の正解だったが、回答に要した時間などで得られるスコアがMITにわずかに及ばなかった。東大のチーム「Gifted Infants」は、序盤戦で4問を1時間程度で解き好スタートを切ったものの、以降正答が止まり、しばらくやきもきする場面もあったが、3位を獲得できた。

 ICPCのボードを務めポルト大会に同行した東京大学の山口利恵特任准教授は、「今年はとても成績が良かった。終了1時間前の時点ではトップが東大だったので、世界的に注目を浴びて良かった。途中経過は、ウェブサイトや会場のモニター画面の『スコアボード』で公開されているが、終了前1時間で更新が止まる。その時点で東大がトップを走っていたが、ラスト1時間でモスクワ大学とMITに交わされてしまい、3位に踏みとどまった。日本の学生は、とても優秀。中国やロシア、アメリカの大学とも互角に戦っている」と語った。
 
ICPCのボードを務める東京大学の山口利恵 特任准教授

 これから競技プログラムを目指す人たちに対して、山口准教授は「数学の素養はとても大事。加えて、アルゴリズム的な観点などが必要になる。さらに、論理的思考力も求められる。その源泉は物事のモデル化だ。そのモデルを組み合わせて、別の大きなモデル組み上げていく必要がある」と話す。ICPCの問題はレベルが年々上がっており、非常に難解なものになっている。数学に裏打ちされた論理的思考能力とアルゴリズム、モデル化の力で、今年はどんなチームが頭角を現すのか、楽しみだ。(BCN・道越一郎)