1 solutions

  • 0
    @ 2025-11-5 19:34:21

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int minn=510,maxn=0,num;
    int f[510][510],du[510],ans[100000];
    void find(int t){
    	for(int j=minn;j<=maxn;j++){
    		if(f[t][j]){
    			f[t][j]--;
    			f[j][t]--;
    			find(j);
    		}
    	}
    	ans[num]=t;
    	num++;
    }
    int main(){
    	int n,x,y;
    	cin>>n;
    	for(int i=0;i<n;i++){
    		scanf("%d%d",&x,&y);
    		f[x][y]++;
    		f[y][x]++;
    		du[x]++;
    		du[y]++;
    		if(x<minn)minn=x;
    		if(y<minn)minn=y;
    		if(x>maxn)maxn=x;
    		if(y>maxn)maxn=y;
    	}
    	int s=1;
    	for(int i=minn;i<=maxn;i++){
    		if(du[i]%1==1){
    			s=i;
    			break;
    		}
    	}
    	num=1;
    	find(s);
    	for(int i=num-1;i>=1;i--){
    		printf("%d\n",ans[i]);
    	}
    	return 0;
    }
    
    • 1

    Information

    ID
    19404
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By