题目:
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#define maxn 11111
using namespace std;
vector<int> a[maxn];
int x,y;
int n,m,s;
int ans[maxn];
int cnt=1,res=1;
bool visited[maxn];
int dfs(int x)
{
if(visited[x]) return 0;ans[cnt]=x;cnt++;visited[x]=true;for (auto to:a[x]){
if (dfs(to)) {
ans[cnt]=x;cnt++;}}return 1;
}
int main()
{
cin>>n>>m>>s;for(int i=1;i<=m;i++){
cin>>x>>y;a[x].push_back(y);a[y].push_back(x);}for(int i=1;i<=n;i++) sort(a[i].begin(),a[i].end());dfs(s);for(int i=1;i<=n;i++){
if(visited[i]==0){
res=0;break;} }//cout<<"res="<<res<<endl;for(int i=1;i<cnt;i++) cout<<ans[i]<<" ";if(res==0) cout<<0<<endl;return 0;
}