第20回日本情報オリンピック (JOI 2020/2021)
|
2020年6月30日
情報オリンピック日本委員会
・JOI 2020/2021 一次予選競技規則を公表しました. (2020.6.30)
・質問・問い合わせを更新しました. 使用できるプログラミング言語に, 一次予選競技では言語「C++ (GCC 9.2.1 with AC Library v1.0)」と「C++ (Clang 10.0.0 with AC Library v1.0)」が使用できないことを追記しました. (2020.9.9)
・不正禁止を更新しました. いかなる内容であっても, 参加者が競技中にTwitter, Facebook, ブログ, SNS などを用いて情報発信することは禁止されています.
ウェブブラウザを更新しました. AtCoder のコンテストシステムは Internet Explorer には対応していません. Google Chrome の最新版では正常な動作を確認しています. (2020.9.20)
・使用できるプログラミング言語を更新しました.
一次予選(第1回)では言語「C++ (GCC 9.2.1 with AC Library v1.0)」と「C++ (Clang 10.0.0 with AC Library v1.0)」は使えません.
一次予選(第2回, 第3回)では言語「C++ (GCC 9.2.1)」と「C++ (Clang 10.0.0)」は使えません. その代わり, 言語「C++ (GCC 9.2.1 without AC Library)」と「C++ (Clang 10.0.0 without AC Library)」が利用可能です. (2020.10.15)
一次予選競技注意事項 | 一次予選競技規則 | 質問とその回答 |
---|---|---|
よくある質問とその回答です.
実際にあった質問については, 公開に適するよう表現を修正しています. |
一次予選競技注意事項 | |
---|---|
概要 |
日本情報オリンピックは個人戦である.
一次予選競技では 3 問の問題が出題され, それぞれの問題に対するプログラムを作成する.
|
質問・問い合わせ |
競技中の質問は AtCoder のコンテストシステム上の「質問」欄で行うこと. ただし, 問題の解法に関わる質問等には回答しないこともある. AtCoder のコンテストシステムが利用できない場合は info@ioi-jp.org 宛の電子メールで行うこと. 電話などその他の方法での質問は受け付けない. 重要な情報は参加者全員へのお知らせとして掲出する. (2020.9.9更新) |
会場 | 予選では特定の会場は設けない. 自宅や学校などで, 自分の PC あるいは学校の PC などを使って競技に参加すること. |
ウェブブラウザ |
予選で使用予定の PC とブラウザの表示と動作を, 予選練習時
(次項「予選練習」を参照) に確認すること.
必要に応じて, 支障なく競技に参加できるブラウザや開発環境を, 一次予選競技開始までにインストール・準備しておくこと. AtCoder のコンテストシステムは Internet Explorer には対応していない. Google Chrome の最新版では正常な動作を確認している. (2020.9.20追記) |
予選練習 |
2020年9月7日(月)12:00 から2020年12月13日(日)11:00 (二次予選競技開始 2 時間前) まで, AtCoder コンテストシステムに JOI 2020/2021 競技用 ID/PW でログインすることで予選練習に参加できる. 予選練習では, 予選競技システムの操作方法や, 問題文の表示方法, ソースコードの提出方法, フィードバックの形式が確認できる. 自分が参加する予選の競技開始までに, 予選練習で競技方式・競技環境などを確認すること. |
第20回日本情報オリンピック (JOI 2020/2021) 一次予選競技規則 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
不正禁止 |
本規則を遵守すること. 規則を破った場合は失格となる. 特に, 以下のことは禁止されているので注意すること.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
競技日 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
競技時間 | 80分間 (14:00 〜 15:20) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
問題数 | 3問 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
配 点 | 配点は全問一律で各問 100 点であり, 満点は 300 点となる. 問題ごとに複数の採点用入力データを用いて採点を行う. 採点方法については「採点方法」を参照のこと. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
解答方法 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プログラムの 入出力方法 |
問題文の指示に従い, 標準入力から入力データを読み込み, 標準出力に出力データを書き出すプログラムを作成すること. 予選練習を利用して, あらかじめ, プログラムの入出力方法を確認しておくことを勧める. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
採点用入力データ の形式 |
提出されたソースコードは, 一次予選競技サーバ上でコンパイル・実行され, 採点が行われる. 与えられる採点用入力データの形式は以下の通りである.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ソースコードの 提出方法 |
ソースコードの提出は, 一次予選競技システムの「提出」ページより提出する「問題」と使用したプログラミング「言語」を正しく選択し, 「ソースコード」欄に使用する開発環境やテキストエディタから作成したソースコードを入力またはコピー&ペーストして, 「ソースコードを提出する」ボタンをクリックして提出すること. ソースコードは, 競技時間中であれば, 何度でも再提出することが可能である. ただし, 一次予選競技終了時間直前は, 提出が集中して時間がかかる可能性がある. 早めに提出するとともに, 無用な提出を避けること. 予選練習を利用して, あらかじめ, ソースコード提出方法を確認しておくことを勧める. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
出力データの形式 |
提出されたソースコードは, 一次予選競技サーバ上で正常にコンパイル・実行された場合に, 採点が行われる. 以下に従い, 出力データを出力すること.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
採点方法 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
第三者との やり取りの禁止 |
一次予選競技中, 競技参加者はいかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない. そのため, 競技中は, 例えば, Twitter, Facebook, ブログなどへの書き込み, SNS の利用, Skype, LINE, チャットの利用, 電子メールの送受信 (情報オリンピック日本委員会とのやりとりを除く) は許されない. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用できる プログラミング言語 |
一次予選競技は, AtCoder のコンテストシステムで行う. 一次予選競技では, C 言語, C++, Java が使用できる. これ以外にも, 一次予選競技実施時に AtCoder のコンテストシステムで使用可能なプログラミング言語であれば, どの言語でも使用することができる. ただし, 一次予選(第1回)では言語「C++ (GCC 9.2.1 with AC Library v1.0)」と「C++ (Clang 10.0.0 with AC Library v1.0)」は使えない. (2020.9.9追記, 2020.10.15修正) 一次予選(第2回, 第3回)では言語「C++ (GCC 9.2.1)」と「C++ (Clang 10.0.0)」は使えない. その代わり, 言語「C++ (GCC 9.2.1 without AC Library)」と「C++ (Clang 10.0.0 without AC Library)」を使うことができる. (2020.10.15追記) C 言語, C++, Java 以外の言語を用いた場合, 使用する言語によっては実行速度が遅く, 模範解答として想定されているアルゴリズムを用いても満点を得ることが難しかったり不可能な場合もあるかもしれない. 予選練習を利用して, 使用予定の言語について, あらかじめソースコードの作成方法と提出方法を確認しておくことを勧める. 2020年10月15日時点で AtCoder のコンテストシステムで使用可能な言語のバージョン・コンパイル方法・実行方法および使用可能ライブラリは以下の通り (AtCoderのページの「言語」の項と同じ. ただし言語「C++ (GCC 9.2.1)」と「C++ (Clang 10.0.0)」は使えない. その代わり, 言語「C++ (GCC 9.2.1 without AC Library)」と「C++ (Clang 10.0.0 without AC Library)」が利用可能 (2020.10.15追記)). ただし, これらは, 今後 AtCoder のコンテストシステムが変更になった場合には変更となる可能性がある.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用できる 機種・OS |
インターネットに接続でき, 開発環境とウェブブラウザがインストールされている PC であれば機種や OS に制限はない. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用できるPC の台数 |
一次予選競技中に, 開発に使用できる PC は 1 台だけである.
ただし, 開発以外の目的で複数の PC を使用することは許される. 例えば, 開発用 PC とは別の PC (タブレットやスマ―トフォンなど) で問題文を閲覧しながら, 開発用 PC の上でプログラムを作成・実行して一次予選競技に参加することは許される. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PC 共用の禁止 | 一次予選競技中, 複数の競技参加者が 1 台の PC を共用することを禁止する. また, 競技に使用する PC を競技参加者以外の第三者が操作することも禁止する. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ネットワークへの アクセスについて |
一次予選競技中, 競技参加者は, 本競技規則の他の項目に抵触しない範囲でネットワークにアクセスすることができる. 例えば, 問題の閲覧, 結果の提出, このページ (注意事項と競技規則) の閲覧, 情報オリンピック日本委員会との通信, 開発環境に付属するオンラインマニュアルの利用, インターネット上で公開されている情報を検索して競技に利用することは, 許される. ただし, 一次予選競技中に Twitter, Facebook, ブログ, SNS などを用いて情報発信したり, チャット, Skype, LINE, メールやインターネットの質問サイトなどを用いて第三者の助けを借りることは, 「第三者とのやり取りの禁止」に抵触するので, 許されない. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
使用禁止の アプリケーション |
開発環境, ウェブブラウザ, 参考資料を閲覧するために必要なアプリケーション, 情報オリンピック日本委員会との通信のために使用するメーラ以外のアプリケーションの使用を禁止する. ただし, Mathematica, Maple, MuPad, Maxima などの数式処理ソフト, および, Excel などの表計算ソフトは開発環境であると解釈し, これらを使用して解答を作成することを認める. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ライブラリの利用 | 「使用できるプログラミング言語」を参照のこと. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
参考資料の閲覧 |
一次予選競技中に参考資料を閲覧することは許される.
具体的には,
ただし, 一次予選競技開始後でかつ一次予選競技終了前にブログやインターネットの質問サイトに書き込みを行うことは, 「第三者とのやり取りの禁止」に抵触するので, 許されない. |
質問とその回答 |
---|
Q1: 統合開発環境を用いて一次予選競技に参加する予定です. 注意すべきことはありますか? |
A1: 一次予選競技では, AtCoder のシステムを使用して, 提出されたソースコードのコンパイル・実行を行います. AtCoder のシステムにおける言語ごとのコンパイル方法や言語ごとの実行方法については, AtCoderのページの「言語」の項を参照してください. 予選練習を利用して, あらかじめ, どのような機能が使用可能か確認しておくことをお勧めします. |
Q2: インライン関数は使用可能でしょうか? C/C++ で 64 bit 型の整数を扱う場合, long long int の代わりに __int64 を使ってコードを書いてもよいのでしょうか?汎用性の無い処理系依存のプログラムを書いても構わないのでしょうか? |
A2: 一次予選競技では, AtCoder のシステムを使用して, 提出されたソースコードのコンパイル・実行を行います. AtCoder のシステムにおける言語ごとのコンパイル方法や言語ごとの実行方法については, AtCoderのページの「言語」の項を参照してください. 予選練習を利用して, あらかじめ, どのような機能が使用可能か確認しておくことをお勧めします. |
Q3: 開発環境がインストールされた PC がインターネットに接続されていません. 開発用 PC とは別の PC から問題文をダウンロードしたり, ソースコードの提出をすることは許されますか? |
A3: 許されます. 「使用できる PC の台数」の項において, 「一次予選競技中に, 開発に使用できる PC は 1 台だけである. 」と定められています. 開発以外の目的で複数の PC を使用することは許されます. ただし, 複数の競技参加者が共用することは許されません (「PC 共用の禁止」の項を参照してください). |
Q4: ネット上のコンパイラ (ソースをアップロードすると実行結果を返してくれるウェブサービス) を利用して一次予選競技に参加することはできますか. |
A4: 競技参加者は, AtCoder のコンテストシステム上のコードテスト機能を利用して一次予選競技に参加することができます. AtCoder のコンテストシステム以外のウェブサービスを利用して一次予選競技に参加することはできません. 第三者とのやり取りの禁止には, 「一次予選競技中, 競技参加者はいかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない」と定められています. したがって, 一次予選競技時間中に, 一次予選競技システム以外の場所に自分自身のソースコードをアップロードすることはできません. そのような行為を行った場合, ソースコードが第三者の目に触れる可能性があり, 一次予選競技規則に違反する可能性があります. 一次予選競技には, 自分自身の PC にインストールされた開発環境を用いて参加してください. |