제출 #1262450

#제출 시각아이디문제언어결과실행 시간메모리
1262450LeonidCukSenior Postmen (BOI14_postmen)C++20
0 / 100
21 ms840 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<int>>g; vector<pair<int,int>>edges; vector<bool>vis,vis1; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n,m,a,b; cin>>n>>m; vis1.resize(n+1); vis.resize(m); g.resize(n+1); for(int i=0;i<m;i++) { cin>>a>>b; g[a].push_back(i); g[b].push_back(i); edges.push_back({a,b}); } vector<int>res; int sum=0; a=1; bool check=true; for(int j=1;j<=n;j++) { int sum=0; for(auto i:g[a])if(!vis[i])sum++; if(!sum)continue; sum=sum/2; while(sum--) { a=j; res.push_back(a); while(res.size()!=0) { check=true; a=res.back(); vis1[a]=true; for(auto i:g[a]) { if(!vis[i]) { int b=edges[i].first; if(b==a)b=edges[i].second; res.push_back(b); vis[i]=true; check=false; a=b; sum++; break; } } if(check||vis1[a]) { if(res.size()==1)break; cout<<a<<" "; res.pop_back(); while(res.back()!=a) { vis1[res.back()]=false; cout<<res.back()<<" "; res.pop_back(); } cout<<endl; } } while(!res.empty()) { vis1[res.back()]=false; res.pop_back(); } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...