競技ルール / Rules
【変更履歴】
- 5月27日 公開しました
An English version follows Japanese.
国内予選における競技ルールを以下に示します。
1. 使用できるプログラミング言語
競技参加者が使用できるプログラミング言語は C, C++, Java, Kotlin, Python 3 のみです。 競技者はプログラムのソースコードを国内予選システムに提出します。ソースコードは国内予選システムのサーバ上でコンパイル、実行されます。
2. 競技中に参照できる情報
競技者は競技実施前に紙媒体の持ち込み物(手書きのメモ、参考書、辞書など)を競技スペースに持ち込み、競技中に参照して構いません。また、競技に用いるマシンにファイルやソフトウェアを事前にセットアップして競技中に利用して構いません。ただし後述するように国内予選システム以外のサイトにアクセスするソフトウェアを競技中に利用してはいけません。
3. 自チームの競技者以外の者との相談の禁止
競技中、競技者は自チームの競技者以外の者と相談してはなりません。コーチ、ならびに、監督員との相談も禁止されています。 例外として、システムやネットワークのトラブルへの対応法を監督員を通じて大学等会場の専門スタッフに相談することは許されます。
4. ネットワークアクセスの禁止
競技中、競技者は国内予選システム以外のサイトにアクセスすることは許されません。例外として、国内予選システムの URL を確認するために過去のメールを参照することは許可します。ftp、ssh 等のリモートアクセスコマンドによって他のマシンにアクセスすることも禁止します。競技中の SNS の利用、チャットや電子メールの送受信も許されません。 特に、外部サイトへのアクセスを要するツールやエディタの拡張機能の使用は認められません。プログラムによって外部サイトにアクセスして情報を得る行為も認められません。 審判団に連絡する必要が生じた場合、国内予選システムから Clarification Request を送って下さい。返答はシステム上にて行います。
5. 使用する計算機は 1 台
1 チームには 3 名の競技者がいますが、競技にはチーム全員で 1 台の計算機のみ使用できます。また、その計算機で使用できるのはマウス、キーボード、ディスプレイ、プリンタ各 1 台だけとします。複数チームがプリンタを共用する場合は、他チームのプリントアウトを誤って見てしまうことがないように、監督員がプリンタを管理するようにして下さい。 また、プリンタが少ない等の事情がある場合には、監督員が代理で問題を印刷し配布することは許されます。 競技に使用する 1 台の計算機以外の電子機器、たとえば電卓や電子辞書、スマートフォンは使用してはなりません。
6. プログラム開発環境
プログラムの自動生成が可能なツールの使用は禁止します。特に、生成 AI システム(GitHub Copilot, CLion AI Assistant など)の利用はローカル環境であっても禁止します。 開発環境(Eclipse, Visual Studio, CLion など)は使用して構いません。エディタや開発環境が提供するルールベースによる補完機能、コードフォーマッタは利用して構いません。
7. 監督員からの報告書
監督員の方へ: 競技終了後、監督員の方から「参加チームに不正行為がなかったこと」を御報告頂きます。具体的な方法は追ってお知らせいたします。
競技ルール FAQ
- Q1. 競技ルール 1 において使用できるプログラミング言語を定めていますが、これはチームごとに 1 つの言語のみを使えるということですか、それとも、問題ごと、解答ごとに異なる言語を使ってもよいのですか?
- A1. 後者です。各チームは、問題ごとに、C, C++, Java, Kotlin, Python 3 のいずれかを選んで解答して下さい。問題ごとにプログラミング言語を変えても構いませんし、ある問題への提出が誤答となった後、別の言語で作りなおして解答を提出しても構いません。
- Q2. 競技ルール 2 において事前にセットアップしてよいファイルとは具体的にどのようなものですか?
- A2. 例えば以下のファイルをセットアップして構いません。
- 外部サイトから取得したソースコードやドキュメント
- 自作のプログラムファイル
- アルゴリズムの記述
- 開発環境の設定
- 作業用ディレクトリ
- A2. 例えば以下のファイルをセットアップして構いません。
- Q3. 競技ルール 5 において使用できる計算機が 1 台となっていますが、ノートパソコンのモニター部分と外付けディスプレイを利用し、2 箇所に同じ画面を出力する(ミラー)ことはできますか。
- A3. いいえ、できません。物理的に 1 台のディスプレイの利用しか認められません。なお、ディスプレイ等の代わりにプロジェクターや解像度の高い別のディスプレイ等の利用は認められますが、その場合は、接続したプロジェクターや別のディスプレイのみに画面を出力しノートパソコンのモニター部分は利用しないで下さい。
- Q4. 言語についてですが、どのバージョンが使われるのですか?
- A4. 「ジャッジシステム詳細」ドキュメントを参照して下さい。
- Q5. キーボード 1 台だけとは、同時にキーボードを使用することを禁止するのであって、複数キーボードを繋げておいて、計算機使用者によってキーボードを使い分けるというのは問題ないのでしょうか?
- A5. いいえ、認められません。複数のキーボードを利用したことになります。やむを得ない場合を除き、競技中にキーボードの交換は認められません。
例えば、下記のことは認められます:
- ノートパソコンに外付けキーボード 1 台を繋げ、ノートパソコンに備え付けのキーボードを使わずに外付けキーボードのみ利用する。
- 競技中、飲み物をこぼしてしまうなどの理由で、キーボードが動かなくなった。監督員の許可のもと、キーボードを取り替えた。
- チーム内に、選手によって JP 配列と US 配列の好みがあるので、同一のキーボードについてレイアウトの解釈をソフトウェアで切り替える。
- A5. いいえ、認められません。複数のキーボードを利用したことになります。やむを得ない場合を除き、競技中にキーボードの交換は認められません。
例えば、下記のことは認められます:
- Q6. LibreOffice Calc やエクセルなどの表計算ソフトを使用して考察するのは良いですか?
- A6. はい。利用できます。
- Q7. 印刷に際して、コーチが手伝っても構いませんか?
- A7. 各大学の状況でやむを得ない事情があり監督員だけでは配布等が難しい場合には、競技の公平性についてご配慮の上で、監督員のご裁量でご判断下さい。
- Q8. 監督員 1 人につき、部屋は 1 部屋でしょうか
- A8. はい、それを想定していますが、(ガラス張りの部屋が続くなど、)監督員の目が届くのであれば、その限りではありません。競技ルールについてご理解を頂いた上で、監督員のご裁量でご判断下さい。
- Q9. 同じ大学に複数人の監督員がいてもよいでしょうか。
- A9. はい、キャンパスが違う、部屋が違うなど色々な事情があろうと思いますので、状況にあわせて監督員が複数人いても問題ありません。
- Q10. C++ の GNU 拡張を使ってもよいですか。
- A10. はい。利用できます。
- Q11. C++ の
#include <bits/stdc++.h>
を使ってもよいですか。- A11. はい。利用できます。
- Q12. 例えば通常の Kotlin 開発では Gradle を使って workspace を構築することは一般的なので、コンテストでもローカルのビルド、テスト環境を構築するのに使う場合、普通の設定だとビルド時にリモートにパッケージを取りに行ってしまうので外部アクセスするツールに該当する可能性があります。一律禁止でしょうか。
- A12. 事前にダウンロードして下さい。
- Q13. AtCoder Library などの外部ライブラリを利用する場合、そのソースコードを貼り付ける必要はありますか。
- A13. 標準ではない外部ライブラリを利用する場合、そのライブラリをソースコード上に含め、提出コード単体でコンパイルできる形にして下さい。
Note
「ジャッジシステム詳細」ドキュメントは準備ができ次第公開いたします。
Rules for Japan Online First-Round Contest:
1. Programming languages
Contestants may use only the following programming languages: C, C++, Java, Kotlin, and Python 3. Contestants must submit their source code to the contest system, where it is compiled and executed on the contest server.
2. Information that can be referenced during the contest
Contestants may, before the contest begins, bring printed materials—such as handwritten notes, reference books, and dictionaries—into the contest area and consult them during the contest. Contestants may also place any files and software on their computer in advance for use during the contest. However, as explained below, contestants must not use any software that accesses websites other than the contest system during the contest.
3. No contact with non-team members
During the contest, contestants are not allowed to communicate or consult with anyone except for contestants’ own teammates. This prohibition includes coaches and proctors. As the only exception, if you encounter system or network problems, you may ask the proctor to relay your inquiry to the technical staff at the venue.
4. Prohibition of remote access
During the contest, contestants are not allowed to access any website other than the contest system. The only exception is that contestants may refer to their email history to look up the URL of the 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 applications, or email is prohibited during the contest. Tools or editor extensions that contact external services are strictly prohibited. Running programs that fetch information from external sites are also prohibited. If contestants need to contact the judges, submit a clarification request through the contest system; all replies will be delivered there as well.
5. Only one computer per team
Each team of three contestants may use only one computer during the contest. That computer may be connected to no more than one mouse, one keyboard, one display, and one printer. If two or more teams share a printer, the proctors should manage the printer to ensure that teams do not accidentally see printouts of another team. Additionally, if available printers are limited, the proctors may print and distribute the problem statements on behalf of the teams. No electronic devices other than that one computer, such as calculators, electronic dictionaries, or smartphones, may be used during the contest.
6. Programming environment
The use of any tool that can automatically generate code is prohibited. This includes generative-AI systems (e.g., GitHub Copilot or CLion AI Assistant) even when they are run locally. Contestants are allowed to use development environments (e.g., Eclipse, Visual Studio, or CLion) on their own machine while developing their solutions. Rule-based editor or development environment features, such as ordinary snippet expansion, standard auto-completion, and code formatters, may be used.
7. Reports by the proctors
To Proctors: After the contest, please send to the Organizing Committee a completed form to declare that no teams under your supervision acted dishonestly or engaged in unfair practice. Details are to be announced.
FAQ on competition rules
- Q1. The rule 1 lists the programming languages to be used in the contest. Does it mean that only one of these languages can be used by a team? Or, more than one can be used by a team?
- A1. The latter. Choose one of C, C++, Java, Kotlin, and Python 3 to answer each of the problems. Different languages can be used for different problems, and, if your answer is judged incorrect, you may write another answer in a different language and submit it.
- Q2. Under rule 2, what kinds of files may be set up on the computer in advance?
- A2. Contestants may set up, for example, the following:
- Source code or documents obtained from external sites
- Your own program files
- Written descriptions of algorithms
- Configuration files for the development environment
- Working directories
- A2. Contestants may set up, for example, the following:
- Q3. The rule 5 says only one computer can be used. Can we use a laptop and an external display, showing the same screen image on both?
- A3. No, you may not. Only one physical display can be used. You may use an external display or a projector, but, in that case, the monitor display on the laptop should not be used.
- Q4. What standard of the languages will be used?
- A4. Please refer to the “Judging Details” document.
- Q5. Does “one keyboard” mean using only one keyboard at a time? May we connect multiple keyboards to the computer and use one of them at a time?
- A5. No, you may not. That is regarded as using more than one keyboard. Changing keyboard hardware during the contest is allowed only in emergency cases. The following are allowed, however:
- Using one external keyboard connected to a laptop and not using the keyboard of the laptop,
- changing malfunctioning keyboard due to, for example, spilled drink, under the supervision of the proctor, or
- switching key mapping of the same physical keyboard to and from JP and US, depending on individual preference.
- A5. No, you may not. That is regarded as using more than one keyboard. Changing keyboard hardware during the contest is allowed only in emergency cases. The following are allowed, however:
- Q6. May we use spreadsheet software such as LibreOffice Calc or Microsoft Excel for analyzing the problems?
- A6. Yes, you may.
- Q7. May we ask the coach to help obtain printouts?
- A7. Only if the circumstances do not allow the proctor to distribute printouts smoothly. The proctor may judge appropriateness with due fairness consideration.
- Q8. Should all the teams supervised by one proctor be in a single room?
- A8. That is intended, but the proctor may supervise teams in separate rooms if possible. For example, when such teams in separate rooms can be seen through windows. The proctor can judge the appropriateness by understanding the competition rules.
- Q9. Can a single institution have more than one proctor?
- A9. Yes. Different institutions have different facilities: more than one building or remote campuses, in which cases two or more proctors may be required.
- Q10. Can we use GNU extensions of C++?
- A10. Yes, you can.
- Q11. Can we use
#include <bits/stdc++.h>
for C++?- A11. Yes, you can.
- Q12. It is common in development with Kotlin to use Gradles to build workspaces, which usually fetch packages in remote sites. Is that prohibited as a tool with external accesses?
- A12. You should download such packages in advance before the contest starts.
- Q13. When a program uses external libraries such as AtCoder Library, should their source codes be pasted in the submitted program?
- A13. To use non-standard external libraries, they should be included in the program source code, making its compilation possible by itself.
Note
We will publish the “Judging Details” document once it’s ready.