比赛 20120418s 评测结果 AAAAAAAAAA
题目名称 捉迷藏 最终得分 100
用户昵称 201101 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-18 08:37:05
显示代码纯文本
/*
UID:cheepok
PID:hideseek
*/

#include<stdio.h>
#include<string.h>
#include<vector>
#include<queue>

using namespace std;

int n,m,ans,k,s[20001];

vector <int> v[20001];

queue <int> q;

int main()
{
	freopen("hideseek.in","r",stdin);
	freopen("hideseek.out","w",stdout);
	int i,x,y;scanf("%d%d",&n,&m);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		v[x].push_back(y);
		v[y].push_back(x);
	}
	memset(s,60,sizeof(s));
	q.push(1);s[1]=0;
	while(!q.empty())
	{
		x=q.front();
		for(i=0;i<v[x].size();i++)
		{
			y=v[x][i];
			if(s[x]+1<s[y])
			{
				s[y]=s[x]+1;
				q.push(y);
			}
		}
		q.pop();
	}
	ans=1;
	for(i=1;i<=n;i++)
	{
		if(s[i]>s[ans])
		{
			ans=i;k=1;
		}
		else if(s[i]==s[ans])
		{
			k++;
		}
	}
	printf("%d %d %d\n",ans,s[ans],k);
	return 0;
}