Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
116918 | 陈家宝 | 骑马修栅栏 | C++ | 通过 | 100 | 5 MS | 1292 KB | 576 | 2023-12-20 14:05:01 |
#include<bits/stdc++.h> using namespace std; int mp[505][505],in[1000005],k=0; stack<int> st; void dfs(int x){ for(int i=1;i<=k;i++){ if(mp[x][i]){ mp[x][i]--; mp[i][x]--; dfs(i); } } st.push(x); } int main() { int n,m; cin>>n; for(int i=0,x,y;i<n;i++){ cin>>x>>y; k=max(k,max(x,y)); mp[x][y]++; mp[y][x]++; in[y]++,in[x]++; } int s=1061109567; for(int i=1;i<=k;i++){ if(in[i]%2==1) s=min(s,i); } if(s==1061109567)s=1; dfs(s); while(!st.empty()){ cout<<st.top()<<endl; st.pop(); } return 0; }