记录编号 66908 评测结果 AAAAAAAAAA
题目名称 [USACO Open09] 捉迷藏 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.056 s
提交时间 2013-08-05 07:50:39 内存使用 1.31 MiB
显示代码纯文本
#include<fstream>
#include<deque>
#include<vector>
using namespace std;
deque<int> a; 
ifstream fin("hideseek.in");
ofstream fout("hideseek.out");
vector<int> adj[50001];
int N,M,counter=1;
bool flag[50000]={0};
int p[50000];
int father[50000];
void BFS()
{
	int A,J;
	while(a.size()!=0)
	{
		A=a.at(0);
		a.pop_front();
		for(int i=0;i<adj[A].size();i++)
		{
			J=adj[A].at(i);
				if(flag[J]==0)
				{
					father[J]=A;
					p[J]=p[A]+1;
					a.push_back(J);
					flag[J]=1;
				}
		}
	}
}
int main()
{
	int i,A,B,max=0,K=99999999,L=0;
	fin>>N>>M;
	for(i=1;i<=5000;i++)
		p[i]=0;
	for(i=1;i<=M;i++)
	{
		fin>>A>>B;
		adj[A].push_back(B);
		adj[B].push_back(A);
	}
	a.push_back(1);
	flag[1]=1;
	BFS();
	for(i=1;i<=N;i++)
	{
		if(p[i]>=max)
		{
			max=p[i];
		}
	}
	for(i=1;i<=N;i++)
	{
		if(p[i]==max)
		{
			L++;
			if(i<K)
				K=i;
		}
	}
	fout<<K<<' '<<max<<' '<<L<<endl;
	return 0;
}