競技ルール

【変更履歴(ルールのみ)】

6月26日 「1. 使用出来るプログラミング言語」に追記があります。


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

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

 

【競技ルール FAQ】

    • Q1. 競技ルール 1 において使用できるプログラミング言語を定めていますが,これはチームごとに1つの言語のみを使えるということですか,それとも,問題ごと,解答ごとに異なる言語を使ってもよいのですか?
      A1. 後者です.各チームは,問題ごとに,C, C++, Java, Kotlin, Python3  のいずれかを選んで解答してください.問題ごとにプログラミング言語を変えても構いませんし,ある問題への提出が誤答となった後,別の言語で作りなおして解答を提出しても構いません.ただし、「成績判定ルール」内の「完了の判定・入力データ」にあるように,完了の条件は「同一のプログラムが,まだ解いていない入力データ2つに対し連続で正答を出力することができた」ことであることに注意してください.
    • Q2.競技ルール5 において使用できる計算機が1台となっていますが,ノートパソコンのモニター部分と外付けディスプレイを利用し,2箇所に同じ画面を出力する(ミラー)ことはできますか.
      A2.いいえ,できません.物理的に1台のディスプレイの利用しか認められません.なお,ディスプレイ等の代わりにプロジェクターや解像度の高い別のディスプレイ等の利用は認められますが,その場合は,接続したプロジェクターや別のディスプレイのみに画面を出力しノートパソコンのモニター部分は利用しないで下さい.
    • Q3. 言語についてですが、どの標準規格の使用が認められているかがルールに記載されていないですが、任意の規格が認められているのですか?
      A3. リストにあるプログラミング言語(C, C++, Java, Kotlin, Python3)であれば,バージョンは問いません.
    • Q4. 競技ルール2 に競技中に参照可能な電子マニュアルとして,「http://en.cppreference.com/w/File:html_book_20151129.zip」 が挙げられていますが,
      このサイトの日本語版 「http://ja.cppreference.com/book/」 を電子マニュアルとすることは許されていますでしょうか?
      A4. はい,認められます.Webから入手し,事前にダウンロードしておいてください.
    • Q5. 事前準備として,プロジェクトやコンパイル用のシェル,空のファイルをつくっておいても良いですか?
      A5. いいえ,認められません.事前の電子的な準備は全て認められません.なお,必要な項目を列挙したメモ紙を用意し,本番でその紙を見ながらファイルを作成することは認められています.
    • Q6.キーボード 1 台だけとは,同時にキーボードを使用することを禁止するのであって,複数キーボードを繋げておいて,計算機使用者によってキーボードを使い分けるというのは問題ないのでしょうか?
      A6.いいえ,認められません.複数のキーボードを利用したことになります.やむを得ない場合を除き,競技中にキーボードの交換は認められません.
      例えば,下記のことは認められます:

      • ノートパソコンに外付けキーボード1台をつなげ,ノートパソコンに備え付けのキーボードを使わずに外付けキーボードのみ利用する.
      • 競技中,飲み物をこぼしてしまい,キーボードが動かなくなった.監督員の許可のもと,キーボードを取り替えた.
      • チーム内に,選手によって JP 配列と US 配列の好みがあるので,ソフトウェア的に切り替える.
    • Q7.Python の threading, C++11のstd::thread などの言語標準機能で使用できるマルチスレッドは使用しても構わないですか?
      A7.はい,認められます.標準機能の利用は問題ありません.
    • Q8.PCの立ち上げも事前の電子的準備に含まれますか
      A8.PCやソフトウェアの起動は問題ありません.ここでの電子的準備とは,事前のライブラリ等の入力を指します.
    • Q9.事前準備はどこまで許されますか? 例えば,ICPC競技用フォルダを作っても良いですか?
      A9. 原則としては認められません.しかし例えば,下記のことが許されます.

      • 3人で共通で利用するPCがなかったので,監督の先生が貸してくれた.監督の先生が,専用のフォルダ(ディレクトリ)を作ってくれた.
      • 大学の共用パソコンを利用することになっていて,担当の方が監督の先生と相談し専用のアカウントやフォルダを作ってくれた.
    • Q10. LibreOffice Calc やエクセルなどの表計算ソフトを使用して考察するのは良いですか?
      A10. いいえ,認められません.
    • Q11. 印刷に際して,コーチが手伝ってもかまいませんか?
      A11.  各大学の状況でやむを得ない事情があり監督員だけでは配布等が難しい場合には,競技の平等性についてご考慮の上で,監督員のご裁量でご判断ください.
    • Q12. 監督員1人につき,部屋は1部屋でしょうか
      A12. はい,それを想定していますが,(ガラス張りの部屋が続くなど,)監督員の目が届くのであれば,その限りではありません.競技ルールについてご理解をいただいた上で,監督員のご裁量でご判断ください.
    • Q13. 同じ大学で複数人の監督員がいてもよいでしょうか.
      A13. はい,キャンパスが違う,部屋が違うなど色々な事情があろうと思いますので,状況にあわせて監督員が複数人も問題ありません.
    • Q14. サブプロセスとして他のプログラムを起動するプログラムを作ってもいいですか.
      A14.  認められません.
    • Q15. C++のGNU拡張を使ってもよいですか.
      A15. -std=gnu++20 オプションは世界大会で使われているので,gnu++17やgnu++20などのC++ GNU拡張は利用してもよいことにします。
    • Q16. c++ の #include <bits/stdc++.h> を使ってもよいですか.
      A16. はい.利用できます.
    • Q17. NumPyなど標準で提供されていないライブラリを検算などに用いても良いでしょうか
      A17. いいえ,認められません.

 

Rules for Japan Online First-round Contest:

  1. Programming languages
    • The programming languages that can be used in the contest are C, C++, Java, Kotlin and Python3.
  2. No electronic preparation
    • No electronic materials (e.g., sample programs, algorithm descriptions, etc.) are allowed. Any such materials shall not be installed in advance on computers used for the contest. Similarly, no removable media, such as flash drive and CD-ROM, shall be used. Use of desktop calculators, electronic dictionaries, mobile phones are also not permitted.
    • Printed materials, such as books, dictionaries, etc. can be used in the contest.
  3. No contact with non-team members
    • Contestants shall contact only other members of the same team during the contest. Note that contestants shall not contact the team coach.
  4. No remote accesses
    • Contestants shall not access the Web except for accessing the contest problems, submitting answers and checking the standings.
    • Electronic mails and chats are also prohibited during the contest.
    • Accessing other machines using remote access commands such as ftp and ssh is also prohibited.
    • Any other type of remote access is prohibited.
    • To communicate with judges, contestants should ask proctors to send emails to judges. The email address of judges will be shown in the web pages for accessing contest problems and submitting solutions.
  5. Only one computer per team
    • Each team can use only one computer. Only one mouse, one keyboard, one display, and one printer can be used at any time during the contest.
  6. No automatic tools for automatic program generation
    • Contestants may not use any programming support tool which can generate programs automatically, such as yacc and lex.
  7. Reports by proctors
    • To Proctors: After the contest, please send to the Organizing Committee a completed form to declare that no teams acted dishonestly or engaged in unfair practice. Details are to be announced.