競技の進め方
- 国内予選の開始時刻になると、事前に通知されたWebサイト上に問題が公開されます。
- 各チームは好きな問題を選んでプログラムを書き、書き終えたならば与えられた入力データに対して手元のマシンでプログラムを実行します。
- そして、出力(実行結果)とプログラム(ソースプログラム)を所定の方法(Web経由)で審判団に提出し、正解であるかどうかの判定を受けます。
- これを繰り返していき、より多くの問題を、より早く解くことを競います。
正解の判定・入力データ
- 「同一のプログラムが、まだ解いていない入力データ2つに対し連続で正解を出力することができた」ことをもって、その問題を解くことができたと見なします。
- 入力データは、各問題ごとに 4 個用意されています。
- 1つの入力データについて正解を出力することができた場合、別の入力データが渡され、それに対し同じプログラムにより正解を出力することができるかどうかを判定します。
- あるプログラム提出に対して「1つ目の入力データに対し正解、2つ目に対し不正解」となると、 次のプログラム提出時には、前回の2つ目の入力データから検証を行うこととなります。
- 例を下記に示します。
最初に提出したプログラムp1で入力データd1に対して正解した場合、続いて同じプログラムp1で別の入力データd2についても問題を解くように求められます。
そこで正解した場合は「その問題は正解した」という扱いになります。
そうでない場合、別のプログラムp2を作り、入力データ(d1ではなく)d2に対し問題を解くことになります。 d2を解くことができた場合、さらに別の入力データd3を解くことになります。 - 「1つ目正解、2つ目不正解」を3回繰り返すと、入力データがなくなってしまいその問題が解けなくなってしまいます。
- なお、国内予選では、手元のマシンでの実行となるため、実行時間やメモリ使用量については、審判団では制限・判定しません。
順位付け
順位(成績)は次のルールで決まります。
- 正解数の多いチームが上位
- 正解数が同じ場合は、最終的に解くことができた各問題について、下記により算出されたペナルティの和の小さい方が上位
- 競技開始時間からその問題が解けるまでに要した時間
- それまでに不正解を提出した回数×20分
(解くことができなかった問題の不正解にはペナルティは発生しません。) - 正解状況と対応するペナルティの例を下記に示します。
16:30に競技を開始したとして、
– 問題A 17:10 に正解 → ペナルティ40分
– 問題B 17:30 と 17:50 に誤答を提出;18:10に正解 → ペナルティ100 + 20 × 2 分
– 問題C 18:55 と 19:25 に誤答を提出;最終的に不正解
– 問題D 18:00 に誤答を提出;最終的に不正解
– 問題E 手つかず
であった場合、正解数は 2であり、ペナルティは合計で 180 分となります。