제출 #1309973

#제출 시각아이디문제언어결과실행 시간메모리
1309973quollcucumber`Mađioničar (COI22_madionicar)C++20
13 / 100
498 ms404 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...