COMPETITIVE DEBUG STUDIO
WAの原因を調査する方法
WAは「Wrong Answer」の略で、プログラムは正常に動いているものの、 出力が正解と一致していない状態です。
Competitive Debug Studioでは、失敗したケースの入力・自分の出力・正解出力・差分を確認しながら、 WAの原因を探せます。
まずWA判定を確認する
実行・判定を行うと、右側の実行結果にAC・WA・TLE・REなどの判定が表示されます。 WAと表示された場合は、出力が正解と一致していません。
WAの場合、コードが途中で止まっているわけではありません。 そのため、まずは「どの入力で」「どんな出力の違いが出たのか」を確認します。
失敗ケースを選ぶ
WAが発生したケースは、左側のケース一覧に保存されます。 調べたいケースをクリックすると、中央エリアに詳細が表示されます。
最初は、複雑そうなケースよりも、入力が短いケースから確認するのがおすすめです。 入力が小さい方が、手で追いやすく、原因を見つけやすくなります。
入力・自分の出力・正解出力を比較する
ケース詳細では、入力、自分の出力、正解出力、差分を確認できます。 WAの原因を探すときは、まずこの4つを順番に見ます。
- 入力:どんなデータが与えられたか
- 自分の出力:自分のコードが何を出したか
- 正解出力:本来出すべき答え
- 差分:どこが違っているか
例えば、自分の出力が 1 で、正解出力が 127 の場合、
計算式、条件分岐、初期値、ループ回数のどこかが間違っている可能性があります。
WAでよくある原因
WAは、エラーが出ない分だけ原因が分かりにくいです。 まずは次のようなミスを疑うと調査しやすくなります。
| 原因 | 確認すること |
|---|---|
| 条件分岐ミス | < と <=、偶数奇数、境界値を確認する |
| 初期値ミス | 答え用の変数が正しい値で初期化されているか確認する |
| ループ範囲ミス | range(n)、range(1, n+1) の違いを確認する |
| 出力形式ミス | 空白、改行、Yes/No、大文字小文字を確認する |
| 考え方のミス | 手計算した答えとプログラムの答えを比べる |
修正したら同じケースを再実行する
原因を見つけてコードを修正したら、同じケースを再実行します。 同じ入力で正解できるようになったかを確認することで、修正が効いているか判断できます。
1つのケースだけ直っても、他のケースでWAになることがあります。 そのため、ケース再実行で確認した後は、もう一度まとめて判定するのがおすすめです。
WA調査の基本手順
- 実行・判定でWAを確認する
- 失敗ケース一覧からケースを選ぶ
- 入力を見る
- 自分の出力と正解出力を比べる
- 差分を見る
- 条件分岐・初期値・ループ範囲・出力形式を確認する
- コードを修正する
- 同じケースを再実行する
- 全ケースを再判定する


コメント