Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
99975 | 王为治 | 骑马修栅栏 | C++ | 通过 | 100 | 4 MS | 1300 KB | 721 | 2023-08-24 11:09:08 |
#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; }