#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
bool works(int val) {
for(int i = 0; i < n - val + 1; i++) {
cout<<"? "<<i + 1<<' '<< i + val<<'\n';
int ans;
cin >> ans;
if(ans == 1) return true;
}
return false;
}
signed main(){
cin >> n;
//odd
int l = 0, r = (n+1)/2;
while(l + 1 < r) {
int mid = (l + r )/ 2;
if(works(mid * 2 + 1)) {
l = mid;
}else {
r = mid;
}
}
int maxval = l * 2 + 1;
l = 0, r = (n+1)/2+1;
while(l + 1 < r) {
int mid = (l + r )/ 2;
if(works(mid * 2)) {
l = mid;
}else {
r = mid;
}
}
maxval = max(maxval, l * 2);
cout<<"! "<<maxval<<'\n';
return 0;
}
| # | 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... |