【FFSプロコン】解答の判定とステータスコード


2026年5月22日 13:31に投稿された

コンテストに参加し、問題の解答を提出すると、解答は自動的に「判定」されます。

「判定器」が、解答のプログラムを実行し、テストに合格すると、得点が付与されます。各問題には、複数のテストケースが設定されており、テストケースごとに部分点が付与されます。

解答の判定フロー

1.「判定器」は、解答のプログラムを実行できるよう、解答のコードをコンパイル&リンクします(言語依存)。

  • もし、コンパイルエラーが発生したら、内容に応じて、解答を修正し、再提出してください。

2.「判定器」は、各問題に設定された、複数のテストケースについて、順次、プログラムを実行します。

  • 各テストケースに合格( AC )すると、「採点」の対象となり、得点が与えられます(部分点)。すべてのテストケースに合格するか、途中で失敗( AC 以外)するまで、繰り返します。失敗すると、実行終了します。
  • 途中のテストケースで失敗( AC 以外)した場合は、合格( AC )したテストケースまでの、部分点の合計が、その問題の得点として付与されます。

もし、 「判定」でテストケースの実行に失敗した場合 は、 ステータスコード (下記)に応じて、解答を修正し、再提出してください。


ステータスコード(status code)

提出された、解答のプログラムを「判定」するさいに発生しうる、すべての ステータスコードと、その説明を示します。 判定のステータスコードについて、優先度の低い順に、列挙します。
(なお、判定が AC 以外の場合には、ひとつのテストケースに、複数のステータスコードが、与えられる可能性が、しばしば、あります。その場合は、最も優先度の高い、ステータスコードが表示されます。)

1. AC - Accepted

プログラムはテストに合格しました。場合によっては、「採点者」からの追加フィードバックが付随することもあります。

2. WA - Wrong Answer

プログラムは実行中にクラッシュしませんでしたが、生成された出力が間違っていました。何が間違っていたかを示す追加のフィードバックが付随する場合があります。

3. IR - Invalid Return

プログラムはゼロ以外の終了コードで戻りました( C++ などのネイティブ言語を使用していない場合は、クラッシュしています)。 Python や Java などの言語の場合は、通常、プログラムがスローした例外の名前(それぞれ 、 NameError または java.lang.NullPointerException )が付随します。

4. RTE - Runtime Error

プログラムによってランタイムエラーが発生しました。これは、C や C++ などのネイティブ言語でのみ発生します。「判定器」は、多くの一般的な RTE を、以下で説明する、より便利な説明に、マッピングします。

フィードバック 説明
segmentation faultbus error SIGSEGV または SIGBUS によって、プログラムが強制終了されました。通常、これはメモリ不足を意味しますが、場合によっては、範囲外の配列にアクセスしていることも意味します。
floating point exception プログラムがゼロ除算などの不正な算術演算を実行しました。
killed 何らかの理由で (理由は不明)、ランタイムによって、プログラムが強制終了されました。
{} syscall disallowed プログラムが許可されていないシステム コールを使用しようとしたときに発生します。疑わしい行為をしていない限り、このメッセージが表示されることはありません。
std::bad_alloc new が十分なメモリを割り当てることができませんでした。
failed initializing プログラムがグローバルスコープで定義されたデータを多用しているため、起動時のメモリ制約内に収まりきりません。典型的な例としては、 64 MB のメモリ制限がある問題について、 int arr[10000][10000] のようなコードがあります。この場合、前述の配列は、 381 MB を占有し、許容される制限をはるかに超えます。
5. OLE - Output Limit Exceeded

プログラムが stdout に出力したデータが多すぎます。通常は、 256 MB 超です (ただし、問題によっては、個別の制約 - 通常は、より大きな制約 - がある場合があります)。

6. MLE - Memory Limit Exceeded

プログラムのメモリが不足しています。問題の「メモリ制限」を超えました。

場合によっては、RTE として現れ、segmentation faultstd::bad_alloc が不随する ことがあります。

7. TLE - Time Limit Exceeded

プログラムの実行に時間がかかりすぎました。問題の「制限時間」を超えました。

8. IE - Internal Error

「判定器」がエラーに遭遇した、もしくは、問題作成者の設定が正しくない ことを意味します。

参考

出典


コメント

現時点でコメントはありません。