Submission #642073

#TimeUsernameProblemLanguageResultExecution timeMemory
642073piOOEThe Big Prize (IOI17_prize)C++17
20 / 100
97 ms2632 KiB
#include <bits/stdc++.h> #include "prize.h" using namespace std; using ll = long long; int find_best(int n) { int i = 0; int logn = __lg(n) + 2; map<int, vector<int>> mp; int Q = 0; auto my_ask = [&](int i) { if (mp.count(i)) { return mp[i]; } else { ++Q; if (Q > 10000) { assert(false); } mp[i] = ask(i); return mp[i]; } }; for (; i < n;) { auto a = my_ask(i); if (a[0] == 0 && a[1] == 0) { return i; } else { int j; if (a[0] + a[1] < 100) j = 10; else if (a[0] + a[1] < 50) j = 7; else j = 20; for (; j > -1; --j) { if (i + (1 << j) < n && my_ask(i + (1 << j)) == a) { i += 1 << j; } } ++i; } } assert(false); }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:9:9: warning: unused variable 'logn' [-Wunused-variable]
    9 |     int logn = __lg(n) + 2;
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...