WAの原因を調査する方法

競プロデバッグツール

COMPETITIVE DEBUG STUDIO

WAの原因を調査する方法

WAは「Wrong Answer」の略で、プログラムは正常に動いているものの、 出力が正解と一致していない状態です。

Competitive Debug Studioでは、失敗したケースの入力・自分の出力・正解出力・差分を確認しながら、 WAの原因を探せます。

まずWA判定を確認する

実行・判定を行うと、右側の実行結果にAC・WA・TLE・REなどの判定が表示されます。 WAと表示された場合は、出力が正解と一致していません。

WA判定が表示された画面

WAの場合、コードが途中で止まっているわけではありません。 そのため、まずは「どの入力で」「どんな出力の違いが出たのか」を確認します。

失敗ケースを選ぶ

WAが発生したケースは、左側のケース一覧に保存されます。 調べたいケースをクリックすると、中央エリアに詳細が表示されます。

失敗ケース一覧

最初は、複雑そうなケースよりも、入力が短いケースから確認するのがおすすめです。 入力が小さい方が、手で追いやすく、原因を見つけやすくなります。

入力・自分の出力・正解出力を比較する

ケース詳細では、入力、自分の出力、正解出力、差分を確認できます。 WAの原因を探すときは、まずこの4つを順番に見ます。

WAケース詳細画面
  • 入力:どんなデータが与えられたか
  • 自分の出力:自分のコードが何を出したか
  • 正解出力:本来出すべき答え
  • 差分:どこが違っているか

例えば、自分の出力が 1 で、正解出力が 127 の場合、 計算式、条件分岐、初期値、ループ回数のどこかが間違っている可能性があります。

WAでよくある原因

WAは、エラーが出ない分だけ原因が分かりにくいです。 まずは次のようなミスを疑うと調査しやすくなります。

原因 確認すること
条件分岐ミス <<=、偶数奇数、境界値を確認する
初期値ミス 答え用の変数が正しい値で初期化されているか確認する
ループ範囲ミス range(n)range(1, n+1) の違いを確認する
出力形式ミス 空白、改行、Yes/No、大文字小文字を確認する
考え方のミス 手計算した答えとプログラムの答えを比べる

修正したら同じケースを再実行する

原因を見つけてコードを修正したら、同じケースを再実行します。 同じ入力で正解できるようになったかを確認することで、修正が効いているか判断できます。

このケースを再実行するボタン

1つのケースだけ直っても、他のケースでWAになることがあります。 そのため、ケース再実行で確認した後は、もう一度まとめて判定するのがおすすめです。

WA調査の基本手順

  1. 実行・判定でWAを確認する
  2. 失敗ケース一覧からケースを選ぶ
  3. 入力を見る
  4. 自分の出力と正解出力を比べる
  5. 差分を見る
  6. 条件分岐・初期値・ループ範囲・出力形式を確認する
  7. コードを修正する
  8. 同じケースを再実行する
  9. 全ケースを再判定する

POINT

WAは、まず失敗ケースを見る。

WAの原因は、コードだけを眺めても見つけにくいことがあります。 入力・自分の出力・正解出力を並べて確認すると、 どこで考え方や実装がずれているのかを見つけやすくなります。

次に読むページ

コメント

タイトルとURLをコピーしました