Submission #417054

#TimeUsernameProblemLanguageResultExecution timeMemory
417054aryan12Colors (BOI20_colors)C++17
22 / 100
5 ms280 KiB
#include <bits/stdc++.h> using namespace std; #define int long long void BinSrch(int l, int r, int cnt, int ans, int subtask, int n) { int f = 0; while(l <= r) { int response; if(cnt % 2 == 0) { if(subtask == 2 && l == n / 2) break; cout << "? " << l++ << endl; } else { if(subtask == 2 && r == n / 2) break; cout << "? " << r-- << endl; } cnt++; cin >> response; if(cnt == 1) continue; if(response == 1) { ans = min(ans, r - l + 2); } else { cout << "= " << ans << endl; f = 1; break; } } if(f == 0) { cout << "= " << ans << endl; } //cout << "cnt of queries = " << cnt << endl; } void Solve() { int n; cin >> n; if(n <= 64) { BinSrch(1, n, 0, n, 1, n); return; } int l = 1, r = n, ans = n; cout << "? " << n / 2 << endl; int response; cin >> response; cout << "? " << n << endl; cin >> response; if(response == 1) { l = n / 2 + 1, r = n - 1, ans = n - n / 2; } else { l = 1, r = n - 1; } BinSrch(l, r, 2, ans, 2, n); } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); Solve(); 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...