国内予選における競技ルールを以下に示します.
※ 10月31日現在で議論されている特別競技ルールです.実行委員会内の以後の議論で変更の可能性があります.何かお気づきの点がありましたら,お寄せ下さい.
※ このルールは2020 国内予選に向け特別に制定したもので,2021年3月の横浜大会以降の競技ルールの先例にはなりません.
※ 事前準備に関する質問を多数もらいましたので,考え方を示しました.
【履歴】
10/12 公開しました.
10/14 一部変更しました.大きな変更としては,モニターの制限をはずし,Python2 関連の項目を削除したことです.
10/20 自チームの定義を記載しました.QAを追加しました.
10/22 (仮)を外しました.事前準備の考え方へのリンクをつくりました.
10/23 QAを追加しました.
10/31 事前準備に関する制限を大幅に変更しました.QAを追加しました.
11/04 QAを追加しました.
- 使用できるプログラミング言語
競技参加者が使用できるプログラミング言語は C, C++, Java, Kotlin, Python3 のいずれかのみです.
利用するプログラミング言語で標準で提供されている機能,ライブラリは利用して構いません.
開発環境(Eclipse, Visual Studio 等)は使用して構いません.
プログラム内において他言語によるプログラム(perlなど)を起動しているプログラムは解答とは認められません. - 競技中に参照できる情報
競技者が競技実施中に参照して良い情報は,手書きのメモ,印刷物(参考書,辞書,アルゴリズムのメモやプログラムをプリントアウトしたものを含む)と,プログラミング言語や開発環境に関する標準的な電子化された仕様書やマニュアル (OSやプログラム言語処理系と一緒に標準的にインストールされる man、info 等),また,プログラミング言語や開発環境の仕様文書や標準的マニュアルを事前にWebから入手してダウンロードしておいたもの(Java API document, http://en.cppreference.com/w/File:html_book_20151129.zip 等)に限られます.これら以外のサンプルプログラムやアルゴリズム記述等の情報を競技に使用するマシンに前もって設置、準備してはなりません.ローカルにある全てのファイルを参照することを認めます. - 自チームの選手以外の者との相談の禁止
競技中,競技者は自チームの選手以外の者と相談してはなりません. コーチとの相談も禁止されています. ただし,システムやネットワークのトラブルへの対応法を相談することは許されます. - ネットワークアクセスの禁止
所定のWWWサイトにおける問題の閲覧,解答の提出, 順位の確認以外の目的で Web ページにアクセスすることは許されません.ただし,自チームの者と相談するためのみにSNS等へアクセスすることは許されます.
審判団に連絡する必要が生じた場合,実行委員会へ電話をください.そのための電話番号は競技中に問題の閲覧や解答の提出を行うWebページに掲載されます(事前には公開されません).
- 使用する計算機は 一人 1 台まで
1 チームには 3 名の競技者がいますが,競技には一人 1 台まで計算機を使用できます.AWSなどのクラウドは利用出来ません. - プログラム自動生成ツールの使用禁止
yacc や lex といったプログラムの自動生成が可能なツールの 使用は禁止します. - ネットワークやマシントラブル等
競技時間内にてネットワークやマシンのトラブル等でコーディングができないなどのトラブルがあっても個別に競技時間を延長することはありません.予備の通信手段(携帯電話機によるテザリングなど)の準備を推奨します. - 問題開示の禁止
競技終了までは問題を自チームの選手以外に開示することは許されません.
【競技ルール FAQ】
- Q1.3人一緒に参加する予定です.PCは3人で1台にしなけれなりませんか?
A1.いいえ.3人一緒だったとしても3台活用してもかまいません.ただし,2人で1台なども認められます. - Q2. 3人で連絡をとるのはどうしたらよいでしょうか.
A2. 会議システム(Zoom, Hangout, Skype等)やSNS等を活用してかまいません. - Q3. 3人で連絡をとらなくても競技に参加できてしまいます.それでもいいでしょうか.
A3. かまいませんが,同じ問題に一緒に Submit するなどすると,ペナルティがかかりますので不利になります.リアルタイムに連絡をとることを推奨します. - Q4. 競技ルール 1 において使用できるプログラミング言語を定めていますが,これはチームごとに1つの言語のみを使えるということですか、それとも、問題ごと、提出ごとに異なる言語を使ってもよいのですか?
A4. 後者です.各チームは、問題ごと,提出ごとに,C, C++, Java, Kotlin, Python3 のいずれかを選んで解答してください.問題ごとにプログラミング言語を変えても構いませんし,ある問題への提出が誤答となった後,別の言語で作りなおして解答を提出しても構いません.ただし,「成績判定ルール」内の「完了の判定・入力データ」にあるように,完了の条件は「同一のプログラムが、まだ解いていない入力データ2つに対し連続で正答を出力することができた」ことであることに注意してください. - Q5. 言語についてですが,どの標準規格の使用が認められているかが
ルールに記載されていないですが,任意の規格が認められているのですか?
A5. リストにあるプログラミング言語(C, C++, Java, Kotlin, Python3)であれば,バージョンは問いません. Q6. 競技ルール2 に競技中に参照可能な電子マニュアルとして,「http://en.cppreference.com/w/File:html_book_20151129.zip」 が挙げられていますが, このサイトの日本語版 「http://ja.cppreference.com/book/」 を電子マニュアルとすることは許されていますでしょうか?
A6. はい,認められます.Webから入手し,事前にダウンロードしておいてください.-
Q7. 事前準備として,プロジェクトやコンパイル用のシェル,空のファイルをつくっておいても良いですか?
A7.いいえ,認められません.事前の電子的な準備は全て認められません.なお,必要な項目を列挙したメモ紙を用意し,本番その紙を見ながらファイルを作成することは認められています.認められます. - Q8.Python の threading, C++11のstd::thread などの言語標準機能で使用できるマルチスレッドは使用しても構わないですか?
A8.はい,認められます.標準機能の利用は問題ありません. - Q9.PCの立ち上げも事前の電子的準備に含まれますか
A9.PCやソフトウェアの起動は問題ありません.ここでの電子的準備とは,事前のライブラリ等の入力を指します. - Q10.事前準備はどこまで許されますか? 例えば,ICPC競技用フォルダを作っても良いですか?
A10.認められません認められます. - Q11.競技が開始してから記述したプログラムを、slackなどを通して端末間で共有することは許されますか?
A11.はい,同じチーム内であれば認められます. - Q12.自宅のPCには,競技で禁止されているプログラムがたくさん格納されています.全て削除する必要がありますか?
A12.削除する必要はありませんが,競技中に閲覧,使用実行しないで下さい. - Q13. PCにプリンターがたくさんつながっているのですが,プリンター一台という制限はありますか?
A13. いいえ,ありません.プリンターの台数制限はありません. - Q14. コーチが代理で問題を印刷してもよいでしょうか?
A14. いいえ,認められません.「8. 問題開示の禁止」に抵触します. - Q15. 他のチームが本当に不正をしていないかどうか,不安です.
A15. 競技の実施にあたっては参加チームを信頼し,ルールの遵守を期待することを基本においています.
今年度はコロナの影響によって所属校に集まっての参加が難しいチームが少なくないことから,ルールにさまざまな修正を施さざるをえなかったのですが,そのことにさまざまな不安を抱えられていることと思います.監督者不在による公平性への懸念など,様々な観点に関して運営側でも議論を重ねてきました.その結論として,参加チームを信頼する以外に競技を成立させる方法はないと判断し,上記のようにルールを設定いたしました.なお当然ですが,不正が発覚した場合には厳正に対処いたします. - Q16. 同時に3人が3台を用いて並列に異なる問題を同時にコーディングしてよいということですか?
A16. はい,その通りです. - Q17. チームメンバーと連絡を取る,具体的にはテキストチャット,通話,ビデオ通話,写真を撮影して共有,といったことを行うために,スマートフォンやタブレット端末を使用した場合,計算機 1 人 1 台のルールに反しますか?
A17. チームメンバーとの連絡やネットワークの問題が生じたときのみ利用を認めます.ただし,その端末上でプログラムを実行することは認められませんので,ご注意下さい. - Q18. コンテスト中にオンラインのリファレンスを参照・ダウンロードすることは許可されますか?
A18. いいえ,認められません.必要な場合は,事前にダウンロードしておいて下さい. - Q19. チケットシステムを使用することは認められますか?
A19. チームメンバーとの連絡にのみ使用を認めます. - Q20. Google Colaboratoryを使用することは認められますか?
A20. いいえ,オンラインの開発環境は認められません.競技ルール4, 5に抵触します. - Q21. 事前に準備したファイルの内容をコピーして貼り付けることは認められますか?
A21. はい,認められます. - Q22.コーディング環境においてライブラリ/スニペット等を自動で挿入する設定は許容されますか?
A22.そのような環境も許容されます.ただし、挿入される内容が競技中 インターネット越しに動的にダウンロードされたりすることの無いようにご注意下さい. - Q23. Google スプレッドシートやGoogle Docsを使用することは認められますか?
A23. チームメンバーとの連絡にのみ使用を認めます. - Q24. Visual Studio Live Shareなどの機能によってプログラムを同期する行為は認められますか?
A24. チームメンバーとの連絡にのみ使用を認めます. - Q25. 提出するプログラムのサイズに上限はありますか?
A25. ファイルサイズの上限は512KBです.