제출 #1262647

#제출 시각아이디문제언어결과실행 시간메모리
1262647mkkkkkkkk어르신 집배원 (BOI14_postmen)C++20
0 / 100
620 ms44984 KiB
#include <bits/stdc++.h> using namespace std; set<int> adj[500001]; vector<int> euler; void dfs(int i) { for(;adj[i].size()>0;) { int br=0; for(auto it : adj[i]) { br=it; } adj[i].erase(br); adj[br].erase(i); dfs(br); } euler.push_back(i); } int inde[500001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n,m; cin>>n>>m; for(int m1=m;m1>0;m1--) { int a,b; cin>>a>>b; adj[a].insert(b); adj[b].insert(a); } memset(inde,-1,sizeof(inde)); dfs(1); vector<int> temp; for(int i=0;i<euler.size();i++) { if(inde[euler[i]]==-1) { temp.push_back(euler[i]); inde[euler[i]]=temp.size()-1; } else { cout<<euler[i]<<" "; vector<int> res; while(temp[temp.size()-1]!=euler[i]) { res.push_back(temp[temp.size()-1]); inde[temp[temp.size()-1]]=-1; temp.pop_back(); } reverse(res.begin(),res.end()); for(auto it : res) cout<<it<<" "; cout<<"\n"; inde[euler[i]]=temp.size()-1; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...