Submission #778625

# Submission time Handle Problem Language Result Execution time Memory
778625 2023-07-10T13:43:52 Z benjaminkleyn The Big Prize (IOI17_prize) C++17
90 / 100
84 ms 2056 KB
#include "prize.h"
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair

bool asked[200000] = {false};
int L[200000], R[200000];
int v, N;

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)
{
    if (Ask(l)) return l;
    while (l < r && L[l] + R[l] != L[v] + R[v])
        if (Ask(++l)) return l;

    if (Ask(r)) return r;
    while (l < r && L[r] + R[r] != L[v] + R[v])
        if (Ask(--r)) return r;

    int m = (l + r) / 2;
    if (Ask(m)) return m;
    if (L[r] - L[l] == 0) 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) 
{
    N = n, v = 0;
    for (int j = 0; j < n && j < 500; j++)
    {
        if (Ask(j)) return j;
        if (L[j] + R[j] > L[v] + R[v])
            v = j;
    }
    return Find(0, n - 1);
}
# Verdict Execution time Memory Grader output
1 Correct 4 ms 336 KB Output is correct
2 Correct 4 ms 432 KB Output is correct
3 Correct 2 ms 324 KB Output is correct
4 Correct 2 ms 320 KB Output is correct
5 Correct 2 ms 316 KB Output is correct
6 Correct 1 ms 208 KB Output is correct
7 Correct 3 ms 320 KB Output is correct
8 Correct 2 ms 328 KB Output is correct
9 Correct 2 ms 328 KB Output is correct
10 Correct 4 ms 448 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 300 KB Output is correct
2 Correct 4 ms 328 KB Output is correct
3 Correct 2 ms 324 KB Output is correct
4 Correct 4 ms 208 KB Output is correct
5 Correct 4 ms 336 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 2 ms 324 KB Output is correct
8 Correct 5 ms 320 KB Output is correct
9 Correct 2 ms 320 KB Output is correct
10 Correct 3 ms 464 KB Output is correct
11 Correct 7 ms 944 KB Output is correct
12 Correct 2 ms 324 KB Output is correct
13 Correct 6 ms 1764 KB Output is correct
14 Correct 6 ms 316 KB Output is correct
15 Correct 15 ms 556 KB Output is correct
16 Partially correct 25 ms 1740 KB Partially correct - number of queries: 7138
17 Correct 3 ms 208 KB Output is correct
18 Partially correct 72 ms 1924 KB Partially correct - number of queries: 8467
19 Correct 2 ms 308 KB Output is correct
20 Correct 8 ms 648 KB Output is correct
21 Correct 12 ms 940 KB Output is correct
22 Correct 8 ms 468 KB Output is correct
23 Correct 3 ms 308 KB Output is correct
24 Correct 5 ms 336 KB Output is correct
25 Correct 28 ms 1248 KB Output is correct
26 Correct 15 ms 1272 KB Output is correct
27 Correct 3 ms 552 KB Output is correct
28 Partially correct 50 ms 1992 KB Partially correct - number of queries: 7178
29 Partially correct 36 ms 1740 KB Partially correct - number of queries: 5808
30 Partially correct 70 ms 1920 KB Partially correct - number of queries: 8419
31 Correct 2 ms 324 KB Output is correct
32 Correct 4 ms 1328 KB Output is correct
33 Correct 0 ms 208 KB Output is correct
34 Correct 25 ms 832 KB Output is correct
35 Correct 3 ms 808 KB Output is correct
36 Correct 8 ms 700 KB Output is correct
37 Correct 6 ms 564 KB Output is correct
38 Correct 2 ms 328 KB Output is correct
39 Correct 14 ms 988 KB Output is correct
40 Partially correct 36 ms 1932 KB Partially correct - number of queries: 7439
41 Partially correct 18 ms 1308 KB Partially correct - number of queries: 5030
42 Partially correct 18 ms 1304 KB Partially correct - number of queries: 5030
43 Correct 23 ms 1512 KB Output is correct
44 Correct 26 ms 968 KB Output is correct
45 Correct 19 ms 808 KB Output is correct
46 Correct 2 ms 356 KB Output is correct
47 Correct 24 ms 968 KB Output is correct
48 Partially correct 40 ms 1588 KB Partially correct - number of queries: 6156
49 Correct 10 ms 456 KB Output is correct
50 Partially correct 29 ms 2044 KB Partially correct - number of queries: 8489
51 Correct 13 ms 1024 KB Output is correct
52 Correct 5 ms 304 KB Output is correct
53 Correct 6 ms 960 KB Output is correct
54 Correct 15 ms 1088 KB Output is correct
55 Correct 2 ms 208 KB Output is correct
56 Partially correct 49 ms 2024 KB Partially correct - number of queries: 8440
57 Partially correct 22 ms 1520 KB Partially correct - number of queries: 6112
58 Partially correct 21 ms 1548 KB Partially correct - number of queries: 6190
59 Partially correct 24 ms 1568 KB Partially correct - number of queries: 5024
60 Correct 16 ms 1272 KB Output is correct
61 Correct 5 ms 964 KB Output is correct
62 Correct 2 ms 336 KB Output is correct
63 Correct 5 ms 976 KB Output is correct
64 Correct 4 ms 756 KB Output is correct
65 Correct 2 ms 324 KB Output is correct
66 Correct 6 ms 304 KB Output is correct
67 Correct 9 ms 308 KB Output is correct
68 Correct 4 ms 208 KB Output is correct
69 Correct 2 ms 324 KB Output is correct
70 Correct 5 ms 304 KB Output is correct
71 Partially correct 77 ms 2032 KB Partially correct - number of queries: 9073
72 Correct 10 ms 1732 KB Output is correct
73 Partially correct 57 ms 1992 KB Partially correct - number of queries: 8961
74 Partially correct 84 ms 1932 KB Partially correct - number of queries: 9009
75 Correct 6 ms 976 KB Output is correct
76 Partially correct 67 ms 2028 KB Partially correct - number of queries: 7921
77 Partially correct 68 ms 1948 KB Partially correct - number of queries: 8821
78 Correct 9 ms 1744 KB Output is correct
79 Correct 40 ms 1972 KB Output is correct
80 Partially correct 75 ms 1936 KB Partially correct - number of queries: 8741
81 Partially correct 69 ms 2036 KB Partially correct - number of queries: 8823
82 Partially correct 42 ms 1964 KB Partially correct - number of queries: 8733
83 Correct 5 ms 976 KB Output is correct
84 Partially correct 30 ms 1976 KB Partially correct - number of queries: 7417
85 Partially correct 43 ms 2056 KB Partially correct - number of queries: 8784
86 Correct 5 ms 464 KB Output is correct
87 Correct 5 ms 464 KB Output is correct
88 Correct 4 ms 464 KB Output is correct
89 Correct 4 ms 464 KB Output is correct
90 Correct 5 ms 400 KB Output is correct
91 Correct 4 ms 456 KB Output is correct
92 Correct 5 ms 464 KB Output is correct
93 Correct 7 ms 1220 KB Output is correct
94 Correct 10 ms 1460 KB Output is correct
95 Correct 10 ms 1352 KB Output is correct
96 Correct 9 ms 1300 KB Output is correct
97 Correct 5 ms 464 KB Output is correct