Submission #1282938

#TimeUsernameProblemLanguageResultExecution timeMemory
1282938wenbangThe Big Prize (IOI17_prize)C++20
Compilation error
0 ms0 KiB
#include "prize.h"
#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>

#ifdef LOCAL
#include "../print.h"
#else
template <typename... Args> inline void print(const Args&... args) {}
inline void                             newline() {}
#endif

using ll  = long long;
using pii = pair<int, int>;
#define endl                       '\n'
#define FOR1(n)                    for (int _ = 0; _ < n; _++)
#define FOR2(i, n)                 for (int i = 0; i < n; i++)
#define FOR3(i, a, b)              for (int i = a; i < b; i++)
#define overload3(a, b, c, d, ...) d
#define FOR(...)                   overload3(__VA_ARGS__, FOR3, FOR2, FOR1)(__VA_ARGS__)

using namespace std;

int search(int l, int r, pii left, pii right) {
    if (l > r) {
        return -1;
    }
    int         m    = (l + r) / 2;
    vector<int> c    = ask(m);
    pii         curr = {c [0], c [1]};
    if (c [0] == 0 && c [1] == 0) {
        return m;
    }
    if (l == r) {
        return -1;
    }
    int ret = -1;
    if (c [1] > 0 && curr != right) {
        ret = search(m + 1, r, curr, right);
    }
    if (ret == -1 && c [0] > 0 && curr != left) {
        ret = search(l, m - 1, left, curr);
    }
    return ret;
}

int find_best(int n) {
    return search(0, n - 1, {-1, -1}, {-1, -1});
}

Compilation message (stderr)

prize.cpp:15:13: error: 'pair' does not name a type
   15 | using pii = pair<int, int>;
      |             ^~~~
prize.cpp:25:26: error: 'pii' has not been declared
   25 | int search(int l, int r, pii left, pii right) {
      |                          ^~~
prize.cpp:25:36: error: 'pii' has not been declared
   25 | int search(int l, int r, pii left, pii right) {
      |                                    ^~~
prize.cpp: In function 'int search(int, int, int, int)':
prize.cpp:31:5: error: 'pii' was not declared in this scope
   31 |     pii         curr = {c [0], c [1]};
      |     ^~~
prize.cpp:39:22: error: 'curr' was not declared in this scope
   39 |     if (c [1] > 0 && curr != right) {
      |                      ^~~~
prize.cpp:42:35: error: 'curr' was not declared in this scope
   42 |     if (ret == -1 && c [0] > 0 && curr != left) {
      |                                   ^~~~
prize.cpp: In function 'int find_best(int)':
prize.cpp:49:18: error: no matching function for call to 'search(int, int, <brace-enclosed initializer list>, <brace-enclosed initializer list>)'
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from prize.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:4137:5: note: candidate: 'template<class _FIter1, class _FIter2> constexpr _FIter1 std::search(_FIter1, _FIter1, _FIter2, _FIter2)'
 4137 |     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
      |     ^~~~~~
/usr/include/c++/13/bits/stl_algo.h:4137:5: note:   template argument deduction/substitution failed:
prize.cpp:49:18: note:   couldn't deduce template parameter '_FIter2'
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4178:5: note: candidate: 'template<class _FIter1, class _FIter2, class _BinaryPredicate> constexpr _FIter1 std::search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate)'
 4178 |     search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,
      |     ^~~~~~
/usr/include/c++/13/bits/stl_algo.h:4178:5: note:   template argument deduction/substitution failed:
prize.cpp:49:18: note:   candidate expects 5 arguments, 4 provided
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4273:5: note: candidate: 'template<class _ForwardIterator, class _Searcher> constexpr _ForwardIterator std::search(_ForwardIterator, _ForwardIterator, const _Searcher&)'
 4273 |     search(_ForwardIterator __first, _ForwardIterator __last,
      |     ^~~~~~
/usr/include/c++/13/bits/stl_algo.h:4273:5: note:   template argument deduction/substitution failed:
prize.cpp:49:18: note:   candidate expects 3 arguments, 4 provided
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:73:
/usr/include/c++/13/pstl/glue_algorithm_defs.h:112:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> std::search(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _BinaryPredicate)'
  112 | search(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first,
      | ^~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:112:1: note:   template argument deduction/substitution failed:
prize.cpp:49:18: note:   candidate expects 6 arguments, 4 provided
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:117:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator> std::search(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2)'
  117 | search(_ExecutionPolicy&& __exec, _ForwardIterator1 __first, _ForwardIterator1 __last, _ForwardIterator2 __s_first,
      | ^~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:117:1: note:   template argument deduction/substitution failed:
prize.cpp:49:18: note:   candidate expects 5 arguments, 4 provided
   49 |     return search(0, n - 1, {-1, -1}, {-1, -1});
      |            ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prize.cpp:25:5: note: candidate: 'int search(int, int, int, int)'
   25 | int search(int l, int r, pii left, pii right) {
      |     ^~~~~~
prize.cpp:25:30: note:   no known conversion for argument 3 from '<brace-enclosed initializer list>' to 'int'
   25 | int search(int l, int r, pii left, pii right) {
      |                          ~~~~^~~~