#include <bits/stdc++.h>
using namespace std;
template<typename T> inline void input(T& inVar) {cin >> inVar;}
template<typename T, typename... S> inline void input(T& inVar, S&... args) {cin >> inVar; input(args ...);}
template<typename T> inline void print(T outVar) {cout << outVar << endl;}
template<typename T, typename... S> inline void print(T outVar, S... args) {cout << outVar << ' '; print(args ...);}
#define range(it, start, end) for (int it = start; it < end; it++)
#define arrPut(var) for (auto &inVar : var) {cin >> inVar;}
#define arrPrint(var) for (auto outVar : var) {cout << outVar << ' ';} cout << endl
#define setup() ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
#define int long long
int32_t main() {
// setup();
int n;
input(n);
int l = 1, r = n, res = n;
int c = 1;
print("? ", c);
bool f;
input(f);
set<int> done;
while (l <= r) {
int m = (l + r) / 2;
if (c + m <= n and !done.count(c + m)) {
c += m;
}
else if (c - m >= 1 and !done.count(c - m)) {
c -= m;
}
else {
range(i, 1, n + 1) {
if (!done.count(i) and !done.count(i + m)) {
print("? ", i);
bool b;
input(b);
done.insert(i);
c = i + m;
}
}
}
print("? ", c);
done.insert(c);
bool b;
input(b);
if (b) {
res = m;
r = m - 1;
}
else {
l = m + 1;
}
}
print("= ", res);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
200 KB |
OK (4 queries) |
2 |
Runtime error |
1 ms |
200 KB |
Execution killed with signal 13 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
200 KB |
OK (4 queries) |
2 |
Runtime error |
1 ms |
200 KB |
Execution killed with signal 13 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
200 KB |
OK (4 queries) |
2 |
Runtime error |
1 ms |
200 KB |
Execution killed with signal 13 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
200 KB |
OK (4 queries) |
2 |
Runtime error |
1 ms |
200 KB |
Execution killed with signal 13 |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
200 KB |
OK (4 queries) |
2 |
Runtime error |
1 ms |
200 KB |
Execution killed with signal 13 |
3 |
Halted |
0 ms |
0 KB |
- |