NYOJ 20 吝啬的国度

#include<stdio.h>
#define N 100005
int a[N];

void fn(int c)
{
	int p = a[c];
	if(p != 0)
	{
		fn(p);
		a[p] = c;
	}
}

int main()
{
//	freopen("in.txt","r",stdin);
	int s,i,n,x,y,t;
	scanf("%d",&t);
	while(t--)
	{
		memset(a,0,sizeof(a));
		scanf("%d%d",&n,&s);
		for(i=1; i<n; i++)
		{
			scanf("%d%d",&x,&y);
			if(a[y] == 0)
				a[y] = x;
			else
			{
				fn(x);
				a[x] = y;
			}
		}
		fn(s);

		a[s] = -1;
		for(i=1; i<n; i++)
			printf("%d ",a[i]);
		printf("%d\n",a[n]);
	}
	return 0;
}

  

posted @ 2013-03-31 23:06  YaLing  阅读(117)  评论(0编辑  收藏  举报