第16回日本情報オリンピック (JOI 2016/2017)
|
2016年10月30日
情報オリンピック日本委員会
・JOI 2016/2017 予選競技規則を公表しました. (2016.10.30)
予選競技注意事項 | 予選競技規則 | 質問とその回答 |
---|---|---|
よくある質問とその回答です.
実際にあった質問については, 公開に適するよう表現を修正しています. |
予選競技注意事項 | |
---|---|
概要 | 日本情報オリンピックは個人戦である. 予選競技では 6 問の問題が出題され, それぞれの問題に対するプログラムを作成する. ウェブブラウザで My Page にログインし, 「予選競技」ページへ進む. ウェブブラウザで問題を閲覧し, 解答を提出する. |
質問・問い合わせ | 質問や問い合わせは info@ioi-jp.org 宛の電子メールで行うこと. ただし, 予選競技時間中に質問に回答することはない. また, 電話などその他の方法での質問は受け付けない. |
会場 | 予選では特定の会場は設けない. 自宅や学校などで, 自分の PC あるいは学校の PC などを使って競技に参加すること. |
ウェブブラウザ |
予選で使用予定の PC とブラウザの表示と動作を, 予選練習時
(次項「予選練習」を参照) に確認すること.
必要に応じて, 支障なく競技に参加できるブラウザを予選競技開始までにインストールしておくこと.
Windows 7 上の Internet Explorer 11 (11.0.9600.18449), Windows 10 上の Edge 25, および, Windows 10 上の Google Chrome 53 で動作を確認しています. |
予選練習 | 11月29日(火)12:00 から12月11日(日)11:00 (競技開始 2 時間前) まで, My Page にログインすることで予選練習に参加できる. 予選練習では, 問題の表示や解答の提出が正常に行えるか確認できる. また, 解答の形式が適切か確認できる. |
第16回日本情報オリンピック (JOI 2016/2017) 予選競技規則 | |
---|---|
不正禁止 | 本規則を遵守すること. 規則を破った場合は失格となる. 特に, 競技中に第三者の助けを借りたり, 他の参加者の助けとなる行為は禁止されていることに注意すること. |
競技時間 | 3時間 (2016年12月11日(日) 13:00〜16:00) |
問題数 | 6 問 |
配 点 | 配点は全問一律で各問 100 点であり, 満点は 600 点となる. また, 問題ごとに採点用入力データが 5 個あり, 配点は入力データ 1 個につき 20 点である. 採点用入力データについては「解答方法」を参照のこと. |
解答方法 |
|
プログラムの 入出力方法 |
プログラムが採点用入力データを読み込んだりそれに対する出力データを書き出したりする方法は問わない. 例えば, ファイル名を実行時に別途指定できるようにプログラムを書いても良いし, ファイル名を固定してプログラムを書いておいて実行時にデータのファイル名を変えることで対応しても良い. また, 標準入出力を使うプログラムを書いておいて, 入出力をリダイレクトしたりコピーアンドペーストしたりしても良い (その場合, 余計な文字や行が含まれないよう注意すること.「出力ファイルの形式」を参照のこと.). |
入力データの形式 |
与えられる採点用入力データの形式は以下の通りである.
|
解答の提出 |
各問題の解答アップロード機能付きページには,
|
提出するファイル |
|
出力ファイルの形式 |
|
採点方法 |
|
第三者との やり取りの禁止 |
予選競技中, 競技参加者はいかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない. そのため, 競技中は, 例えば, Twitter, Facebook, ブログなどへの書き込み, SNS の利用, Skype, LINE, チャットの利用, 電子メールの送受信 (情報オリンピック日本委員会とのやりとりを除く) は許されない. |
使用できる プログラミング言語 |
使用できるプログラミング言語に制限はない. ただし, 「使用禁止のアプリケーション」の項を参照のこと. |
使用できる 機種・OS |
インターネットに接続でき予選競技実施システムを利用できるウェブブラウザが競技開始前にインストールされている PC (personal use computer) であれば機種や OS に制限はない. |
使用できるPC の台数 |
予選競技中に, 開発や計算に使用できる PC は 1 台だけである.
ただし, 開発や計算以外の目的で複数の PC を使用することは許される. 例えば, 開発用 PC とは別の PC (タブレットやスマ―トフォンなど) で問題文を閲覧しながら, 開発用 PC の上でプログラムを作成・実行して予選競技に参加することは許される. |
PC 共用の禁止 | 予選競技中, 複数の競技参加者が 1 台の PC を共用することを禁止する. また, 競技に使用する PC を競技参加者以外の第三者が操作することも禁止する. |
ネットワークへの アクセスについて |
予選競技中, 競技参加者は本競技規則の他の項目に抵触しない範囲でネットワークにアクセスすることができる. 例えば, 問題の閲覧, 結果の提出, このページ (注意事項と競技規則) の閲覧, 情報オリンピック日本委員会との通信, 開発環境に付属するオンラインマニュアルの利用, インターネット上で公開されている情報を検索して競技に利用することは, 許される. ただし, 予選競技中に Twitter, Facebook, ブログ, SNS などを用いて情報発信したり, チャット, Skype, LINE, メールやインターネットの質問サイトなどを用いて第三者の助けを借りることは, 「第三者とのやり取りの禁止」に抵触するので, 許されない. |
使用禁止の アプリケーション |
開発環境, ウェブブラウザ, 参考資料を閲覧するために必要なアプリケーション, 情報オリンピック日本委員会との通信のために使用するメーラ以外のアプリケーションの使用を禁止する. ただし, Mathematica, Maple, MuPad, Maxima などの数式処理ソフト, および, Excel などの表計算ソフトは開発環境であると解釈し, これらを使用して解答を作成することを認める. |
ライブラリの利用 | 予選競技では, プログラム開発環境に付随しているライブラリや, インターネット上で公開されている外部ライブラリを使用することができる. |
参考資料の閲覧 |
予選競技中に参考資料を閲覧することは許される.
具体的には,
ただし, 予選競技開始後でかつ予選競技終了前にブログやインターネットの質問サイトに書き込みを行うことは, 「第三者とのやり取りの禁止」に抵触するので, 許されない. |
質問とその回答 |
---|
Q: 提出する出力ファイルの最後の改行の有無は正誤に影響しますか? |
A: 影響しません. 「出力ファイルの形式」において「提出された出力ファイルに含まれる改行コードの個数が, 問題中の「出力」の項に指定された行数よりも多い場合は不正解とする.」と規定されています. 改行コードの個数が問題中の「出力」の項に指定された行数よりも多い場合は内容にかかわらず不正解となりますが, 改行コードの個数が問題中の「出力」の項に指定された行数と同じか 1 つ少ない場合は, 正否内容によって決まります. |
Q: プログラムの実行結果をテキストエディタにコピーアンドペーストして出力ファイルに保存して, 提出するつもりです. 注意すべきことはありますか? |
A: 提出する出力ファイルは「出力ファイルの形式」の制約を満たすように注意してください. 行の最後や出力ファイルの最後に問題文の指示にない空白や改行が入らないように注意してください. Unicode 形式で編集するテキストエディタを使う場合は, バイトオーダーマーク (BOM) を含まない形式で保存するように注意してください. あらかじめ, 使用するテキストエディタの動作・設定を確認されることをお勧めします. また, 予選練習を利用して, 出力ファイルの保存方法を確認されることをお勧めします. |
Q: ソースコードを提出する際, 統合開発環境のプロジェクトファイルを圧縮するのには, どのような圧縮形式を用いれば良いのでしょうか? |
A: 特に, 書庫ファイルの形式に制約はありません. ただし, 「提出するファイル」に「提出できるファイルのサイズは100KB未満」という制約があることにご注意ください. また, お使いの統合開発環境にソースコードを 1 つのテキストファイルにまとめて保存する機能がある場合は, そのような機能を使うことをお勧めします. |
Q: 統合開発環境を使用して問題を解こうと思っています. プロジェクトディレクトリのどのファイルを提出すれば良いのでしょうか? |
A: 「解答方法」には,
「プログラムのソースコードとして問題ごとに 1 つのファイルを提出すること.
もし, 1 つの問題に複数のソースコードがある場合は, 1 つの書庫ファイルにまとめて提出すること.
この場合, 書庫ファイルの形式は, zip 形式や lzh 形式など, 任意の形式を用いて構わない.」と定められています. 競技中に作成したプログラムのソースコードを提出してください. 開発環境によっては, 複数のファイルをソースコードとして作成することもあるかもしれません. その場合は, ソースコードとして作成した全てのファイルを 1 つの書庫ファイルにまとめて提出してください. もし, お使いの開発環境にソースコードを1つのファイルにまとめる機能がある場合は, それを使っていただいても構いません. プロジェクトごと圧縮してアップロードすることも可能ですが, 提出できるファイルのサイズは 100 KB未満となっていますのでご注意ください. あらかじめ, ソースコードの提出方法を予選練習で確認されることをお勧めします. |
Q: インライン関数は使用可能でしょうか? |
A: はい. 使用可能です. |
Q: 問題 1 のプログラムを C++ で書き問題 2 のプログラムを Java で書くなど, 問題ごとに異なるプログラミング言語を使ってもいいですか? |
A: はい. 問題ごとに異なるプログラミング言語を使用して解答することは可能です. |
Q: C/C++ で 64 bit 型の整数を扱う場合, long long int の代わりに __int64 を使ってコードを書いてもよいのでしょうか. |
A: はい. 予選競技では, 使用できるプログラミング言語に制限はありません. また, プログラムを書く際に使用する処理系・開発環境の機能についても制限はありません. したがって, __int64 が使用可能な開発環境を使う場合は, __int64 を使って予選競技に参加することも可能です. 予選練習を活用して, あらかじめ開発環境の動作を確認することをお勧めします. |
Q: 予選練習問題で, プログラムの出力は正しいはずなのに, 出力ファイルを提出すると不正解と表示されます. |
A: 予選練習および予選競技では, 出力ファイルの中に出力ファイルの形式の制約をみたしていない箇所が 1 箇所でもあると不正解となります. 空白の位置・個数, 改行の位置・個数, 改行コードの種類を確認してください. また, バイナリエディタや 16 進ダンプコマンドを用いて, ファイルの先頭や末尾に不要な制御コード等が追加されていないことを確認してください. C/C++ の開発環境によっては, 改行の出力に printf("\r\n") を使うと CR+CR+LF が出力され不正解となることがあります. この場合, printf("\n") を使うことで, 改行コードとして CR+LF を出力することができます. |
Q: 提出する出力ファイルの拡張子はどうすればよいのでしょうか. 出力ファイルの拡張子は txt とすべきでしょうか. |
A: 提出する出力ファイルについては, 提出するファイルと出力ファイルの形式の制約をみたしていれば, それ以上の制約はありません. したがって, 提出する出力ファイルの拡張子としては, txt を使うこともできますし, それ以外の拡張子を使うこともできます. 予選練習を活用して, あらかじめ提出ファイルの作成方法と提出方法を確認することをお勧めします. |
Q: 開発環境がインストールされた PC がインターネットに接続されていません. 開発用 PC とは別の PC から問題文をダウンロードしたり, 解答ファイルをアップロードすることは許されますか? |
A: 許されます.「使用できる PC の台数」の項において, 「予選競技中に, 開発や計算に使用できる PC は 1 台だけである.」と定められています. 開発や計算以外の目的で複数の PC を使用することは許されます. ただし, 複数の競技参加者が共用することは許されません (「PC 共用の禁止」の項を参照してください). |
Q: ネット上のコンパイラ (ソースをアップロードすると実行結果を返してくれるウェブサービス) を利用して予選競技に参加することはできますか. |
A: できません. 第三者とのやり取りの禁止には, 「予選競技中, 競技参加者はいかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない」と定められています. したがって, 予選競技時間中に, 予選競技システム以外の場所に自分自身のソースをアップロードすることはできません. そのような行為を行った場合, ソースが第三者の目に触れる可能性があり, 予選競技規則に違反する可能性があります. 予選競技には, 自分自身の PC にインストールされた開発環境を用いて参加してください. |