モンテ・カルロ伯爵の「王冠の宝石」を盗み出すという極めて精巧な強盗計画を立てたあなたは、行く手を阻む最後の障害、すなわち鍵のかかった金庫に遭遇しました。しかし、あなたはこの瞬間のために訓練を積み、金庫破りの能力を磨いてきました。
金庫には $N$ 個のダイヤルがあり、それぞれ $1$ から $2N$ までの任意の整数値に設定できます。モンテ・カルロ伯爵は、各ダイヤルに正しい秘密の値を設定して金庫を構成しました。金庫を開けるために、あなたは各ダイヤルを好きな値に設定し、金庫のドアのハンドルを回します。すべてのダイヤルが正しい秘密の値に設定されていれば、抵抗を感じることなくドアがすぐに開きます。
もちろん、ランダムにすべての正しい秘密の値を推測して金庫を開けることは、成功する可能性が極めて低いです。しかし、熟練の金庫破りであるあなたは、たとえ推測が間違っていたとしても、ドアを開けようとしたときに何らかの抵抗を感じ、その知識を使って正しい秘密の値を解読する手がかりにすることができます。あるダイヤルの秘密の値が $h$ で、ドアを開けようとしたときにそのダイヤルが $d$ に設定されていた場合、そのダイヤルはハンドルを回すことに対して $|h - d|$ の抵抗を及ぼします。あなたは、すべてのダイヤルにわたる最大抵抗を感じ取ることができます。(この値が $0$ であれば、金庫の解錠に成功し、強盗は完了です!)
残念ながら、警備チームはあなたの存在に気づいており、あなたの居場所に迫っています。あなたは $1$ 秒につき $1$ 回の金庫開けを試みることができますが、彼らが到着するまであと $4N$ 秒しかありません!あなたは捕まる前に強盗を完遂できるでしょうか?
インタラクション
これはインタラクティブな問題です。インタラクションは、標準入力から金庫のダイヤルの数である整数 $N$ ($1 \le N \le 500$) を読み取ることから始まります。あなたのプログラムは、各ダイヤルに試す値を指定することで、金庫のドアを開ける試みを最大 $4N$ 回まで行うことができます。各試行の後、ハンドルから感じる抵抗が伝えられます。
試行を行うには、$N$ 個のスペース区切りの整数 $d_1, d_2, \dots, d_N$ ($1 \le d_i \le 2N$) を含む行を出力します。これらは各ダイヤルに対してあなたが提案する値です。その後、標準入力から、ハンドルから感じた抵抗を表す単一の整数を読み取ります。これは $\max_i |h_i - d_i|$ です。ここで $h_i$ は(あなたには未知の)ダイヤル $i$ の秘密の値です。抵抗が $0$ であれば、あなたは金庫を開けたことになり、プログラムは終了しなければなりません。そうでなく、試行回数が残っている場合は、再度試みることができます。
試行回数がなくなった場合、プログラムは正常に終了しなければなりません(ただし、時間内に金庫を破れなかったため、不正解と判定されます)。
各ダイヤルの秘密の値は、強盗の前にモンテ・カルロ伯爵によって設定されており、あなたの解読の試みに応じて変化することはありません。
注記
出力した各行の後に必ず出力ストリームをフラッシュし、インタラクション終了後に正常に終了することを忘れないでください。また、出力する情報の行数や形式について、上記のインタラクションプロトコルに正確に従っていることを確認してください。例えば、プロトコルがスペース区切りの整数のリストを1行で出力することを要求している場合、ジャッジは各整数を別々の行に出力しても受け付けません。
ジャッジが不正または予期しない入力を受け取った場合、$-1$ を出力して直ちに終了します。あなたのプログラムは、このエラー報告を検出し、不正解(Wrong Answer)の判定を受けるために正常に終了しなければなりません。プログラムがジャッジからのさらなるインタラクションを待機してブロックされたり、$-1$ を抵抗値として解釈しようとしたりした場合、不正解ではなく別の判定(Time Limit Exceeded や Runtime Error など)を受ける可能性があります。
ローカルテスト用にコマンドラインツールが提供されています。このツールには、使用方法を説明するコメントが先頭に記載されています。
入出力例
入出力例 1
3
1 1 1
5
3 4 5
1
4 5 6
0