Submission #778652

#TimeUsernameProblemLanguageResultExecution timeMemory
778652benjaminkleynThe Big Prize (IOI17_prize)C++17
Compilation error
0 ms0 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; bool asked[200000] = {false}; int L[200000], R[200000]; map<int, set<int>> queries; 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]; if (queries.find(L[i] + R[i]) == queries.end()) queries[L[i] + R[i]] = set<int>(); queries[L[i] + R[i]].insert(i); return L[i] + R[i] == 0; } int Find(int l, int r) { if (Ask(l)) return l; if (Ask(r)) return r; if (l + 1 == r) return -1; for (auto [x, s] : queries) { auto it1 = s.upper_bound(l), it2 = s.lower_bound(r); if (it1 == s.begin() || it2 == s.end()) continue; if (L[*prev(it1)] == L[*it2]) return -1; } int m = (l + r) / 2; 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 r, int l = 0) { return Find(0, n - 1); }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int, int)':
prize.cpp:53:20: error: 'n' was not declared in this scope
   53 |     return Find(0, n - 1);
      |                    ^