| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1295014 | ChuanChen | 버섯 세기 (IOI20_mushrooms) | C++20 | 컴파일 에러 | 0 ms | 0 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;
}
컴파일 시 표준 에러 (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);
| ~~~~~^~~~~~~~