제출 #1058361

#제출 시각아이디문제언어결과실행 시간메모리
1058361tolbi수천개의 섬 (IOI22_islands)C++17
0 / 100
3 ms1624 KiB
#include "islands.h" #include <bits/stdc++.h> using namespace std; std::variant<bool, std::vector<int>> find_journey( int N, int M, std::vector<int> U, std::vector<int> V) { set<pair<int,int>> st; vector<vector<int>> arr(N); map<pair<int,int>,int> mp; for (int i = 0; i < M; i++){ mp[{U[i],V[i]}]=i; if (st.find({V[i],U[i]})!=st.end()) continue; st.insert({U[i],V[i]}); arr[U[i]].push_back(V[i]); arr[V[i]].push_back(U[i]); } if (N>2 && arr[0].size()<=1) { cerr<<"allah allah"<<endl; return false; } vector<int> par(N,-1); vector<vector<int>> lol(N); queue<pair<int,int>> q; q.push({0,-2}); while (q.size()){ int node = q.front().first; int lnode = q.front().second; q.pop(); if (par[node]!=-1) continue; if (lnode!=-2) lol[lnode].push_back(node); par[node]=lnode; for (auto it : arr[node]){ q.push({it,node}); } } for (int i = 1; i < N; i++){ if (par[i]==-1) { assert(false); cerr<<"ulasamadim"<<endl; return false; } } vector<int> ans; bool boolean=false; function<void(int)> dfs = [&](int node){ for (auto it : lol[node]){ if (boolean){ ans.push_back(mp[{it,node}]); } else ans.push_back(mp[{node,it}]); dfs(it); if (boolean){ ans.push_back(mp[{node,it}]); } else ans.push_back(mp[{it,node}]); } }; dfs(0); boolean=true; dfs(0); int nn = 0; vector<int> used(M,0); for (int i = 0; i < ans.size(); i++){ assert(ans[i]>=0 && ans[i]<M); if (used[ans[i]]){ assert(V[ans[i]]==nn); nn=U[ans[i]]; used[ans[i]]=0; } else { assert(U[ans[i]]==nn); nn=V[ans[i]]; used[ans[i]]=1; } } assert(nn==0); for (int i = 0; i < M; ++i) { assert(used[i]%2==0); } 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:62:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |  for (int i = 0; i < ans.size(); i++){
      |                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...