Submission #1062329

#TimeUsernameProblemLanguageResultExecution timeMemory
1062329ArthuroWich커다란 상품 (IOI17_prize)C++17
90 / 100
54 ms11604 KiB
#include"prize.h" #include<bits/stdc++.h> using namespace std; int ans = -1; bool check(vector<int> res) { return (res[0] == res[1] && res[0] == 0); } vector<vector<int>> seg(200005, {-1, -1}); void calc(int l, int r) { if (l == r || ans != -1) { return; } int m = (l+r)/2; if (seg[l][0] == -1) { seg[l] = ask(l); } if (seg[m][0] == -1) { seg[m] = ask(m); } if (check(seg[l])) { ans = l; return; } if (check(seg[m])) { ans = m; return; } if (seg[l] != seg[m]) { calc(l, m); } if (ans != -1) { return; } if (seg[m+1][0] == -1) { seg[m+1] = ask(m+1); } if (seg[r][0] == -1) { seg[r] = ask(r); } if (check(seg[m+1])) { ans = m+1; return; } if (check(seg[r])) { ans = r; return; } if (seg[m+1] != seg[r]) { calc(m+1, r); } } int find_best(int n) { calc(0, n-1); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...