Submission #881112

#TimeUsernameProblemLanguageResultExecution timeMemory
881112epicci23Mađioničar (COI22_madionicar)C++17
63 / 100
1109 ms596 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<=0 || r>n) return 0;
  cout << "? " << l << " " << r << endl;
  bool ans; cin >> ans;
  return ans;
}

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

void solve(){
  cin >> n;
  int ans=1;
  
  for(int i=2;i<=n;i++){
    int u = ans/2;
    if(ask(i-u,i+u)) ans=max(ans,search(i-u,i+u));
    u = (ans+1)/2;
    if(ask(i-u,i+u-1)) ans=max(ans,search(i-u,i+u-1));
  }
  
  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...