競技時間 |
競技1 3月21日(木) 9:00~14:00 (5 時間)
競技2 3月22日(金) 9:00~14:00 (5 時間)
競技3 3月23日(土) 9:00~14:00 (5 時間)
競技4 3月24日(日) 9:00~14:00 (5 時間)
|
課題数 |
各競技日に 3 題または 4 題の課題が出題される. |
配 点 |
- 配点は各課題 100 点である.
- 各課題がいくつかの小課題に分割されることがある. 小課題の配点は問題文中に記載する.
|
使用できるプログラミング言語 |
- C++ (C++ のバージョンは C++20)
- 競技システムで使われるコンパイルオプションは, 競技の際に配布される「実装上の注意 (Implementation Notice)」に記載する.
|
使用できる用品 |
- 競技中は筆記用具 (鉛筆, シャープペン, ボールペン, 消しゴムなど) を使用できる. 筆記用具は本委員会では準備しないので持参すること.
- 計算用紙は本委員会が用意したものを使用すること.
- 衣類, 適度なアクセサリー・宝飾品類 (腕時計を除く), 英語の辞書 (電子辞書は不可) を使用することができる. また, 小さなマスコットを机の上に置くことができる.
- 詳細は英語の辞書・小さなマスコット・キーボード・マウスの持ち込みについてを参照のこと.
|
使用できる機器・ソフトウェア |
競技で使用予定の機器・環境は以下の通り.
ハードウェア ノート型パーソナルコンピュータ
- 機種:HP EliteBook 650 G9
- CPU:Core i7-1265U
- メモリ:16GB
- ディスプレイ:15.6インチ・フルHD(1920×1080)
- SSD:256GB
- USBマウス(有線)
ソフトウェア 競技中は以下のソフトウェアが利用できる予定です.
-
Ubuntu 22.04 LTS 64-bit 英語版 Ubuntu 20.04 LTS 64-bit 英語版(3/8更新)
http://www.ubuntu.com/download/desktop
(Windows 11 上で動作する仮想マシンで競技を行います.)
- Firefox
-
g++, Python 2, Python 3, Ruby 2.7 g++ (version 11.4.0), Python 2, Python 3, Ruby 2.7(3/8更新)
- gdb
- gedit, Emacs, GVim, Kate, KWrite, SciTE, Joe’s Own Editor
- VSCodium, Eclipse, Geany
- C++ reference (英語)
- Ubuntu ディストリビューションに含まれる, その他のソフトウェア
競技環境に関する補足
- 競技で使用する Ubuntu は, Windows 11 上で動作する Oracle VM VirtualBox のゲスト OS である.
http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
- 競技では Ubuntu
22.04 LTS(3/8削除)の標準状態のデスクトップをカスタマイズしたものを使用する. 各ソフトウェアは標準リポジトリから apt でインストールできる最新のものを利用する予定である. ただし, 本会における動作確認の事情などにより, 最新版でないパッケージを使用する可能性もある. 競技で使用可能なソフトウェアに関する詳細は, 事前配布する仮想マシンで確認すること.
- 後日, 練習用仮想マシンを配布する. 練習用仮想マシンの配布は, 春季トレーニング実施までに Ubuntu Desktop (英語版) の開発環境に関する操作に慣れてもらうことを意図して行われる. ダウンロード用 URL は, 後日, 春季トレーニング参加者に通知する.
|
出題される課題 |
- アルゴリズムを設計しそのアルゴリズムを 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)」に記載される.
|
質問 |
- 質問がある場合は, 競技システム上の質問機能を用いて質問を行うことができる.
- 質問への回答は「正しい」「正しくない」「ノーコメント」「課題の記述の中に答えはある」「無効」のいずれかである.
- 競技時間中であればいつでも質問を提出することができる. ただし, 競技終了間際に提出された質問には競技時間内に回答するとは限らない.
|
実機練習 (プラクティス) |
- 3月20日に実機練習 (プラクティス) を行う. 実機練習を通して競技システムへの解答提出方法が確認できる.
- また, 事前に配布する仮想マシンを用いて解答作成方法・コンパイル方法が確認できる.
|
異議 (アピール)・解析の時間 |
- 各競技日の競技終了後に, その競技日までの競技結果が含まれた順位表を, 競技参加者に対して公開する. 公開するのはその競技日までの全参加者の問題ごとの得点と合計得点である.
- 参加者は, 解析の時間中に, 採点用入出力データを用いて自分の提出したプログラムの動作確認を行うことができる.
- 競技結果について異議 (アピール) がある場合は,解析の時間中に競技システム上の質問機能を用いて「抗議票」を提出することができる.
- 解析の時間終了後のアピールは認めない.
|
禁止事項 |
- 競技前および競技中に, 周辺機器や USB メモリなどの外部メディアを競技用 PC に接続してはならない (キーボードやマウスを持ち込む競技参加者が動作確認のために接続する場合を除く).
- 競技用 PC には, いかなるデータもコピーしてはならない. 競技用 PC に新たなソフトウェアやドライバをインストールしてはならない.
- 競技中は, 参考書・ノート・辞書などの資料を参照してはならない. 競技中は, 本委員会が用意した機器と, 認められた方法で持ち込んだキーボード・マウスのみ使用できる. それ以外の機器 (携帯電話・電卓・電子辞書など) や腕時計を使用してはならない.
- 競技参加者が提出する解答プログラムは, 実行時に標準入出力以外にアクセスしてはならない. 一時ファイルの作成, ネットワークへのアクセス, 外部プログラムの呼び出しは禁止である.
- 競技中は, 競技システムを通じて解答を提出したり提出結果を確認する場合を除き, ネットワークやインターネット上のいかなるコンピュータへのアクセスも試みてはならない. 競技システムを改ざんしたり, セキュリティを侵害することを試みてはならない.
- 自分自身に割り当てられた競技用 PC とアカウントを使用すること. 自分自身に割り当てられたアカウント以外のアカウントへのアクセス権を得ようと試みてはならない. 自分自身に与えられた競技用 PC 以外のコンピュータにふれてはならない.
- 競技中は, 本委員会のスタッフを除き, 他の人と連絡を取ってはならない.
- Windows 上で動作する仮想マシン上で競技を行うこと. 競技中は Windows 環境のデスクトップに戻ってはならない.
- 競技参加者は, 特定の入力データについてのみ正しく動作するプログラムであって, 採点用入力データを解析して得られた情報を用いて作成されたものを提出してはならない. 特定の入力データについてのみ正しく動作するプログラムとは, 採点用入力データに関する正解数が, 同じアルゴリズムを用いて生成された他の入力データに対する正解数よりも著しく多いもののことである. そのようなプログラムを提出した場合, その提出は無効となる可能性がある.
|
その他 |
- 競技参加者は, 解析の時間中に会場責任者の許可を得て競技用 PC に USB メモリを接続して, ソースやデータなどを USB メモリにコピーして持ち帰ることができる.
- 自分が競技中に作成したソースやデータなどを持ち帰りたい人は, USB メモリを持参すること.
- 競技課題および採点用入出力データは, 後日, 本委員会のウェブページで公開する.
|