AT_kupc2024_l Long Street
Description
この問題は **インタラクティブ** な問題であり、 **ジャッジは適応的(adaptive)** です。詳しくは注意点を参照してください。
$ 1 $ から $ N $ までの番号がついた $ N $ 点が、数直線上にこの順で並んでいます。
各 $ i $ $ (1\le i\le N-1) $ について、点 $ i $ と点 $ i+1 $ の距離は $ 2^{P_i} $ です。
$ N $ および $ P $ は入力で与えられます。
ジャッジシステムは $ 1\le x\le N $ を隠し持っています。
あなたは以下の質問を行うことができます。
- 整数 $ i $ $ (1\le i\le N) $ を選ぶ。 $ N $ 点のうち点 $ i $ が 点 $ x $ から何番目に近いかを聞く。
ただし、距離の順位は 1-indexed であり、例えば $ i=x $ の場合 1 番目と数える。
$ \lfloor\log_{2}{N}\rfloor $ 回以内の質問で $ x $ を当ててください。
### Input & Output Format
この問題はインタラクティブな問題です。
最初に、 $ N,P $ を標準入力から受け取ってください。
> $ N $ $ P_1 $ $ P_2 $ $ \dots $ $ P_{N-1} $
次に、 $ x $ が特定できるまで質問を繰り返してください。 質問は以下の形式で標準出力に出力してください。
> ? $ i $
ここで、 $ i $ は $ 1 $ 以上 $ N $ 以下の整数である必要があります。 これに対する応答は、次の形式で標準入力から与えられます。
> $ r $
ここで、 $ r $ は質問に対する答えです。ただし、不正な質問を行った、あるいは質問の回数が $ \lfloor\log_{2}{N}\rfloor $ 回を超えた場合は $ r $ は `-1` となります。
ジャッジが `-1` を返した場合、提出はすでに不正解とみなされています。この場合、ただちにプログラムを終了してください。
$ x $ が特定できたら、解答を以下の形式で出力してください。
> ! $ x $
この出力の後、ただちにプログラムを終了してください。
Input Format
N/A
Output Format
N/A
Explanation/Hint
### 注意点
- **出力を行うたびに、末尾に改行を入れて標準出力を flush してください。**そうしなかった場合、ジャッジ結果が TLE や WA となる可能性があります。
- 解答を出力したら (または `-1` を受け取ったら) ただちにプログラムを終了してください。そうしない場合、ジャッジ結果は不定です。
- 余計な改行は不正なフォーマットの出力とみなされることに注意してください。
- **この問題のジャッジシステムは、適応的(adaptive)です。** つまり、ジャッジシステムは、任意のタイミングにおいて、整合性がとれる限り、 $ x $ として想定しているものを変更する可能性があります。詳しくは入出力例も参照してください。
### 入出力例
この入力では $ N=4,P=(2,1,3) $ であり、ジャッジシステムは最初 $ x=2 $ を想定しています。
入力 出力 説明 `4`
`2 1 3` $ N,P $ が与えられます。 `? 4` $ i=4 $ として質問を行います。 `4` 質問の答えは $ 4 $ です。 `? 1` $ i=1 $ として質問を行います。 `3` 質問の答えは $ 3 $ です。 `! 2` $ x $ は $ 2 $ だと解答します。 確かにジャッジシステムが想定している $ x $ は $ 2 $ ですが、 $ 3 $ に変更しても整合性がとれます。
したがって、ジャッジシステムは不正解の判定を下すこともあります。
### Constraints
- $ 2\le N\le 2 \times 10^{5} $
- $ N $ は整数
- $ P $ は $ (1,2,\dots,N-1) $ の順列