比赛 |
20130729 |
评测结果 |
AAAAAAAAAA |
题目名称 |
捉迷藏 |
最终得分 |
100 |
用户昵称 |
KZNS |
运行时间 |
0.058 s |
代码语言 |
C++ |
内存使用 |
0.49 MiB |
提交时间 |
2014-07-17 09:15:35 |
显示代码纯文本
#include<fstream>
#include<vector>
#include<deque>
using namespace std;
int main()
{
ifstream fi("hideseek.in");
ofstream fo("hideseek.out");
int n,m,h,end[20003],cd,k,big=0,ss=0,ex;
deque<int>dui;
vector<int>c[20003];
fi>>n>>m;
for(int i=0;i<m;i++)
{
fi>>h>>k;
c[h].push_back(k);
c[k].push_back(h);
}
for(int i=0;i<=n;i++)
end[i]=2147483647;
dui.push_back(1);
end[1]=0;
while(!dui.empty())
{
cd=dui.front();
dui.pop_front();
for(int i=0;i<c[cd].size();i++)
{
if(end[cd]+1<end[c[cd][i]])
{
end[c[cd][i]]=end[cd]+1;
dui.push_back(c[cd][i]);
}
}
}
for(int i=1;i<=n;i++)
if(end[i]>big)
{
ss=1;
big=end[i];
ex=i;
}
else
if(end[i]==big)
ss++;
fo<<ex<<' '<<big<<' '<<ss<<endl;
return 0;
}