JOI logo

第1回 日本情報オリンピック女性部門 (JOIG 2021)
競技規則

2021年4月1日
情報オリンピック日本委員会

・JOIG 2021 競技規則を公表しました. (2021.4.1)

注意事項
・いかなる内容であっても, 参加者が競技中にTwitter, Facebook, ブログ, SNS などを用いて情報発信することは禁止されています.
AtCoder のコンテストシステムは Internet Explorer には対応していません. Google Chrome の最新版では正常な動作を確認しています.

JOIG競技注意事項 JOIG競技規則 質問とその回答

よくある質問とその回答です. 実際にあった質問については, 公開に適するよう表現を修正しています.
質問とその回答へ

JOIG競技注意事項
概要  日本情報オリンピック女性部門は個人戦である. JOIG競技では 6 問の問題が出題され, それぞれの問題に対するプログラムを作成する.
  • 参加者は, 競技が開始されたら, ウェブブラウザで競技システムにログインし, 競技ページへ進む.
  • ウェブブラウザで問題を閲覧し, 開発用 PC を用いて解答プログラムを作成する.
  • 作成した解答プログラムのソースコードを競技システムから提出する.
  • 提出されたソースコードは, 競技サーバ上でコンパイル・実行・採点される. その結果が参加者に対して, フィードバックとして与えられる.
  • 競技時間内であれば, フィードバックを参考にしながら, 解答プログラムを修正してソースコードを何度でも再提出することができる.
  • 各問題について, 競技時間内に提出したソースコードの得点の最大値が, その問題の得点となる.
  • ソースコードの再提出によるペナルティは無い.
質問・問い合わせ  競技中の質問は AtCoder のコンテストシステム上の「質問」欄で行うこと. ただし, 問題の解法に関わる質問等には回答しないこともある.
 AtCoder のコンテストシステムが利用できない場合は info@ioi-jp.org 宛の電子メールで行うこと. 電話などその他の方法での質問は受け付けない.
 重要な情報は参加者全員へのお知らせとして掲出する.
会場  JOIGでは特定の会場は設けない. 自宅や学校などで, 自分の PC あるいは学校の PC などを使って競技に参加すること.
ウェブブラウザ  JOIG で使用予定の PC とブラウザの表示と動作を, JOIG練習時 (次項「JOIG練習」を参照) に確認すること. 必要に応じて, 支障なく競技に参加できるブラウザや開発環境を, JOIG競技開始までにインストール・準備しておくこと.

 AtCoder のコンテストシステムは Internet Explorer には対応していない. Google Chrome の最新版では正常な動作を確認している.
JOIG練習  2021年4月上旬から2021年4月25日(日)11:00 (JOIG競技開始 2 時間前) まで, AtCoder コンテストシステムに JOIG 2021 競技用 ID/PW でログインすることでJOIG練習に参加できる予定である.
 JOIG練習では, JOIG競技システムの操作方法や, 問題文の表示方法, ソースコードの提出方法, フィードバックの形式が確認できる.
 JOIG競技開始までに, JOIG練習で競技方式・競技環境などを確認すること.
第1回 日本情報オリンピック女性部門 (JOIG 2021) 競技規則
不正禁止  本規則を遵守すること. 規則を破った場合は失格となる. 特に, 以下のことは禁止されているので注意すること.
  • 参加者が競技中に第三者の助けを借りることは禁止されている.
  • 参加者が競技中に他の参加者の助けとなる行為を行うことは禁止されている.
  • 参加者は, 競技中は, いかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない (情報オリンピック日本委員会とのやりとりを除く).
  • 参加者は, 競技中は, いかなる内容であってもTwitter, Facebook, ブログ, SNS などを用いて情報発信してはならない.
競技時間  180分間 (2021年4月25日 13:00 〜 16:00)
問題数   6問
配 点  配点は全問一律で各問 100 点であり, 満点は 600 点となる. 問題ごとに複数の採点用入力データを用いて採点を行う. 採点方法については「採点方法」を参照のこと.
解答方法
  • 各問題について, 問題文の趣旨に合致するプログラムを作成して, ソースコードを提出すること.
  • 問題ごとに, 採点用入力データ 1 個あたりの実行時間制限と使用メモリ制限が定められている. 採点用入力データの中には, 実行時間制限と使用メモリ制限の両方を満たして実行するためには, アルゴリズムの工夫が必要なデータが含まれていることがある. もし, 一部の採点用入力データについてのみ実行時間制限と使用メモリ制限の両方を満たして実行されるソースコードを提出した場合は, その分の出力が正しければ, 部分点が与えられることもある. 部分点についての詳細は, 問題文に記載する.
  • 問題ごとに異なるプログラミング言語を使用して解答することも可能である. 例えば, 問題 1 のプログラムを C++ で作成して, 問題 2 のプログラムを Java で作成するなど, 問題ごとに異なるプログラミング言語を使うこともできる.
プログラムの
入出力方法
 問題文の指示に従い, 標準入力から入力データを読み込み, 標準出力に出力データを書き出すプログラムを作成すること.
 JOIG練習を利用して, あらかじめ, プログラムの入出力方法を確認しておくことを勧める.
採点用入力データ
の形式
 提出されたソースコードは, JOIG競技サーバ上でコンパイル・実行され, 採点が行われる. 与えられる採点用入力データの形式は以下の通りである.
  • 標準入力から採点用入力データを読み込むこと.
  • 採点用入力データの各行は, 1 つまたは複数の項目を含む. 項目は整数または文字列である.
  • 複数の項目を含む行では, 項目は 1 つの「空白」で区切られている. ここで, 「空白」とは半角空白のことであり, 全角空白やタブは「空白」ではない.
  • 各行において, 1 つ目の項目の前や, 最後の項目の後に「空白」はない.
ソースコードの
提出方法
ソースコードの提出は, JOIG競技システムの「提出」ページより提出する「問題」と使用したプログラミング「言語」を正しく選択し, 「ソースコード」欄に使用する開発環境やテキストエディタから作成したソースコードを入力またはコピー&ペーストして, 「ソースコードを提出する」ボタンをクリックして提出すること.
 ソースコードは, 競技時間中であれば, 何度でも再提出することが可能である. ただし, JOIG競技終了時間直前は, 提出が集中して時間がかかる可能性がある. 早めに提出するとともに, 無用な提出を避けること.
 JOIG練習を利用して, あらかじめ, ソースコード提出方法を確認しておくことを勧める.
出力データの形式  提出されたソースコードは, JOIG競技サーバ上で正常にコンパイル・実行された場合に, 採点が行われる. 以下に従い, 出力データを出力すること.
  • 出力データを標準出力に出力すること.
  • 出力データは, 問題文の指示にない文字・記号・制御コードを含まないこと.
  • 出力データの行数は, 問題中の「出力」の項に指定された行数であること. 出力データの行数が問題中に指定された行数と異なる場合は, 不正解となることがある.
  • 出力データの各行は, 1 つまたは複数の項目を含むこと. 項目は整数または文字列である.
  • 出力データの各行に含まれる項目数は, 問題中の「出力」の項に指定されたその行の項目数と一致すること. 異なる場合は不正解となることがある.
  • 複数の項目を含む行では, 項目を 1 つの「空白」で区切ること. また, 1 つ目の項目の前や最後の項目の後に「空白」を挿入しないこと. これらに反する出力データは不正解となることがある. ここで, 「空白」とは半角空白のことであり, 全角空白やタブは「空白」ではない.
  • 各行において, 1 つ目の項目の前や, 最後の項目の後に「空白」を入れないこと. 1 つ目の項目の前や, 最後の項目の後に「空白」が含まれている出力データは不正解となることがある.
  • 項目が整数の場合, 次のように出力(表記)すること.
    正整数
    正整数は, 数字(0 から 9 まで)を用い十進法で表すこと. 先頭が 0 であってはならないし, 符号や小数点をつけてはならない.
        良い例: 123
        悪い例: +123    123.0    0123
    零は 0 で表すこと.
        悪い例: +0    -0    0.0    00
    負整数
    負整数は, 負号(-)の後に 1 個以上の数字を並べ十進法で表すこと. 符号の直後の数字は 0 であってはならない.
        良い例: -123
        悪い例: -123.0    -0123
  • 項目が文字列の場合, 1 個以上の文字の並びとして出力すること.
採点方法
  • 提出されたソースコードは, JOIG競技サーバ上でコンパイル・実行・採点される. その結果は, 参加者に対して, フィードバックとして与えられる.
  • JOIG競技サーバ上で正常にコンパイルできないソースコードに対する得点は, 0 点である.
  • JOIG競技サーバ上で正常にコンパイルされたソースコードに対して, 採点が行われる.
  • 採点は, 1 個または複数の採点用入力データをセットにして行われる. セット内のすべての採点用入力データに対して, 定められた実行時間制限・使用メモリ制限を満たして実行され, 正しい出力データを出力した場合に, そのセット分の得点が与えられる.
  • 競技時間内であれば, ソースコードを何度でも再提出することができる.
  • ソースコードの再提出によるペナルティは無い.
  • 各問題について, 競技時間内に提出したソースコードの得点の最大値が, その問題の得点となる.
第三者との
やり取りの禁止
 JOIG競技中, 競技参加者はいかなる第三者とも, いかなる方法でも相談や情報のやり取りをしてはならない. そのため, 競技中は, 例えば, Twitter, Facebook, ブログなどへの書き込み, SNS の利用, Skype, LINE, チャットの利用, 電子メールの送受信 (情報オリンピック日本委員会とのやりとりを除く) は許されない.
使用できる
プログラミング言語
 JOIG競技は, AtCoder のコンテストシステムで行う.
 JOIG競技では, C 言語, C++, Java が使用できる. これ以外にも, JOIG競技実施時に AtCoder のコンテストシステムで使用可能なプログラミング言語であれば, どの言語でも使用することができる.
 ただし, C 言語, C++, Java 以外の言語を用いた場合, 使用する言語によっては実行速度が遅く, 模範解答として想定されているアルゴリズムを用いても満点を得ることが難しかったり不可能な場合もあるかもしれない.
 JOIG練習を利用して, 使用予定の言語について, あらかじめソースコードの作成方法と提出方法を確認しておくことを勧める.

 AtCoder のコンテストシステムで使用可能な言語のバージョン・コンパイル方法・実行方法および使用可能ライブラリは, AtCoderのページの「言語」の項を参照すること. これらは, 今後 AtCoder のコンテストシステムが変更になった場合には変更となる可能性がある.
使用できる
機種・OS
 インターネットに接続でき, 開発環境とウェブブラウザがインストールされている PC であれば機種や OS に制限はない.
使用できるPC
の台数
 JOIG競技中に, 開発に使用できる PC は 1 台だけである.
 ただし, 開発以外の目的で複数の PC を使用することは許される. 例えば, 開発用 PC とは別の PC (タブレットやスマ―トフォンなど) で問題文を閲覧しながら, 開発用 PC の上でプログラムを作成・実行してJOIG競技に参加することは許される.
PC 共用の禁止  JOIG競技中, 複数の競技参加者が 1 台の PC を共用することを禁止する. また, 競技に使用する PC を競技参加者以外の第三者が操作することも禁止する.
ネットワークへの
アクセスについて
 JOIG競技中, 競技参加者は, 本競技規則の他の項目に抵触しない範囲でネットワークにアクセスすることができる.
 例えば, 問題の閲覧, 結果の提出, このページ (注意事項と競技規則) の閲覧, 情報オリンピック日本委員会との通信, 開発環境に付属するオンラインマニュアルの利用, インターネット上で公開されている情報を検索して競技に利用することは, 許される.
 ただし, JOIG競技中に Twitter, Facebook, ブログ, SNS などを用いて情報発信したり, チャット, Skype, LINE, メールやインターネットの質問サイトなどを用いて第三者の助けを借りることは, 「第三者とのやり取りの禁止」に抵触するので, 許されない.
使用禁止の
アプリケーション
 開発環境, ウェブブラウザ, 参考資料を閲覧するために必要なアプリケーション, 情報オリンピック日本委員会との通信のために使用するメーラ以外のアプリケーションの使用を禁止する. ただし, Mathematica, Maple, MuPad, Maxima などの数式処理ソフト, および, Excel などの表計算ソフトは開発環境であると解釈し, これらを使用して解答を作成することを認める.
ライブラリの利用 使用できるプログラミング言語」を参照のこと.
参考資料の閲覧  JOIG競技中に参考資料を閲覧することは許される. 具体的には,
  • 競技中に占用できる参考書などの書籍
  • 開発環境に付随しているマニュアルやヘルプ(オンラインマニュアルやオンラインヘルプを含む)
  • JOIG競技前やJOIG競技中に検索して入手した資料やサンプルプログラム
を使用して競技に参加することは許される. また,
  • 入手したサンプルプログラムなどをコピー&ペーストなどで解答プログラムに活用すること
  • ブログやインターネットの質問サイトに書かれた内容を, 検索して利用すること
も許される.
 ただし, JOIG競技開始後でかつJOIG競技終了前にブログやインターネットの質問サイトに書き込みを行うことは, 「第三者とのやり取りの禁止」に抵触するので, 許されない.
質問とその回答
Q1: 統合開発環境を用いてJOIG競技に参加する予定です. 注意すべきことはありますか?
A1: JOIG競技では, AtCoder のシステムを使用して, 提出されたソースコードのコンパイル・実行を行います. AtCoder のシステムにおける言語ごとのコンパイル方法や言語ごとの実行方法については, AtCoderのページの「言語」の項を参照してください. JOIG練習を利用して, あらかじめ, どのような機能が使用可能か確認しておくことをお勧めします.
Q2: インライン関数は使用可能でしょうか? C/C++ で 64 bit 型の整数を扱う場合, long long int の代わりに __int64 を使ってコードを書いてもよいのでしょうか?汎用性の無い処理系依存のプログラムを書いても構わないのでしょうか?
A2: JOIG競技では, AtCoder のシステムを使用して, 提出されたソースコードのコンパイル・実行を行います. AtCoder のシステムにおける言語ごとのコンパイル方法や言語ごとの実行方法については, AtCoderのページの「言語」の項を参照してください. JOIG練習を利用して, あらかじめ, どのような機能が使用可能か確認しておくことをお勧めします.
Q3: 開発環境がインストールされた PC がインターネットに接続されていません. 開発用 PC とは別の PC から問題文をダウンロードしたり, ソースコードの提出をすることは許されますか?
A3: 許されます. 「使用できる PC の台数」の項において, 「JOIG競技中に, 開発に使用できる PC は 1 台だけである. 」と定められています. 開発以外の目的で複数の PC を使用することは許されます. ただし, 複数の競技参加者が共用することは許されません (「PC 共用の禁止」の項を参照してください).
Q4: ネット上のコンパイラ (ソースをアップロードすると実行結果を返してくれるウェブサービス) を利用してJOIG競技に参加することはできますか.
A4: 可能ですが推奨しません. もし, 利用するウェブサービスにソースコードを第三者と共有する機能がある場合は, そのような機能をオフにしてください. 競技時間中に作成したソースコードが第三者からアクセスできる状態であったことが判明した場合は, 競技規則違反となる可能性があります. JOIG競技には自分自身の PC にインストールされた開発環境を用いて参加することを推奨します.
Q5: AC Library を使うことは出来ますか?
A5: 可能です. ただし, AC Libraryを使用して不具合などが起こった場合も競技結果の配慮は行いませんので, 自己責任で使用してください.