#AT2552. D - Find by Query
D - Find by Query
当前没有测试数据。
D - Find by Query
Score : $400$ points
Problem Statement
This is an interactive task, where your program and the judge interact via Standard Input and Output.
The judge has a string of length $N$ consisting of $0$ and $1$: $S = S_1S_2\ldots S_N$. Here, $S_1 = 0$ and $S_N = 1$.
You are given the length $N$ of $S$, but not the contents of $S$. Instead, you can ask the judge at most $20$ questions as follows.
- Choose an integer $i$ such that $1 \leq i \leq N$ and ask the value of $S_i$.
Print an integer $p$ such that $1 \leq p \leq N-1$ and $S_p \neq S_{p+1}$.
It can be shown that such $p$ always exists under the settings of this problem.
Constraints
- $2 \leq N \leq 2 \times 10^5$
Input and Output
First, receive the length $N$ of the string $S$ from Standard Input:
Then, you get to ask the judge at most $20$ questions as described in the problem statement.
Print each question to Standard Output in the following format, where $i$ is an integer satisfying $1 \leq i \leq N$:
``` ? $i$ ```In response to this, the value of $S_i$ will be given from Standard Input in the following format:
``` $S_i$ ```Here, $S_i$ is $0$ or $1$.
When you find an integer $p$ satisfying the condition in the problem statement, print it in the following format, and immediately quit the program:
``` ! $p$ ```If multiple solutions exist, you may print any of them.