Submission #402056

#TimeUsernameProblemLanguageResultExecution timeMemory
402056IloveNHotter Colder (IOI10_hottercolder)C++14
0 / 100
659 ms9828 KiB
#include<bits/stdc++.h> #include "grader.h" using namespace std; #define ll long long #define pii pair<int,int> #define pll pair<ll,ll> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define all(vr) vr.begin(),vr.end() #define vi vector<int> #define vll vector<ll> const int N = 1e5 + 10; // Guess int HC(int n){ if (n == 1) return 1; Guess(1); int g = Guess(n); int prv = n; int side, l = 1, r = n; // 0 = left, 1 = right if (g == 0) return (n + 1) / 2; if (g == 1) side = 1, l = (n + 1) / 2 + 1; else side = 0, r = n / 2; if (side == 0) while (true) { Guess(1); int mid = (r + 3) / 4; g = Guess(mid * 2 - 1); if (g == 0) return mid; if (g == -1) r = mid - 1; else { l = mid + 1; for (int i = 1; i <= 2; ++i) { Guess(l); g = Guess(r); prv = r; if (g == 0) return (l + r) / 2; if (g == 1) l = (l + r) / 2 + 1; else r = (l + r - 1) / 2; } break; } } else while (true) { Guess(n); int mid = n - (n - l + 4) / 4 + 1; g = Guess(mid * 2 - n); if (g == 0) return mid; if (g == -1) l = mid + 1; else { r = mid - 1; for (int i = 1; i <= 2; ++i) { Guess(l); g = Guess(r); prv = r; if (g == 0) return (l + r) / 2; if (g == 1) l = (l + r) / 2 + 1; else r = (l + r - 1) / 2; } break; } } while (l < r) { int mid = (l + r) / 2; g = Guess(2 * mid - prv); if (prv < mid) { if (g == 0) return mid; if (g == -1) r = mid - 1; else l = mid + 1; } else { if (g == 0) return mid; if (g == -1) l = mid + 1; else r = mid - 1; } prv = 2 * mid - prv; } return l; } /*int main() { //freopen("ss.inp", "r", stdin); ios::sync_with_stdio(false); cin.tie(0); 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...