Submission #1299078

#TimeUsernameProblemLanguageResultExecution timeMemory
1299078efegColors (BOI20_colors)C++20
22 / 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; bool check = false; 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)); check = true; } 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; if (n <= 64){ int l = 1, r = n; while (l < r) { query(l); query(r); l++; r--; } if (l == r) query(l); } else { 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){ check = false; query(l); query(r); if (!check) break; l++; 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...