Submission #1274069

#TimeUsernameProblemLanguageResultExecution timeMemory
1274069warrennMađioničar (COI22_madionicar)C++20
100 / 100
512 ms420 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...