# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
715476 | 2023-03-27T04:17:06 Z | lmqzzz | The Big Prize (IOI17_prize) | C++14 | 104 ms | 208 KB |
#include "prize.h" #include <bits/stdc++.h> using namespace std; int lolipop = -1; int best = -1; int solve(int l, int r, int before_left) { if (l >= r) return -1; //[l, r) int m = l + r >> 1; // [l, m) [m + 1, r) int lm = m - 1, rm = m; int L, R; while (rm < r) { auto mid = ask(rm); if (mid[0] + mid[1] == 0) return rm; if (mid[0] + mid[1] == best) { L = mid[0], R = mid[1]; break; } rm++; } if (rm == r) { return solve(l, m, before_left); } else { return max(solve(l, m, before_left), solve(rm + 1, r, L)); } } int find_best(int n) { const int LIM = 500; vector<vector<int>> b(LIM); for (int i = 0; i < LIM; i++) { b[i] = ask(i); if (best < b[i][0] + b[i][1]) { best = b[i][0] + b[i][1]; lolipop = i; } if (b[i][0] + b[i][1] == 0) return i; } int cnt = 0; for (int i = 0; i < LIM; i++) { if (b[i][0] + b[i][1] < best) cnt++; } return solve(LIM, n, cnt); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 93 ms | 208 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 104 ms | 208 KB | Incorrect |
2 | Halted | 0 ms | 0 KB | - |