Submission #1295014

#TimeUsernameProblemLanguageResultExecution timeMemory
1295014ChuanChenCounting Mushrooms (IOI20_mushrooms)C++20
Compilation error
0 ms0 KiB
#include "mushrooms.h" #include<bits/stdc++.h> using namespace std; const unsigned int OPT = 100; int ans; vector<int> A, B; queue<int> q; int count_mushrooms(int n) { vector<int> m; A.push_back(0); for(int i = 1; i < n; i++){ q.push(i); } while(q.size() && A.size() <= 2){ int c1 = q.front(); q.pop(); int verdic = use_machine({c1, A[0]}); if(verdic == 0) A.push_back(c1); else B.push_back(c1); } while(q.size() && A.size() <= OPT && B.size() <= OPT){ int c1, c2, c3; c1 = q.front(); q.pop(); if(q.empty()){ int verdic = use_machine({c1, A[0]}); if(verdic == 0) A.push_back(c1); else B.push_back(c1); break; } c2 = q.front(); q.pop(); if(q.empty()){ c3 = B[0]; } else{ c3 = q.front(); q.pop(); } int verdic = use_machine({c1, A[0], c2, A[1], c3}); if(verdic == 0){ A.push_back(c1); A.push_back(c2); A.push_back(c3); } else if(verdic == 1){ A.push_back(c2); merge(c1, c3); } else if(verdic == 2){ merge(c1, c2); merge(c2, c3); } else if(verdic == 3){ B.push_back(c2); merge(c1, c3); } else if(verdic == 4){ B.push_back(c1); B.push_back(c2); B.push_back(c3); } } while(!q.empty()){ if(A.size() < B.size()){ //use B vector<int> m(min(2*B.size(), 2*q.size())); for(int i = 0; i < (int)m.size(); i+=2) m[i] = B[i/2]; for(int i = 1; i < (int)m.size(); i+=2){ m[i] = q.front(); q.pop(); } int verdic = use_machine(m); ans += (verdic+1)/2; } else{ vector<int> m(min(2*A.size(), 2*q.size())); for(int i = 0; i < (int)m.size(); i+=2) m[i] = A[i/2]; for(int i = 1; i < (int)m.size(); i+=2){ m[i] = q.front(); q.pop(); } int verdic = use_machine(m); ans += m.size()/2-(verdic+1)/2; } } return A.size()+ans; }

Compilation message (stderr)

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:51:30: error: no matching function for call to 'merge(int&, int&)'
   51 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from mushrooms.cpp:2:
/usr/include/c++/13/bits/stl_algo.h:4946:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter)'
 4946 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:51:30: note:   candidate expects 5 arguments, 2 provided
   51 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter, class _Compare> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)'
 4997 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:51:30: note:   candidate expects 6 arguments, 2 provided
   51 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
In file included from /usr/include/c++/13/algorithm:73:
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator, class _Compare> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator, _Compare)'
  412 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:51:30: note:   candidate expects 7 arguments, 2 provided
   51 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator)'
  417 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:51:30: note:   candidate expects 6 arguments, 2 provided
   51 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
mushrooms.cpp:54:30: error: no matching function for call to 'merge(int&, int&)'
   54 |                         merge(c1, c2);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter)'
 4946 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:54:30: note:   candidate expects 5 arguments, 2 provided
   54 |                         merge(c1, c2);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter, class _Compare> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)'
 4997 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:54:30: note:   candidate expects 6 arguments, 2 provided
   54 |                         merge(c1, c2);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator, class _Compare> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator, _Compare)'
  412 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:54:30: note:   candidate expects 7 arguments, 2 provided
   54 |                         merge(c1, c2);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator)'
  417 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:54:30: note:   candidate expects 6 arguments, 2 provided
   54 |                         merge(c1, c2);
      |                         ~~~~~^~~~~~~~
mushrooms.cpp:55:30: error: no matching function for call to 'merge(int&, int&)'
   55 |                         merge(c2, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter)'
 4946 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:55:30: note:   candidate expects 5 arguments, 2 provided
   55 |                         merge(c2, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter, class _Compare> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)'
 4997 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:55:30: note:   candidate expects 6 arguments, 2 provided
   55 |                         merge(c2, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator, class _Compare> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator, _Compare)'
  412 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:55:30: note:   candidate expects 7 arguments, 2 provided
   55 |                         merge(c2, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator)'
  417 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:55:30: note:   candidate expects 6 arguments, 2 provided
   55 |                         merge(c2, c3);
      |                         ~~~~~^~~~~~~~
mushrooms.cpp:59:30: error: no matching function for call to 'merge(int&, int&)'
   59 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter)'
 4946 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4946:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:59:30: note:   candidate expects 5 arguments, 2 provided
   59 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note: candidate: 'template<class _IIter1, class _IIter2, class _OIter, class _Compare> constexpr _OIter std::merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare)'
 4997 |     merge(_InputIterator1 __first1, _InputIterator1 __last1,
      |     ^~~~~
/usr/include/c++/13/bits/stl_algo.h:4997:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:59:30: note:   candidate expects 6 arguments, 2 provided
   59 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator, class _Compare> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator, _Compare)'
  412 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:412:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:59:30: note:   candidate expects 7 arguments, 2 provided
   59 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note: candidate: 'template<class _ExecutionPolicy, class _ForwardIterator1, class _ForwardIterator2, class _ForwardIterator> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, _ForwardIterator2> std::merge(_ExecutionPolicy&&, _ForwardIterator1, _ForwardIterator1, _ForwardIterator2, _ForwardIterator2, _ForwardIterator)'
  417 | merge(_ExecutionPolicy&& __exec, _ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2,
      | ^~~~~
/usr/include/c++/13/pstl/glue_algorithm_defs.h:417:1: note:   template argument deduction/substitution failed:
mushrooms.cpp:59:30: note:   candidate expects 6 arguments, 2 provided
   59 |                         merge(c1, c3);
      |                         ~~~~~^~~~~~~~