2017-03-23 11 views
0

私はbreakステートメントでこのコードスニペットを持っています。私はこれを解決しようとしていたhttp://codeforces.com/contest/787/problem/Bなぜこのbreak文は意図したとおりに動作しませんか?

これはテストに合格しませんでしたが、cancel = falseの後にbreak文を削除した瞬間です。ライン。できます。あなたが最初にあなたが見つかったときに - カールをセットしたときにあなたはキャンセルを偽に変え、そして壊れてしまい、セット中にカールを見つけるたびにキャンセルするためにfalseを割り当てるように、ループの終わりまで壊れません。

+3

'break'文は* inner *ループに適用されます。そして 'cancel'はfalseであるので、外側のループは継続します。 –

答えて

1

for(int j=0;j<k;j++)から脱出すると、最後の数字になっていない限り、その入力行の数字のすべてが読み取られません。例えば

は、この入力を検討:読んだ後

2 2 
3 -1 1 -2 
1 2 

-1と1を、あなたは、内側のループの外にfalseや休憩にセットcancelをプログラム。次回は外側のループを通して-2をkに読み込み、あなたはそれを乱してしまいました。

breakステートメントを削除すると、すべての数値が正しく読み込まれているため、プログラムが正常に動作します。

+0

ありがとうございました。 –

関連する問題