Submission #881591

#TimeUsernameProblemLanguageResultExecution timeMemory
881591epicci23Mađioničar (COI22_madionicar)C++17
100 / 100
1098 ms344 KiB
#include "bits/stdc++.h"
using namespace std;
#define int long long
#define pb push_back
#define all(x) ((x).begin(),(x).end())
#define sz(x) ((int)(x).size())

int n;
 
bool ask(int l,int r){
  if(l<1 || r>n) return 0;
  cout << "? " << l << " " << r << endl;
  bool ans; cin >> ans;
  return ans;
}

int search(int l,int r){
  if(ask(l,r)==0) return 0;
  while(ask(l-1,r+1)){l--;r++;}
  return r-l+1;
}

void solve(){
  cin >> n;
  int ans=1;
  
  for(int i=1;i<=n;i++){
    int u = ans/2;
    ans=max(ans,search(i-u,i+u+1));
    u = (ans+1)/2;
    ans=max(ans,search(i-u,i+u));
  }
  
  cout << "! " << ans << endl;
}
 
int32_t main(){
  ios::sync_with_stdio(0);cin.tie(0);
  int t=1;//cin >> t;
  while(t--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...