#include <bits/stdc++.h>
using namespace std;
long long i, j, l, r, mid, p, q, k, t, n, m, a, b, c, d, ans, cnt, res, arr[1000005];
const long long mod = 999993143, mod2 = 999993469;
string s;
bool check;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
a = 1;
b = n;
c = n / 2;
l = 1;
r = c - 1;
t = -1;
while (l <= r){
mid = (l + r) / 2;
cout << "? " << c - mid << endl;
cin >> d;
if (t != -1){
if (d == 0){
a = max(a, abs((c - mid) - t) + 1);
}
else{
b = min(b, abs((c - mid) - t));
}
}
t = c - mid;
cout << "? " << c + mid + 1 << endl;
cin >> d;
if (t != -1){
if (d == 0){
a = max(a, abs((c + mid + 1) - t) + 1);
l = mid + 1;
}
else{
b = min(b, abs((c + mid + 1) - t));
r = mid - 1;
}
}
t = c + mid + 1;
}
cout << "= " << a << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |