Submission #1299061

#TimeUsernameProblemLanguageResultExecution timeMemory
1299061efegColors (BOI20_colors)C++20
0 / 100
1 ms424 KiB
#include <bits/stdc++.h>
using namespace std; 

using i64 = long long; 
template<typename T>
using vec = vector<T>; 

int last1 = 0,last2 = 0,c = INT_MAX; 
int query(int sorgu){
    if (last1 == 0) last1 = sorgu; 
    else {
        last2 = last1; 
        last1 = sorgu; 
    }

    cout << "? " << sorgu << endl; 
    cout.flush();
    int q; cin >> q; 
    if (q && last2 != 0) c = min(c,abs(last1 - last2)); 
    return q; 
}

void print(int l,int r){
    while (l < r){
        query(l);  
        query(r); 
        l++; r--; 
    }
    if (l == r) query(l); 
}

int main(){
    ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 
    int n; cin >> n;
    c = n; 
    int mid = (n + 1) / 2; 
    query(mid); 
    bool ok = query(1); 
    if (ok == 1){
        query(mid - 1); 
        int l = 2, r = mid - 2; 
        while (l < r){
            query(l);  
            query(r); 
            l++; r--; 
        }

        if (l == r) query(l); 
    }
    else {
        query(n); 
        int l = 2, r = n-1;     
        while (l < mid && r > mid){
            query(l);
            query(r); 
            l++; 
            r--; 
        }
        if (l < mid) query(l); 
        if (r > mid) query(r); 
    }    

    cout << "= " << c << endl;  
    cout.flush(); 
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...