제출 #685283

#제출 시각아이디문제언어결과실행 시간메모리
685283grossly_overconfident버섯 세기 (IOI20_mushrooms)C++17
컴파일 에러
0 ms0 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; vector<int> decipher(int a, int b, int c) { vector<int> m = { a, 0, b, c }; int c1 = use_machine(m); if (c1 == 0) { m = { 0, 0, 0 }; return m; } if (c1 == 3) { m = { 1, 1, 0 }; return m; } if (c1 == 2) { m = { b, a, 0, c }; c1 = use_machine(m); if (c1 == 1) { m = { 0, 1, 0 }; } else if (c1 == 3) { m = { 1, 0, 1 }; } else if (c1 == 2) { m = { 1, 1, 1 }; } return m; } m = { b, 0, c }; c1 = use_machine(m); if (c1 == 0) { m = { 1, 0, 0 }; } else if (c1 == 1) { m = { 0, 0, 1 }; } else if (c1 == 2) { m = { 0, 1, 1 }; } return m; } int count_mushrooms(int n) { vector<int> a, b; a.push_back(0); if (n < 220) { for (int i = 1; i < n; ++i) { if (use_machine({ i, 0 }) == 0) { a.push_back(i); } } return a.size(); } for (int i = 1; i < 115; i += 3) { vector<int> take = decipher(i, i + 1, i + 2); if (take[0] == 1) { b.push_back(i); } else { a.push_back(i); } if (take[1] == 1) { b.push_back(i + 1); } else { a.push_back(i + 1); } if (take[2] == 1) { b.push_back(i + 2); } else { a.push_back(i + 2); } }// first 114 deciphered int a = 0; if (a.size() > b.size()) { for (int i = 115; i < n; i += a.size() - 1) { vector<int> pass; pass.push_back(a[0]); for (int j = 0; j > min(a.size() - 1, n - i); ++j) { pass.push_back(i + j); pass.push_back(a[j + 1]); } a += (a.size() - 1) - (use_machine(pass) / 2); } return a; } for (int i = 115; i < n; i += a.size() - 1) { vector<int> pass; pass.push_back(b[0]); for (int j = 0; j > min(b.size() - 1, n - i); ++j) { pass.push_back(i + j); pass.push_back(b[j + 1]); } a += use_machine(pass) / 2; } return a; }

컴파일 시 표준 에러 (stderr) 메시지

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:77:6: error: conflicting declaration 'int a'
   77 |  int a = 0;
      |      ^
mushrooms.cpp:45:14: note: previous declaration as 'std::vector<int> a'
   45 |  vector<int> a, b;
      |              ^
mushrooms.cpp:82:47: error: no matching function for call to 'min(std::vector<int>::size_type, int)'
   82 |    for (int j = 0; j > min(a.size() - 1, n - i); ++j) {
      |                                               ^
In file included from /usr/include/c++/10/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:82:47: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   82 |    for (int j = 0; j > min(a.size() - 1, n - i); ++j) {
      |                                               ^
In file included from /usr/include/c++/10/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:82:47: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   82 |    for (int j = 0; j > min(a.size() - 1, n - i); ++j) {
      |                                               ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from mushrooms.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:82:47: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   82 |    for (int j = 0; j > min(a.size() - 1, n - i); ++j) {
      |                                               ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from mushrooms.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:82:47: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   82 |    for (int j = 0; j > min(a.size() - 1, n - i); ++j) {
      |                                               ^
mushrooms.cpp:86:6: error: no match for 'operator+=' (operand types are 'std::vector<int>' and 'std::vector<int>::size_type' {aka 'long unsigned int'})
   86 |    a += (a.size() - 1) - (use_machine(pass) / 2);
      |    ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mushrooms.cpp:88:10: error: cannot convert 'std::vector<int>' to 'int' in return
   88 |   return a;
      |          ^
mushrooms.cpp:93:46: error: no matching function for call to 'min(std::vector<int>::size_type, int)'
   93 |   for (int j = 0; j > min(b.size() - 1, n - i); ++j) {
      |                                              ^
In file included from /usr/include/c++/10/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:93:46: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   93 |   for (int j = 0; j > min(b.size() - 1, n - i); ++j) {
      |                                              ^
In file included from /usr/include/c++/10/vector:60,
                 from mushrooms.h:1,
                 from mushrooms.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:93:46: note:   deduced conflicting types for parameter 'const _Tp' ('long unsigned int' and 'int')
   93 |   for (int j = 0; j > min(b.size() - 1, n - i); ++j) {
      |                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from mushrooms.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:93:46: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   93 |   for (int j = 0; j > min(b.size() - 1, n - i); ++j) {
      |                                              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from mushrooms.cpp:2:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
mushrooms.cpp:93:46: note:   mismatched types 'std::initializer_list<_Tp>' and 'long unsigned int'
   93 |   for (int j = 0; j > min(b.size() - 1, n - i); ++j) {
      |                                              ^
mushrooms.cpp:97:5: error: no match for 'operator+=' (operand types are 'std::vector<int>' and 'int')
   97 |   a += use_machine(pass) / 2;
      |   ~~^~~~~~~~~~~~~~~~~~~~~~~~
mushrooms.cpp:99:9: error: cannot convert 'std::vector<int>' to 'int' in return
   99 |  return a;
      |         ^