30分求调!悬关!
查看原帖
30分求调!悬关!
1120247
__asdfASDF12345楼主2024/8/10 12:21
#include<iostream>
#include<string.h>
using namespace std;
#define N 101
int head[N],to[N],nxxt[N],cnt;
int u,v,n,flag[N];
bool a[N];
void add(int u,int v)
{
	to[++cnt]=v;
	nxxt[cnt]=head[u];
	head[u]=cnt;
}
void dfs(int x)
{
	a[x]=true;
	for(int i=head[x];i;i=nxxt[i])
	{
		if(a[to[i]]!=true)
		{
			flag[to[i]]++;
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n-1;i++) // 输入
	{
		cin>>u>>v;
		add(u,v);
	}
	for(int i=1;i<=n;i++)
	{
		memset(a,false,sizeof(a));
		dfs(i);
	}
	for(int i=1;i<=n;i++)
	{
		if(flag[i]==n-1)
		{
			cout<<i<<endl;
			system("pause");
			return 0;
		}
	}
	cout<<-1<<endl;
	system("pause");
	return 0;
}
2024/8/10 12:21
加载中...