제출 #1313708

#제출 시각아이디문제언어결과실행 시간메모리
1313708PlayVoltz버섯 세기 (IOI20_mushrooms)C++20
컴파일 에러
0 ms0 KiB
#include "mushrooms.h" #include <bits/stdc++.h> using namespace std; const int X=100; #define pb push_back #define mp make_pair #define pii pair<int, int> #define fi first #define se second int count_mushrooms(int n){ vector<int> ord; for (int i=1; i<n; ++i)ord.pb(i); vector<vector<int> > vect(2); vect[0].pb(0); if (n<=227){ int res=1; for (int i=1; i<n; ++i)res+=!use_machine({0, i}); return res; } while (max(vect[0].size(), vect[1].size())<2){ if (use_machine({0, ord.back()}))vect[1].pb(ord.back()); else vect[0].pb(ord.back()); ord.pop_back(); } while (max(vect[0].size(), vect[1].size())<3||min(vect[0].size(), vect[1].size())<2){ int a=ord.back(), b=ord[ord.size()-2], id=0; if (vect[1].size()>vect[0].size())id=1; ord.pop_back(), ord.pop_back(); int res=use_machine(vect[id][0], a, vect[id][1], b); if (res&1)vect[!id].pb(b); else vect[id].pb(b); if (res&2)vect[!id].pb(a); else vect[id].pb(a); } while (max(vect[0].size(), vect[1].size())<X){ if (use_machine({0, ord.back()}))vect[1].pb(ord.back()); else vect[0].pb(ord.back()); ord.pop_back(); } int ans=vect[0].size(); while (ord.size()){ int id=0; if (vect[0].size()<vect[1].size())id=1; vector<int> temp; for (int i=0; i<vect[id].size()&&ord.size(); ++i)temp.pb(vect[id][i]), temp.pb(ord.back()), ord.pop_back(); int res=use_machine(temp); if (id)ans+=res/2+res%2; else ans+=temp.size()/2-(res/2+res%2); if (res%2)vect[!id].pb(temp.back()); else vect[id].pb(temp.back()); } return ans; }

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:32:36: error: could not convert '(& vect.std::vector<std::vector<int> >::operator[](((std::vector<std::vector<int> >::size_type)id)))->std::vector<int>::operator[](0)' from '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'} to 'std::vector<int>'
   32 |                 int res=use_machine(vect[id][0], a, vect[id][1], b);
      |                         ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    __gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}