Submission #1164710

#TimeUsernameProblemLanguageResultExecution timeMemory
1164710SmuggingSpunThe Big Prize (IOI17_prize)C++20
91.57 / 100
22 ms11368 KiB
#include<bits/stdc++.h> #include "prize.h" using namespace std; const int SIZE = 255; int find_best(int n) { vector<vector<int>>cnt(n, vector<int>(2, -1)); auto id = [&] (int i){ if(cnt[i][0] != -1){ return cnt[i]; } return cnt[i] = ask(i); }; for(int i = 0; i + 1 < n; ){ if(id(i)[0] == 0 && id(i)[1] == 0){ return i; } if(id(i) != id(i + 1)){ i++; } else{ while(true){ int j = min(n - 1, i + (SIZE << 1)); if(id(i) == id(j) || id(i) == id(j = min(n - 1, i + SIZE))){ i = j; } else{ int low = i + 2, high = j - 1; while(low <= high){ int mid = (low + high) >> 1; if(id(i) != id(mid)){ high = (j = mid) - 1; } else{ low = mid + 1; } } i = j; break; } } } } return n - 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...