Submission #642107

#TimeUsernameProblemLanguageResultExecution timeMemory
642107piOOEThe Big Prize (IOI17_prize)C++17
20 / 100
72 ms2120 KiB
#include <bits/stdc++.h> #include "prize.h" using namespace std; using ll = long long; int find_best(int n) { int i = 0; map<int, vector<int>> mp; int Q = 0; auto my_ask = [&](int i) { if (mp.count(i)) { return mp[i]; } else { ++Q; if (Q > 8000) { assert(false); } mp[i] = ask(i); return mp[i]; } }; map<int, int> cnt; for (; i < n;) { auto a = my_ask(i); int sum = a[0] + a[1]; if (sum == 0) { return i; } else { ++cnt[sum]; if (cnt[sum] > 100) { for (int j = __lg(n) + 1; j > -1; --j) { if (i + (1 << j) < n && my_ask(i + (1 << j)) == a) { i += 1 << j; } } ++i; } else { i += 1; } } } assert(false); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...