#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
using ll = long long;
using pi = pair<int, int>;
using vi = vector<int>;
template<class T> bool ckmin(T& a, T b) { return b < a ? a = b, true : false; }
template<class T> bool ckmax(T& a, T b) { return a < b ? a = b, true : false; }
int query(ll x) {
cout << "? " << x << endl;
int r;
cin >> r;
return r;
}
signed main() {
// ios::sync_with_stdio(0); cin.tie(0);
ll n; cin >> n;
ll l = 0, r = n;
int d = 1;
ll x = 0;
ll mx = 0;
while (r - l > 1) {
ll m = (l + r) / 2;
x += m * d;
d *= -1;
mx = max(mx, -x);
if (x >= n) {
r = m;
} else {
l = m;
}
}
l = 0, r = n;
x = mx + 1;
d = 1;
query(x);
while (r - l > 1) {
ll m = (l + r) / 2;
x += m * d;
d *= -1;
if (query(x)) {
r = m;
} else {
l = m;
}
}
cout << "= " << r << 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... |