第 23 回日本情報
オリンピック(JOI 2023/2024)
 一次予選・二次予選
日本情報オリンピック
第 4 回女性部門(JOIG 2023/2024) 本選
競技規則

  • JOI 2023/2024 一次予選・二次予選,JOIG 2023/2024本選競技規則を公表しました. (2023.8.29)

  • 参加者が競技中に生成 AI (ChatGPT 等) を使用することは禁止されています.
  • 参加者が競技中に X (旧 Twitter), Facebook, ブログ, SNS などを用いて情報発信することは禁止されています.

競技概要

競技日時

第 23 回日本情報オリンピック (JOI 2023/2024)

  • JOI 一次予選(第 1 回):2023 年 9 月 16 日(土)14:00~15:20
  • JOI 一次予選(第 2 回):2023 年 10 月 15 日(日)14:00~15:20
  • JOI 一次予選(第 3 回):2023 年 11 月 18 日(土) 14:00~15:20
  • JOI 二次予選:2023 年 12 月 10 日(日)13:00~16:00

日本情報オリンピック 第 4 回女性部門 (JOIG 2023/2024)

  • JOIG 本選: 2024 年 1 月 21 日(日)13:00~17:00

予選練習
(プラクティス)

予選練習では実際の競技システムを使って練習を行うことができる.予選練習は以下の期間中,利用可能である.

  • 予選練習: 2023年9月4日(月)12:00 ~ 2024 年 1 月 21 日(日)17:00

競技システムの操作方法・問題文の表示方法・ソースコードの提出方法・フィードバックの形式が確認できる.競技開始前までに予選練習を用いて確認しておくこと.

競技実施の流れ

  • AtCoder の競技システムに他のアカウントでログインしている場合はログアウトしておくこと.
  • 競技システムの URL と競技用アカウントの ID・パスワードを受付システムのマイページで確認し,AtCoder の競技システムにログインすること.
  • 競技実施前に予選練習を用いて競技システムの動作を確認しておくこと.
  • 競技当日は競技開始後に競技システムにアクセスして問題文を閲覧する.
  • 各自の PC を用いて解答プログラムを作成する.
  • 解答ソースコードを競技システムから提出する.
  • 提出された解答ソースコードは競技システム上で自動採点され,提出結果のフィードバックが与えられる.
  • 提出は何度でも行うことができる.フィードバックを参考として解答ソースコードを修正しても構わない.各課題について,競技時間内に提出した解答ソースコードの得点の最大値がその課題の得点となる.

出題形式

各競技の出題問題数は以下の通りである.

第 23 回日本情報オリンピック (JOI 2023/2024)

  • JOI 一次予選:4 問
  • JOI 二次予選:5 問

日本情報オリンピック 第 4 回女性部門 (JOIG 2023/2024)

  • JOIG 本選: 6問

  • 各課題の満点は 100 点である.
  • 各課題は 1 つまたは複数の小課題からなる.小課題ごとの追加の制約は問題文中に記載する.
    例えば,「制約」の項に 1 ≦ N ≦ 100 と書かれていて,「小課題」の項で追加制約として N ≦ 10 が設定されているとき,その小課題の実際の制約は 1 ≦ N ≦ 10 である.
  • 各課題には実行時間制限と実行メモリ制限が設定されている.
  • 競技では AtCoder の競技システムで使用可能なプログラミング言語であればどの言語でも使用できる.
    • JOI 一次予選では,C/C++ と Python 以外のプログラミング言語を用いた場合,使用する言語によっては実行速度が遅く, 模範解答として想定されているアルゴリズムを用いても満点を得ることが難しかったり不可能な場合もあるかもしれない.
    • JOI 二次予選および JOIG 本選では,C/C++ 以外のプログラミング言語を用いた場合,使用する言語によっては実行速度が遅く,模範解答として想定されているアルゴリズムを用いても満点を得ることが難しかったり不可能な場合もあるかもしれない.
  • 高校生レベルまでの数学とプログラミングの知識が必要となる.各課題を理解するための知識および解答するための知識については IOI シラバス に準拠する.

競技環境

  • 自宅や学校などで,自分の PC あるいは学校の PC などを使って競技に参加すること.機種や OS に制限はない.
  • AtCoder の競技システムは Internet Explorer には対応していない. Chrome の最新版では正常な動作が確認されている.

参考資料の閲覧

  • 競技中に参考資料を閲覧することができる.例えば,参考書などの書籍,開発環境のマニュアルやヘルプ,サンプルソース,本競技規則などを閲覧しても構わない.
  • 競技中にインターネット上の参考資料を検索して,検索結果を利用して解答を作成することができる.参考資料をコピー&ペーストして解答ソースコードを作成しても構わない.

禁止事項

  • 日本情報オリンピックは個人戦である.
  • 競技中は第三者の助けを借りてはならない.
  • 競技中は他の参加者の助けとなる行為を行うことは禁止されている.
  • 競技中はいかなる第三者とも,いかなる方法でも,相談や情報のやり取りをしてはならない.ただし,情報オリンピック日本委員会とのやりとりを除く.
  • 参加者が競技中に生成 AI (ChatGPT 等) を使用することは禁止されている.
  • 競技中はいかなる内容であっても,X (旧 Twitter) や LINE,ブログなどを用いて情報を発信してはならない.競技中に競技と関係の無いツイートを行うことも不正行為とみなされるので注意すること.

異議申立
(アピール)

  • 競技終了後に採点用入出力データを配布する.
  • 競技結果について異議申立(アピール)がある場合は,別途定められた期間に定められた方法で提出すること.
  • 提出されたアピールに基づき,採点をやり直すことがある.採点をやり直した結果,参加者の得点は上がることもあれば下がることもある.

競技システムの仕様

解答ソースコードの提出

  • 各課題について,問題文の趣旨に合致する解答ソースコードを作成すること
  • 競技システムの「提出」ページで,提出する課題とプログラミング言語を選択し,解答ソースコードを入力またはコピー&ペーストして「提出」ボタンを押すこと.
  • 使用できるプログラミング言語とコンパイル方法は AtCoder ルール の「言語」の項を参照すること.
  • 提出は何度でも行うことができる. 解答ソースコードの再提出によるペナルティは無い.
  • 提出によって使用するプログラミング言語が異なっても構わない.
  • 競技システムが混雑する可能性があるため,無用な提出を行ってはならない.

採点方式

  • 提出されたすべての解答ソースコードが自動で採点される.
  • 競技システムでコンパイルできない解答ソースコードは「CE (Compilation Error)」と判定される.その解答は 0 点である.
  • 各小課題にはいくつかのテストケースが設定されている.
  • テストケースごとに解答ソースコードのプログラムが実行される.そのテストケースの採点用入力データが標準入力から与えられる.実行が終わった後,解答ソースコードのプログラムが標準出力に出力した内容をもとに採点が実施される.
    • 解答ソースコードのプログラムが実行中にエラーを発生させたとき,そのテストケースの判定は「RE (Runtime Error)」となる.
    • 解答ソースコードのプログラムが課題で設定された実行時間以内に終了しなかったとき,そのテストケースの判定は「TLE (Time Limit Exceeded)」となる.
    • 解答ソースコードのプログラムが課題で設定されたメモリ制限を超えたとき,そのテストケースの判定は「MLE (Memory Limit Exceeded)」となる.
    • 解答ソースコードの出力が正しくないとき,そのテストケースの判定は「WA (Wrong Answer)」となる.
    • 解答ソースコードの出力が正しいとき,そのテストケースの判定は「AC (Accepted)」となる.
    • 上記以外の判定については,AtCoder の用語集 を確認すること.
  • ある小課題に設定されたすべてのテストケースで判定が「AC (Accepted)」となったときに限り,その小課題の得点が得られる.
  • 解答ソースコードの得点は,すべての小課題の得点の合計である.解答ソースコードの判定は,各テストケースの判定のうちいずれか 1 つである.

採点用入力データの形式

  • 入力は標準入力から与えられる.
  • 採点用入力データの各行は,1 つまたは複数の項目を含む.
  • 複数の項目を含む行では,各項目は 1 つの半角空白で区切られている.
  • 各行において,1 つ目の項目の前や,最後の項目の後に半角空白は無い.
  • 各課題の入力例も参考にすること.

出力の形式

  • 標準出力に出力すること.
  • 出力には問題文に指示のない文字・記号・制御コードは含まないこと.例えば,「X を入力してください:」といった内容を出力すると不正解となるので注意すること.
  • 出力の行数は,問題文で指定された行数であること.
  • 出力の各行は,1 つまたは複数の項目を含むこと.
  • 複数の項目を含む行では,各項目を 1 つの半角空白で区切ること.
  • 各行において,1 つ目の項目の前や,最後の項目の後に半角空白を挿入しないこと.
  • 項目が整数であるとき,次のように表記すること.
    • 正の整数は,0 から 9 までの数字を用いて十進法で表すこと.先頭に 0 をを付けたり,符号を付けたり,小数点を付けてはならない.
      良い例:123
      悪い例:0123 +123 123.0
    • 零は 0 で表すこと.
      悪い例:+0 -0 0.0 00
    • 負の整数は,負号 (-) の後に 0 から 9 までの数字を並べて十進法で表すこと.負号の直後に 0 を付けたり,小数点を付けてはならない.
      良い例:-123
      悪い例:-0123 -123.0
    • 各課題の出力例も参考にすること.

フィードバックの形式

  • 「提出結果」のページでは各提出の得点,判定,実行時間の最大値,使用したメモリの最大値が確認できる.
  • 「提出結果」のページにある「詳細」ボタンを押すことで,より詳細フィードバックを確認できる.
  • 詳細フィードバックでは,各小課題に設定されたテストケースのうち何件のテストケースでどのような判定となったのか,また各小課題における得点を確認できる.
  • 競技参加者から多くの解答ソースコードが提出された場合,提出からフィードバックが得られるまでに非常に長い時間がかかることもあるので注意すること.
  • 「自分の得点状況」のページでは,各課題においてあなたが獲得している得点を確認できる.

質問の提出

  • 競技中の質問は AtCoder の競技システム上の「質問」ページで行うこと.ただし,課題の解法に関わる質問等には回答しないこともある.
  • AtCoder の競技システムが利用できない場合は info@ioi-jp.org 宛の電子メールで行うこと. 電話などその他の方法での質問は受け付けない.
  • 電子メールで質問する前に,必ず,以下の点について確認すること.
    • 競技ページが表示されない場合 : 使用している OS やブラウザのバージョンを確認すること.AtCoder の競技システムは Internet Explorer には対応していない.Google Chrome の最新版では正常な動作が確認されている.
    • 競技に参加できない場合 : 競技ページ右上に自分のユーザ ID が「ユーザ ID (Contestant)」の形で表示されていることを確認すること. AtCoder の競技ページ右上に「ログイン」や「(Guest)」と表示されている場合は,競技サーバに競技用アカウントでログインできていないため,競技に参加できない.AtCoder の競技システムに他のアカウントでログインしている場合は,いったんログアウトしてから,競技用アカウントでログインすること.競技用アカウントの ID・パスワードは受付システムのマイページで確認できる.
  • 重要な情報は参加者全員へのお知らせとして「質問」ページに掲出する.

注意事項

  • AtCoder のコンテストシステムの機能のユーザ名変更機能は使用してはならない.競技用アカウントの AtCoder ユーザ名を変更してはならない.
  • もし,AtCoder のコンテストシステムのパスワード変更機能を利用する場合は,自己責任で利用すること.変更したパスワードが分からなくなると,復旧に時間がかかる場合がある.

質問とその回答

Q1: 競技中にオンライン翻訳サービスを使って問題文を翻訳することはできますか.
A1: アップロードした問題文が第三者の目に触れる可能性のあるサービスを用いることはできません.そうでない場合は使用できます.
Q2: インターネット上の開発環境 (オンラインコンパイラなど) を利用して競技に参加することはできますか.
A2: アップロードしたソースコードが第三者の目に触れる可能性のある環境を用いることはできません.そうでない場合は使用できます.例えば,AtCoder の競技システム上のコードテスト機能は使用できます.
Q3: AC Library を使うことはできますか.
A3: 利用可能です.ただし,AC Library を使用して不具合などが起こった場合も競技結果の配慮は行いません.自己責任で使用してください.
Q4: 自分が Python で書いたソースコードを C++ に変換するために ChatGPT を利用することはできますか.
A4: できません.参加者が競技中に生成 AI (ChatGPT 等) を使用することは禁止されています.