提交时间:2023-08-24 11:09:08
运行 ID: 99975
#include <bits/stdc++.h> using namespace std; int n; int u,v; int a[505]; int mp[505][505]; int maxp; stack<int>st; void dfs(int pos) { for(int i = 1; i <= maxp; i++) { if(mp[pos][i]>=1) { mp[pos][i]--; mp[i][pos]--; dfs(i); } } st.push(pos); } signed main() { cin >> n; for(int i = 1; i <= n; i++) { cin >> u >> v; mp[u][v]++; mp[v][u]++; a[v]++; a[u]++; maxp = max(maxp,max(u,v)); } int start=1; for(int i = 1; i <= maxp; i++) { if(a[i]&1) { start = i; break; } } //for(int i = 1; i <= n; i++)sort(mp[i].begin(),mp[i].end()); dfs(start); while(!st.empty()) { cout << st.top() << endl; st.pop(); } return 0; }