제출 #1227206

#제출 시각아이디문제언어결과실행 시간메모리
1227206brintonThousands Islands (IOI22_islands)C++20
컴파일 에러
0 ms0 KiB
#include "islands.h" #include <bits/stdc++.h> using namespace std; variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> V) { auto co = [](int id){ if(id%2 == 0) return id+1; else return id-1; }; vector<set<pair<int,int>>> edges(N);// nxt,id for(int i = 0;i < M;i++){ edges[U[i]].insert({V[i],i}); } // if(edges[0].size() < 2) return false; vector<int> ans; vector<bool> vis(N,false); int root = 0; vector<int> to_root; while(edges[root].size() <= 1){ if(edges[root].size() == 0) return false; auto [nxt,id] = *edges[root].begin(); to_root.push_back(id); vis[root] = true; edges[root].erase({nxt,id}); edges[nxt].erase({root,co(id)}); root = nxt; } auto [nxt1,id1] = edges[root][0]; auto [nxt2,id2] = edges[root][1]; vector<int> ans{id1,co(id1),id2,co(id2), co(id1),id1,co(id2),id2}; vector<int> ret = to_root; for(auto &i:ans) ret.push_back(i); for(int i = to_root.size()-1;i >= 0;i--) ret.push_back(to_root[i]); return ret; // return ans; }

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

islands.cpp: In function 'std::variant<bool, std::vector<int, std::allocator<int> > > find_journey(int, int, std::vector<int>, std::vector<int>)':
islands.cpp:34:32: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::set<std::pair<int, int> > >, std::set<std::pair<int, int> > >::value_type' {aka 'std::set<std::pair<int, int> >'} and 'int')
   34 |   auto [nxt1,id1] = edges[root][0];
      |                                ^
islands.cpp:35:32: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::set<std::pair<int, int> > >, std::set<std::pair<int, int> > >::value_type' {aka 'std::set<std::pair<int, int> >'} and 'int')
   35 |   auto [nxt2,id2] = edges[root][1];
      |                                ^
islands.cpp:36:15: error: redeclaration of 'std::vector<int> ans'
   36 |   vector<int> ans{id1,co(id1),id2,co(id2),
      |               ^~~
islands.cpp:17:15: note: 'std::vector<int> ans' previously declared here
   17 |   vector<int> ans;
      |               ^~~