#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
bool query(int a,int b){
cout<<"? "<<a<<" "<<b<<endl;
int ans;
cin>>ans;
return ans;
}
int main(){
int n;
cin>>n;
int ans=1;
// ganjil
int mau=3;
for(int q=1;q<=n;q++){
if(q>=(mau+1)/2 && q+(mau+1)/2-1<=n){
int l=(mau+1)/2;
l--;
if(query(q-l,q+l)){
mau+=2;
q--;
}
}
}
ans=max(ans,mau-2);
mau=2;
for(int q=1;q<=n;q++){
if(q>=mau/2 && q+mau/2<=n){
int l=mau/2;
if(query(q-l+1,q+l)){
mau+=2;
q--;
}
}
}
ans=max(ans,mau-2);
cout<<"! "<<ans<<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... |