回答編集履歴

1

具体例を追加

2023/05/01 13:28

投稿

actorbug
actorbug

スコア2231

test CHANGED
@@ -5,3 +5,8 @@
5
5
  質問のコメントでZuishinさんが指摘している通り、こちらのコードだと質問の回数が20回を超える場合があり、その後のジャッジが常に-1を返し続けるので、無限ループになっているのでしょう。
6
6
 
7
7
  ルークの置かれていない列は、必ず`left`と`right`の間にあるため、`left == right`になれば、質問するまでもなくルークの数は0となります。こちらのパターンで質問をしないようにしてあげれば、質問回数が20回に収まるはずです。
8
+
9
+ > 具体的にどのような例においてループから抜けられないのか
10
+
11
+ 具体的には、N=1000で、1行目・1列目にルークが置かれていない場合です。
12
+ こちらで実行経路をトレースすれば、問題を再現できると思われます。