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

  • 検索サイト (Google,Yahoo,Bing 等) で検索した際に表示される要約文を利用することは,生成 AI の使用にはあたらないものとします. 詳細は「質問とその回答」の Q5 を確認してください. (2024.12.6)
  • JOI 2024/2025 一次予選・二次予選,JOIG 2024/2025本選競技規則を公表しました. (2024.6.21)

  • 参加者が競技中に生成 AI (ChatGPT 等) を使用することは禁止されています.生成 AI により生成されたソースコードを競技サーバに提出する/しないに関わらず,競技中の生成 AI の使用は禁止されています.
  • 参加者が競技中に X (旧 Twitter), Facebook, ブログ, SNS 等を用いて情報発信することは禁止されています.

競技概要

競技日時

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

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

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

  • JOIG 本選: 2025 年 1 月 12 日(日)13:00~17:00

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

予選練習実施期間

  • 2024年9月4日(水)12:00 ~ 2025 年 1 月 12 日(日)17:00

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

競技実施の流れ

競技実施前

  • もし AtCoder の競技システムに他のアカウントでログインしている場合は,あらかじめログアウトしておくこと.
  • 競技システムの URL と競技用アカウントの ID・パスワードを受付システムのマイページで確認し,AtCoder の競技システムにログインすること.
  • 競技実施時までに予選練習を用いて競技システムの動作を確認しておくこと.

競技実施中

  • 競技システムにアクセスして問題文を閲覧する.
  • 各自の PC を用いて解答プログラムを作成する.
  • 解答ソースコードを競技システムから提出する.
  • 提出された解答ソースコードは競技システム上で自動採点され,提出結果のフィードバックが与えられる.
  • 提出は何度でも行うことができる.フィードバックを参考にして解答ソースコードを修正することもできる.

出題形式

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

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

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

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

  • JOIG 本選: 5 問

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

競技環境

  • 自宅や学校等で PC を使って競技に参加すること.機種や OS に制限はない.スマートホンやタブレット PC を使って競技に参加しても構わない.
  • 競技中に参加者が使用できる PC の台数に制限はない.
  • AtCoder の競技システムは Internet Explorer には対応していない. Chrome の最新版では正常な動作が確認されている.

参考資料の閲覧

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

注意事項

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

異議申立
(アピール)

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

競技システムの仕様

解答ソースコードの提出

  • 各課題について,問題文の趣旨に合致する解答ソースコードを作成すること
  • 競技システムの「提出」ページで,提出する課題とプログラミング言語を選択し,解答ソースコードを入力またはコピー&ペーストして「提出」ボタンを押すこと.各問題の問題ページ下部の提出欄から提出を行ってもよい.
  • 使用できるプログラミング言語とコンパイル方法は 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 つ目の項目の前や,最後の項目の後に半角空白は無い.
  • 各行において,最後の項目の後には改行文字 (LF) がある.
  • 項目が整数であるときは,以下のように表記される.
    • 正の整数は 0 から 9 までの数字を用いて十進法で表される.先頭に 0 が付いたり,符号が付いたり,小数点が付くことはない.
      良い例:123
      悪い例:0123 +123 123.0
    • 零は 0 で表される.
      悪い例:+0 -0 0.0 00
    • 負の整数は負号 (-) の後に 0 から 9 までの数字を並べて十進法で表される.負号の直後に 0 が付いたり,小数点が付くことはない.
      良い例:-123
      悪い例:-0123 -123.0
  • 各課題の入力例も参考にすること.

出力の形式

  • 標準出力に出力すること.
  • 出力には問題文に指示のない文字・記号・制御コードは含まないこと.
    例えば,「X を入力してください:」といった内容を出力すると不正解となるので注意すること.
  • 整数を出力するときは「採点用入力データの形式」に書かれた形式で出力すること.
  • 各課題の出力例も参考にすること.

フィードバックの形式

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

質問の提出

  • 競技中の質問は AtCoder の競技システム上の「質問」ページで行うこと.ただし,課題の解法に関わる質問等には回答しないこともある.
  • AtCoder の競技システムが利用できない場合は info@ioi-jp.org 宛の電子メールで行うこと. 電話等その他の方法での質問は受け付けない.

  • 電子メールで質問する前に,必ず,以下の点について確認すること.
    • 競技ページが表示されない場合
      使用している OS やブラウザのバージョンを確認すること.AtCoder の競技システムは Internet Explorer には対応していない.Google Chrome の最新版では正常な動作が確認されている.


    • 競技に参加できない場合
      競技ページ右上に自分のユーザ ID が
          ユーザ ID (Contestant)
      の形で表示されていることを確認すること.
      AtCoder の競技ページ右上に「ログイン」や「(Guest)」と表示されている場合は,競技サーバに競技用アカウントでログインできていないため,競技に参加できない.
      AtCoder の競技システムに他のアカウントでログインしている場合は,いったんログアウトしてから,競技用アカウントでログインすること.
      競技用アカウントの ID・パスワードは,受付システムのマイページで確認できる.

注意事項

  • 競技用アカウントの AtCoder ユーザ名を変更してはならない.
  • AtCoder のコンテストシステムのパスワード変更機能を利用する場合は自己責任で利用すること.変更したパスワードが分からなくなると,復旧に時間がかかる場合がある.
  • 重要な情報は参加者全員へのお知らせとして「質問」ページに掲出することがある.
  • 競技に支障が出た場合は競技時間が延長される場合がある.

質問とその回答

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