#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
bool asked[200000] = {false};
int L[200000], R[200000];
bool Ask(int i)
{
if (asked[i]) return L[i] + R[i] == 0;
asked[i] = true;
vector<int> res = ask(i);
L[i] = res[0], R[i] = res[1];
return L[i] + R[i] == 0;
}
int Find(int l, int r)
{
int m = (l + r) / 2;
if (Ask(m)) return m;
if (R[l] == R[r] && L[r] == L[l]) return -1;
int x = Find(l, m);
if (x >= 0) return x;
int y = Find(m, r);
if (y >= 0) return y;
return -1;
}
int find_best(int n)
{
if (Ask(0)) return 0;
if (Ask(n-1)) return n-1;
return Find(0, n - 1);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
464 KB |
Output is correct |
2 |
Correct |
0 ms |
316 KB |
Output is correct |
3 |
Correct |
1 ms |
336 KB |
Output is correct |
4 |
Correct |
0 ms |
304 KB |
Output is correct |
5 |
Correct |
1 ms |
304 KB |
Output is correct |
6 |
Correct |
0 ms |
208 KB |
Output is correct |
7 |
Correct |
1 ms |
336 KB |
Output is correct |
8 |
Correct |
1 ms |
304 KB |
Output is correct |
9 |
Correct |
0 ms |
316 KB |
Output is correct |
10 |
Correct |
1 ms |
464 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
336 KB |
Output is correct |
2 |
Correct |
1 ms |
336 KB |
Output is correct |
3 |
Correct |
1 ms |
336 KB |
Output is correct |
4 |
Correct |
1 ms |
312 KB |
Output is correct |
5 |
Correct |
1 ms |
304 KB |
Output is correct |
6 |
Correct |
0 ms |
208 KB |
Output is correct |
7 |
Correct |
1 ms |
344 KB |
Output is correct |
8 |
Correct |
1 ms |
308 KB |
Output is correct |
9 |
Correct |
0 ms |
300 KB |
Output is correct |
10 |
Correct |
1 ms |
464 KB |
Output is correct |
11 |
Execution timed out |
1123 ms |
1048576 KB |
Time limit exceeded |
12 |
Halted |
0 ms |
0 KB |
- |