Submission #800187

#TimeUsernameProblemLanguageResultExecution timeMemory
800187LiudasThe Big Prize (IOI17_prize)C++17
20 / 100
59 ms344 KiB
#include <bits/stdc++.h> #include "prize.h" using namespace std; int ans = -1, num; void bin(int l, int r, int sl, int sr){ for(int i = l; i <= r; i ++){ int mid = (i + r) / 2; vector<int> k = ask(mid); //cout << "//" << mid << " " << l << " " << r << " " << k[0] << " " << k[1] << " " << sl << " " << sr <<endl; if(k[0] + k[1] == 0){ ans = mid; return; } if(num == k[0] + k[1]){ if(k[0] - sl > 0)bin(l, mid - 1, sl, k[1]); if(k[1] - sr > 0)bin(mid + 1, r, k[0],sr); break; } } } int find_best(int N){ int l = 0; vector<int> t = {0, 0}; for(int i = 0; i < min(N, 500); i ++){ auto k = ask(i); if(k[0] + k[1] > t[0] + t[1]){ num = k[0] + k[1]; t = k; l = i; } if(k[0] + k[1] == 0){ return i; } } bin(l, N-1, l, 0); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...