第21回日本情報オリンピック (JOI 2021/2022) 春季トレーニング合宿について

2022年2月18日
情報オリンピック日本委員会

更新履歴

目次

実施期間

2022年3月20日(日) 8:30 ~ 23日(水) 17:00(予定)

会場

競技, 解析, 解説
 NTT DATA 駒場研修センター
 URL http://www.nttdata-univ.co.jp/company/access.html

春季トレーニング合宿 スケジュール

競技実施時間
競技1 3月20日(日) 9:00~14:00 (5 時間)
競技2 3月21日(月) 9:00~14:00 (5 時間)
競技3 3月22日(火) 9:00~14:00 (5 時間)
競技4 3月23日(水) 9:00~14:00 (5 時間)
春季トレーニング合宿 スケジュール
午前 午後
3月20日(日) 8:30 集合
9:00~14:00 競技1
14:00~15:00 昼食
15:00~16:00 解析1・解説1
16:00 解散
3月21日(月) 8:30 集合
9:00~14:00 競技2
14:00~15:00 昼食
15:00~16:00 解析2・解説2
16:00 解散
3月22日(火) 8:30 集合
9:00~14:00 競技3
14:00~15:00 昼食
15:00~16:00 解析3・解説3
16:00 解散
3月23日(水) 8:30 集合
9:00~14:00 競技4
14:00~15:00 昼食
15:00~16:00 解析4・解説4
16:00~17:00 JOI表彰式
・IOI日本代表選手発表会
17:00 解散

食事・宿泊の提供および交通費補助

表彰式・日本代表発表会

3月23日(水) の午後に, 第21回日本情報オリンピック表彰式と第34回国際情報オリンピック日本代表選手発表会を行います (日本情報オリンピック 第2回女性部門表彰式および 第2回ヨーロッパ女子情報オリンピック日本代表選手発表会と合同).

日本代表選手選考方法

春季トレーニング合宿期間中, 3月20日, 21日, 22日, 23日の 4 日間にかけて合計 4 回の競技を実施します. 各競技日に 3 題または 4 題の課題が出題され, どの課題も 100 点満点です.

春季トレーニング合宿は全日程参加が原則ですが, 事情がある場合は, 春季トレーニング合宿の一部の行事の欠席を認めることがあります. 競技の一部を欠席した場合でも失格にはなりませんが, 欠席した競技の得点は 0 点になります. 欠席した競技に対して特別な措置 (得点調整など) は実施しません.

国際情報オリンピック派遣日本代表選手選考に関する内規 (2015年9月30日改訂版) に基づき, 次の方法で IOI 2022 日本代表選手を決定します.

  1. 春季トレーニング合宿の競技 1〜4 の合計点の高い選手を IOI 2022 日本代表選手とする.
  2. 1 が同点の選手の中では, JOI 2021/2022 本選の得点の高い者を IOI 2022 日本代表選手とする.
  3. 1 も 2 も同点の選手の中では, 春季トレーニング合宿の競技 2〜4 の合計点の高い者を IOI 2022 日本代表選手とする.
  4. 1〜3 がすべて同点の選手の中では, 春季トレーニング合宿の競技 3・4 の合計点の高い者を IOI 2022 日本代表選手とする.
  5. 1〜4 がすべて同点の選手の中では, 春季トレーニング合宿の競技 4 の得点の高い者を IOI 2022 日本代表選手とする.
  6. 1〜5 がすべて同点の選手の中では, 情報オリンピック日本委員会による抽選で IOI 2022 日本代表選手を決定する.

春季トレーニング合宿競技実施方法概要

競技時間 競技1 3月20日(日) 9:00~14:00 (5 時間)
競技2 3月21日(月) 9:00~14:00 (5 時間)
競技3 3月22日(火) 9:00~14:00 (5 時間)
競技4 3月23日(水) 9:00~14:00 (5 時間)
課題数 各競技日に 3 題または 4 題の課題が出題される.
配 点 配点は各課題 100 点である.
各課題がいくつかの小課題に分割されることがある. 小課題の配点は問題文中に記載する.
使用できるプログラミング言語 C++ (C++ のバージョンは C++17)
競技システムで使われるコンパイルオプションは, 競技の際に配布される「実装上の注意 (Implementation Notice)」に記載する.
使用できる用品 競技中は筆記用具 (鉛筆, シャープペン, ボールペン, 消しゴムなど) を使用できる. 筆記用具は本委員会では準備しないので持参すること.
計算用紙は本委員会が用意したものを使用すること.
衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書 (電子辞書は不可) を使用することができる. また, 小さなマスコットを机の上に置くことができる.
詳細は英語の辞書・小さなマスコット・キーボード・マウスの持ち込みについてを参照のこと.
使用できる機器・ソフトウェア 本委員会が用意した機器と, 認められた方法で持ち込んだキーボード・マウスのみ使用できる.
詳細は英語の辞書・小さなマスコット・キーボード・マウスの持ち込みについてを参照のこと.

また, 本委員会が事前に準備し使用を許可したソフトウェアのみ使用できる.
競技で使用予定の機器・環境は以下の通り.

ハードウェア ノート型パーソナルコンピュータ
  • 機種:HP ProBook 450 G8/CT
  • CPU:Core i5-6200U
  • メモリ:16GB
  • ディスプレイ:15.6インチ・フルHD(1920×1080)
  • SSD:256GB
  • USBマウス(有線)

ソフトウェア (3月16日更新)
  • Ubuntu 20.04 LTS 64-bit 英語版
    http://www.ubuntu.com/download/desktop
    (Windows 10 Pro (64 bit) 上で動作する仮想マシンで競技を行います.)
  • g++, Python 2, Python 3, Ruby 2.7
  • gdb, ddd
  • gedit, Emacs, GVim, Kate, KWrite, SciTE, Joe's Own Editor
  • VSCodium, Eclipse, Geany
  • C++ reference (html-book-20220201.zip) (英語)
  • Ubuntu ディストリビューションに含まれる, その他のソフトウェア

競技環境に関する補足
  • 競技で使用する Ubuntu は, Windows 10 Pro (64 bit) 上で動作する Oracle VM VirtualBox のゲスト OS です.
    http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
  • 競技では Ubuntu 20.04 LTS の標準状態のデスクトップをカスタマイズしたものを使用する. 各ソフトウェアは標準リポジトリから apt でインストールできる最新のものを利用する予定である. ただし, 本会における動作確認の事情などにより, 最新版でないパッケージを使用する可能性もある. 競技で使用可能なソフトウェアに関する詳細は, 事前配布する仮想マシンで確認すること.
  • 後日, 練習用仮想マシンを配布する. 練習用仮想マシンの配布は, 春季トレーニング合宿実施までに Ubuntu Desktop (英語版) の開発環境に関する操作に慣れてもらうことを意図して行われる. ダウンロード用 URL は, 後日, 春季トレーニング合宿参加者に Discord 上で通知する.
出題される課題 アルゴリズムを設計しそのアルゴリズムを C++ で実装する課題が出題される. 実行時の実行時間と使用メモリに制限があるので, 解法のアルゴリズムの効率が重要となる. 採点用入力データは, 効率が異なる解法を識別できるよう調整されている.
春季トレーニング合宿では, 日本情報オリンピックの予選・本選とは異なる形式の課題が出題されるかもしれない. 例えば, (ソースを提出せずに) 出力データのみを提出する課題 (Output only task) や, 出力データの質を評価し採点する課題, 指定された方法でやりとりを行う応答型課題 (Reactive task), 提出した複数のプログラム間で通信を行う通信型課題 (Communication task) 等が出題されるかもしれない. また, 競技中のフィードバックが制限される課題が出題されるかもしれない. その場合, 課題の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
過去の合宿で出題された課題が日本情報オリンピック 春季トレーニング合宿 記録で公開されている.
解答方法・解答提出方法 課題の趣旨に合致するプログラムを作成し, 解答提出用 Web インタフェースからソースを提出すること. 解答プログラムは, 入力を標準入力から読み込み, 出力を標準出力に出力し, 正常終了すること (0 を返すこと).
各課題ごとに, ソースを提出することができる回数は 50 回までである.
各課題ごとに, 最後の提出から 1 分間は解答を提出することができない.
ただし, 課題によってはこれとは異なる方法で解答を提出するものもあるかもしれない. その場合, 提出方法の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
フィードバック 競技中に提出されたソースは「実装上の注意 (Implementation Notice)」に記載されているコンパイルオプションを用いてコンパイルされ, 問題文中の例と, 全ての採点用入力データに対して実行される. その結果がフィードバックとして競技参加者に通知される. フィードバックを利用することで, 自分の提出したソースが問題文の仕様を満たしているかどうかを確認することができる. また, その課題に関する自分の得点を競技中に知ることができる.
フィードバックの詳細については春季トレーニング合宿前にオンラインで実施予定の実機練習 (プラクティス) を通して確認することを勧める.
フィードバックが与えられるまでに時間がかかることがある. 競技終了 15 分前までに提出されたソースには競技時間内にフィードバックが与えられるが, それ以降に提出されたソースには競技時間内にフィードバックが与えられるとは限らない. 競技終了 15 分前までに提出されたソースに対して競技時間内にフィードバックを与えることが困難であることが判明した場合は, 競技時間を延長することがある.
競技中のフィードバックが制限される課題が出題されるかもしれない. その場合, 詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
採点方法 採点用入力データに対する出力の正誤で得点を定める. 実行時の実行時間と使用メモリに制限がある. 制限は課題ごとに異なり, 競技時に配布される「実装上の注意 (Implementation Notice)」に記載される.
採点プログラムは, 「実装上の注意 (Implementation Notice)」に記載されているコンパイルオプションを用いて解答プログラムをコンパイルし, 採点用入力データに対して実行する. 時間・メモリの制限を満たして正常終了し, かつ, 出力が正しい場合に, その採点用入力データへの出力は正解となる.
各課題は 1 つまたは複数の小課題からなる. 小課題に関する詳細は問題文中に記載する.
各小課題に対し, いくつかの採点用入力データをセットにして採点を行う. セット内の全ての採点用入力データに正解した場合に限り, その小課題分の得点が与えられる.
ソースを複数回提出した場合は, 提出された全てのソースが採点される. 各小課題に対し, 提出された全てのソースにおけるその小課題の得点の最大値が, その小課題の最終的な得点となる.
各課題の得点は, その課題に含まれる小課題の最終的な得点の合計である.
競技サーバに予期せぬ障害が発生した場合は, 最後に提出されたソースのみを採点の対象とする場合がある. 提出したソースは, 各自の競技用 PC に保存しておくことを勧める.
課題によってはこれとは異なる方法で採点するものもあるかもしれない. その場合, 採点方法の詳細は問題文および「実装上の注意 (Implementation Notice)」に記載される.
質問 質問がある場合は, 競技システム上の質問機能を用いて質問を行うことができる.
質問への回答は「正しい」「正しくない」「ノーコメント」「課題の記述の中に答えはある」「無効」のいずれかである. 競技時間中であればいつでも質問を提出することができる. ただし, 競技終了間際に提出された質問には競技時間内に回答するとは限らない.
実機練習 (プラクティス) 春季トレーニング合宿前にオンラインで実機練習 (プラクティス) を行う. 実機練習を通して競技システムへの解答提出方法が確認できる. また, 事前に配布する仮想マシンを用いて解答作成方法・コンパイル方法が確認できる.
解析の時間 各競技日の競技終了後に, その競技日までの競技結果が含まれた順位表を, 競技参加者に対して公開する. 公開するのはその競技日までの全参加者の問題ごとの得点と合計得点である.
参加者は, 解析の時間中に, 採点用入出力データを用いて自分の提出したプログラムの動作確認を行うことができる.
競技結果について異議 (アピール) がある場合は,解析の時間中に競技システム上の質問機能を用いて「抗議票」を提出することができる. 解析の時間終了後のアピールは認めない.
禁止事項
  • 競技前および競技中に, 周辺機器や USB メモリなどの外部メディアを競技用 PC に接続してはならない (キーボードやマウスを持ち込む競技参加者が動作確認のために接続する場合を除く).
  • 競技用 PC には, いかなるデータもコピーしてはならない. 競技用 PC に新たなソフトウェアやドライバをインストールしてはならない.
  • 競技中は, 参考書・ノート・辞書などの資料を参照してはならない. 競技中は, 本委員会が用意した機器と, 認められた方法で持ち込んだキーボード・マウスのみ使用できる. それ以外の機器 (携帯電話・電卓・電子辞書など) や腕時計を使用してはならない.
  • 競技参加者が提出する解答プログラムは, 実行時に標準入出力以外にアクセスしてはならない. 一時ファイルの作成, ネットワークへのアクセス, 外部プログラムの呼び出しは禁止である.
  • 競技中は, 競技システムを通じて解答を提出したり提出結果を確認する場合を除き, ネットワークやインターネット上のいかなるコンピュータへのアクセスも試みてはならない. 競技システムを改ざんしたり, セキュリティを侵害することを試みてはならない.
  • 自分自身に割り当てられた競技用 PC とアカウントを使用すること. 自分自身に割り当てられたアカウント以外のアカウントへのアクセス権を得ようと試みてはならない. 自分自身に与えられた競技用 PC 以外のコンピュータにふれてはならない.
  • 競技中は, 本委員会のスタッフを除き, 他の人と連絡を取ってはならない.
  • Windows 上で動作する仮想マシン上で競技を行うこと. 競技中は Windows 環境のデスクトップに戻ってはならない.
その他 競技参加者は, 解析の時間中に会場責任者の許可を得て競技用 PC に USB メモリを接続して, ソースやデータなどを USB メモリにコピーして持ち帰ることができる. 自分が競技中に作成したソースやデータなどを持ち帰りたい人は, USB メモリを持参すること.
競技課題および採点用入出力データは, 後日, 本委員会のウェブページで公開する.

英語の辞書・小さなマスコット・キーボード・マウスの持ち込みについて

競技参加者は, 筆記用具以外に, 衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書, 小さなマスコット, キーボード,マウスを持ち込んで競技に参加することができます. ただし, 持ち込む方法には次のような制限があります.

衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く) を持ち込む方法
英語の辞書, 小さなマスコット, キーボード,マウスを持ち込む方法
注意事項

上記の規則は変更されることがあります. 変更があった場合は, このページでお知らせします.

オープンコンテスト

春季トレーニング合宿競技と同じ時間帯に, 同じ課題を使ったオープンコンテストをオンラインで行う予定です. オープンコンテストにはどなたでも参加できます.

オープンコンテストに用いる競技システムの仕様は, 春季トレーニング合宿競技で用いる競技システムと同一ではありません.

参加希望者はオープンコンテストのページからアカウント登録を行なって参加してください. オープンコンテストに関する情報は, オープンコンテストのページに随時掲載予定です.

個人情報の扱いについて

個人情報の扱いについては, 情報オリンピック日本委員会の「個人情報保護方針」をご覧ください.