競技ルール/Rules

前年度からのルール変更の意図について

  • 今回はチーム選抜に大きな影響を与えない範囲で ICPC への参加を容易にする目的で、競技用コンピュータの事前セットアップに関する制約を緩和しました。
  • 一方で横浜大会の競技ルールは国内予選と異なる箇所があります。詳しくは横浜大会の Contest Regulations を参照してください。

国内予選における競技ルールを以下に示します。

  1. 使用できるプログラミング言語
    競技参加者が使用できるプログラミング言語は C, C++, Java, Kotlin, Python3 のみです。
    利用するプログラミング言語で標準で提供されている機能、ライブラリは利用して構いません。
    また、上記のプログラミング言語で利用できる外部ライブラリ (Boost, NumPy, AC Library など) を事前にセットアップし、競技中にプログラム実行して構いません。
    開発環境(Eclipse, Visual Studio 等)は使用して構いません。
    プログラム内において他言語によるプログラム(perlなど)を起動しているプログラムは解答とは認められません。
  2. 競技中に参照できる情報
    競技者は競技実施中に次の情報を参照して構いません:手書きのメモ、印刷物(参考書、辞書、アルゴリズムのメモやプログラムをプリントアウトしたものを含む)、プログラミング言語や開発環境に関する標準的な電子化された仕様書やマニュアル (OSやプログラミング言語処理系と一緒に標準的にインストールされる man、info 等)、プログラミング言語や開発環境の仕様文書や標準的マニュアルを事前に入手してダウンロードしておいたもの(Java API document, C++ reference など)。
    また、サンプルプログラム、アルゴリズムの記述、開発環境の設定、作業用ディレクトリなどを競技に使用するマシンに前もって設置、準備し、競技中にそれらを利用して構いません。開発環境やその拡張機能などのソフトウェアを事前にセットアップして構いません。ただし後述するように国内予選システム以外のサイトにアクセスするソフトウェアや拡張機能を利用してはいけません。
  3. 自チームの競技者以外の者との相談の禁止
    競技中、競技者は自チームの競技者以外の者と相談してはなりません。 コーチ、ならびに、監督員との相談も禁止されています。 ただし、システムやネットワークのトラブルへの対応法を監督員を通じて大学等会場の専門スタッフに相談することは許されます。
  4. ネットワークアクセスの禁止
    競技中、競技者は国内予選システム以外のサイトにアクセスすることは許されません。例外として、国内予選システムの URL を確認するために過去のメールを参照することは許可します。 ftp、ssh 等のリモートアクセスコマンドによって他のマシンにアクセスすることも禁止します。競技中のSNSの利用、チャットや電子メールの送受信も許されません。
    特に、 GitHub Copilot などのように外部サイトへのアクセスを要するツールやエディタの拡張機能の使用は認められません。プログラムによって外部サイトにアクセスして情報を得る行為も認められません。
    審判団に連絡する必要が生じた場合、監督員からメールを送って下さい。そのためのメールアドレスは、競技中に問題の閲覧や解答の提出を行うWebページに掲載されます(事前には公開されません)。
  5. 使用する計算機は 1 台
    1 チームには 3 名の競技者がいますが、 競技にはチーム全員で 1 台の計算機のみ使用できます。 また、その計算機で使用できるのはマウス、キーボード、ディスプレイ、プリンタ各 1 台だけとします。複数チームがプリンタを共用する場合は、他チームのプリントアウトを誤って見てしまうことがないように、監督員がプリンタを管理するようにしてください。
    また、プリンタが少ない等の事情がある場合には、監督員が代理で問題を印刷し配布することは許されます。
    競技に使用する1台の計算機以外の電子機器、たとえば電卓や電子辞書、スマートフォンは使用してはなりません。
  6. プログラム自動生成ツールの使用禁止
    プログラムの自動生成が可能なツールの使用は禁止します。大規模言語モデルなどの生成AIはプログラムの自動生成機能を持っていることがあるため、ローカル環境でこれらのモデルを実行する行為も禁止します。
  7. 監督員からの報告書
    監督員の方へ: 競技終了後、 監督員の方から「参加チームに不正行為がなかったこと」を御報告頂きます。 具体的な方法は追ってお知らせいたします。

【競技ルール FAQ】

  • Q1. 競技ルール 1 において使用できるプログラミング言語を定めていますが、これはチームごとに1つの言語のみを使えるということですか、それとも、問題ごと、解答ごとに異なる言語を使ってもよいのですか?
    A1. 後者です。各チームは、問題ごとに、C, C++, Java, Kotlin, Python3 のいずれかを選んで解答してください。問題ごとにプログラミング言語を変えても構いませんし、ある問題への提出が誤答となった後、別の言語で作りなおして解答を提出しても構いません。
  • Q2. 競技ルール5 において使用できる計算機が1台となっていますが、ノートパソコンのモニター部分と外付けディスプレイを利用し、2箇所に同じ画面を出力する(ミラー)ことはできますか。
    A2.いいえ、できません。物理的に1台のディスプレイの利用しか認められません。なお、ディスプレイ等の代わりにプロジェクターや解像度の高い別のディスプレイ等の利用は認められますが、その場合は、接続したプロジェクターや別のディスプレイのみに画面を出力しノートパソコンのモニター部分は利用しないで下さい。
  • Q3. 言語についてですが、どの標準規格の使用が認められているかがルールに記載されていないですが、任意の規格が認められているのですか?
    A3. リストにあるプログラミング言語(C, C++, Java, Kotlin, Python3)であれば、バージョンは問いません。
  • Q4. キーボード 1 台だけとは、同時にキーボードを使用することを禁止するのであって、複数キーボードを繋げておいて、計算機使用者によってキーボードを使い分けるというのは問題ないのでしょうか?
    A4.いいえ、認められません。複数のキーボードを利用したことになります。やむを得ない場合を除き、競技中にキーボードの交換は認められません。
    例えば、下記のことは認められます:

    • ノートパソコンに外付けキーボード1台をつなげ、ノートパソコンに備え付けのキーボードを使わずに外付けキーボードのみ利用する。
    • 競技中、飲み物をこぼしてしまうなどの理由で、キーボードが動かなくなった。監督員の許可のもと、キーボードを取り替えた。
    • チーム内に、選手によって JP 配列と US 配列の好みがあるので、ソフトウェア的に切り替える。
  • Q5. Python の threading, C++11のstd::thread などの言語標準機能で使用できるマルチスレッドは使用しても構わないですか?
    A5.はい、認められます。標準機能の利用は問題ありません。
  • Q6. LibreOffice Calc やエクセルなどの表計算ソフトを使用して考察するのは良いですか?
    A6. はい。利用できます。
  • Q7. 印刷に際して、コーチが手伝ってもかまいませんか?
    A7. 各大学の状況でやむを得ない事情があり監督員だけでは配布等が難しい場合には、競技の平等性についてご考慮の上で、監督員のご裁量でご判断ください。
  • Q8. 監督員1人につき、部屋は1部屋でしょうか
    A8. はい、それを想定していますが、(ガラス張りの部屋が続くなど、)監督員の目が届くのであれば、その限りではありません。競技ルールについてご理解をいただいた上で、監督員のご裁量でご判断ください。
  • Q9. 同じ大学で複数人の監督員がいてもよいでしょうか。
    A9. はい、キャンパスが違う、部屋が違うなど色々な事情があろうと思いますので、状況にあわせて監督員が複数人いても問題ありません。
  • Q10. サブプロセスとして他のプログラムを起動するプログラムを作ってもいいですか。
    A10. 認められません。
  • Q11. C++のGNU拡張を使ってもよいですか。
    A11. はい。利用できます。
  • Q12. C++ の #include <bits/stdc++.h> を使ってもよいですか。
    A12. はい。利用できます。

Rules for Japan Online First-round Contest:

  1. Programming languages
    The programming languages that participants can use in the competition are C, C++, Java, Kotlin, and Python3.You may use the standard features and libraries provided by the programming language systems.
    Additionally, you may set up in advance and use external libraries available for the aforementioned programming languages (such as Boost, NumPy, AC Library, etc.)  during the competition.
    You are allowed to use development environments (such as Eclipse, Visual Studio, etc.).

    Programs that invoke other languages (such as Perl) are not allowed as solutions.
  2. Information that can be referenced during the competition
    You are allowed to reference the following information during the competition: handwritten notes, printed materials (including reference books, dictionaries, notes on algorithms, and printed programs), and standard electronic specifications or manuals on programming languages or development environments (such as man and info pages typically installed with OS and programming language environments). You may also use specification documents and standard manuals for programming languages or development environments that have been downloaded in advance (such as Java API documents or C++ references).
    Additionally, you may prepare sample programs, algorithm descriptions, development environment settings, working directories, etc., on the machine used for the competition,   for use in the competition. It is also permissible to set up software for development environments and their extensions in advance. However, as stated later, software or extensions that access sites other than the domestic contest system are not allowed.
  3. No contact with non-team members
    During the competition, you are not allowed to discuss with anyone except for the members of your team.  Discussing with coaches or proctors is also prohibited.  You are allowed, however, to consult system and/or network trouble issues with the staff in charge via the proctor.
  4. Prohibition of remote accesses
    During the competition, competitors are not allowed to access any sites other than the domestic contest system. As an exception, you may refer to your email history to check the URL of the domestic contest system. Accessing other machines using remote access commands such as FTP or SSH is also prohibited. The use of social networking services (SNS), chat, or sending and receiving emails during the competition is not allowed.
    In particular, the use of tools or editor extensions that require access to external sites, such as GitHub Copilot, is strictly prohibited. Programs that access external sites to obtain information are also not permitted.
    If you need to contact the judges, please ask the proctor to send an email. The email address for this will be provided on the Web page used for viewing problems and submitting solutions during the competition (it will not be disclosed in advance).
  5. Only one computer per team
    Each team consists of three competitors, but only one computer may be used by the team during the competition. Furthermore, only one mouse, one keyboard, one display, and one printer may be used with that computer. If two or more teams are sharing a printer, proctors should manage the printer to ensure that competitors do not accidentally see printouts of other teams.
    Additionally, if available printers are limited, proctors may print and distribute the problems on behalf of the competitors.
    You may not use electronic devices other than those used for the competition, such as calculators, electronic dictionaries, or smartphones.
  6. Prohibition of automatic code generation tools
    The use of tools capable of automatic code generation is prohibited. This includes generative AI systems with code generation capabilities. Running these models in a local environment is also prohibited.
  7. Reports by proctors
    To Proctors: After the contest, please send to the Organizing Committee a completed form to declare that no responsible teams acted dishonestly or engaged in unfair practice. Details are to be announced.