2017年12月21日から23日までタイ王国マヒドン大学で開催されたACM-ICPC アジア地区ナコーンパトム大会に参加し、東京農工大学の修士学生からなるチーム “nocow” が74チーム中8位を獲得し、Special Prize Awardを受賞しました。
(受賞に関するニュース)
nocow は学部2年の時にACM-ICPCに出場するために結成されたチーム(下記)であり、2014年度から4年間ACM-ICPCに参加しています。
以下では、チームメンバーに参加報告をしていただきました。
チームnocowメンバー:
選手
・市川遼(情報工学専攻M1,並木研)
・神谷俊介(情報工学専攻M1,宮代研)
・西川智裕(生物機能システム学専攻 M2,田中研)
コーチ
・鈴木涼太(情報工学専攻M2,中條研)
ACM-ICPCの概要:
ACM-ICPCは、ACM (Association for Computing Machinery)という計算機学会が主催する国際大学対抗プログラミングコンテストであり、その参加者数は全世界で毎年4万人を超えています。ACM-ICPCでは、競技時間内に複数の問題が出題されるので、3人1チームで競い、どれだけ多く、早く、正確に問題を解いたかを基準に順位が決まります。
例えば、迷路が与えられるので、スタートからゴールまで最短で何手で移動できるかを答える問題があります。
(問題例)
人間が解く場合には、迷路を図で表して、スタート地点からゴール地点まで辿れば求めることができます。コンピュータを利用して解く場合には、迷路の壁の情報をどう扱うかとスタート地点からゴール地点までの手数を求めるためのアルゴリズムを考える必要があります。この問題はスタート地点から幅優先探索と呼ばれるアルゴリズムを利用することで解くことができます。
ACM-ICPCにおいて、問題の読解力、解法の考察力、プログラミング能力が勝敗を分ける鍵となります。また、競技中に1台のコンピュータしか使えないため、チームワークと戦略も重要になります。nocow では、チームメンバーの3人が以下の役割を担っていました。
– 考察・プログラミング・問題の解答状況の管理
– 考察・プログラミング・デバッグ
– 数学系の問題の考察・計算機の環境チェック・デバッグ・データ作成
また、コーチは大会参加する上での必要な手続きの処理を担いました。
ナコーンパトム大会出場までの経緯:
日本からACM-ICPCに参加する場合には、毎年開催されているインターネット国内予選に参加する必要があります。2017年度のインターネット国内予選では、3時間の競技時間の中で8問出題され、391チームが競いました。nocow はこの大会で総合5位、大学別で2位を獲得し、アジア地区つくば大会への出場権とアジア地区ナコーンパトム大会への旅費助成を獲得しました。また、2017年度のつくば大会では、5時間の競技時間の中で11問出題され、45チームが競いました。nocow の成績は総合34位、大学別で26位でした。アジア地区大会のいずれかで優秀な成績(上位1、2位程度)を収めたチームが世界大会へと進みます。
競技会の様子:
ナコーンパトム大会の1日目には、大会受付と開会式、機材やジャッジ環境(回答の送信や正否判定に使用するシステム)の使い方を確認するための練習セッションが行われました。大会受付では、日本から来ていた名工大のチームと東工大のチームと合流し、情報交換を行いました。その後に開会式が行われ、各国ごとに簡単なチーム紹介が行われました。なお、本大会には10カ国・35大学の74チームが参加しました。
練習セッションでは、過去にタイで出題された問題の中から3問出題されました。通常、ACM-ICPCでは問題に正答すると風船がチームのテーブルに運ばれてくるのですが、今回は風船の代わりの飴がもらえるという変わった趣向をこらしていました。
ナコーンパトム大会のジャッジ環境は日本の環境とは当然異なっており、チーム全員が大会のジャッジ環境に短時間で慣れるため集中しました。
その日の夜には、名工大チームと農工大に留学経験のあるマヒドン大学のチームの選手と共に食事をして、タイのICPC事情などの話題で交流を深めました。
コンテストの本戦は2日目に行われました。今回の問題数は12問であり、各問題にはAからLまでのアルファベットが割り当てられていました。問題の難易度は必ずしもアルファベット順に対応しているとは限らないため、開始直後はチーム全員で全ての問題に目を通しました。
最初、全ての問題について各チームからの大量の質問と主催者からの回答が飛び交い、これらの情報を適切に把握することも重要でした。また、コンテスト中に参加者側の計算機環境でトラブルが発生して、計算機を20分間使えないという出来事も発生しました。
結果として、nocowはACEGHIJ問題を解いて7問完答で8位であり、Special Prize Awardを受賞しました。
3日目は大会のエクスカーションで”Wat Phra Pathom Chedi” と “Thai Human Imagery Museum” を訪れました。エクスカーションを通じて、日本とは異なるタイの仏教文化の一端を体験することができ、タイの文化をより深く理解できたと思います。
日本から海外のアジア地区予選に参加している大学は少なく、農工大からの出場は初めてでした。本大会はアジアのトップチームと競い合うことで、チームメンバーの考察力、プログラミング能力がどのくらい世界に通用するかを実感できた貴重な経験となりました。
情報工学科/専攻生へのメッセージ:
ICPCの魅力の一つに、チームごとにメンバーの役割分担が多彩であることがあります。そのためICPCは実のところ、チームメンバー全員がプログラミングやアルゴリズムを得意とする必要がありません。
実際、それらが得意でない弊チームの一人は計算機環境の整備やデバッグを主に担当しており、欠かせない存在となっています。本番で各人の強みが発揮され、良い順位が取れたときの喜びはひとしおです。ぜひ皆さんも周りの人を集め、ユニークなチームを結成してみてはいかがでしょうか。