比赛 至少完成十道练习 评测结果 AAAAAAAAAA
题目名称 分糖果 最终得分 100
用户昵称 Regnig Etalsnart 运行时间 1.191 s
代码语言 C++ 内存使用 1.26 MiB
提交时间 2017-05-20 21:31:48
显示代码纯文本
#include<cstdio>
#include<vector>
#include<queue>
#define syy myson
using namespace std;
const int maxn=100010;
int n,p,c,m,in[maxn],k[maxn],t=-maxn,i;
vector<int>v[maxn];
queue<int>q;
int Main()
{
	freopen("dividecandy.in","r",stdin);freopen("dividecandy.out","w",stdout);
	scanf("%d%d%d%d",&n,&p,&c,&m);
	for(i=1;i<=p;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		v[x].push_back(y);
		v[y].push_back(x);
	}
	q.push(c);
	in[c]=1;
	k[c]=1;
	while(!q.empty())
	{
		int ok=0;
		int now=q.front();
		q.pop();
		for(i=0;i<v[now].size();i++)
		{
			if(!in[v[now][i]])
			{
				in[v[now][i]]=1;
				q.push(v[now][i]);
				k[v[now][i]]=k[now]+1;
			}
		}
	}
	for(i=1;i<=n;i++)if(t<k[i])t=k[i];
	printf("%d",t+m);
	return 0;
}
int main(){;}
int syy=Main();
/*
10 20 1
25
10 5
7 8
7 9
3 1
8 3
9 4
10 1
5 7
5 4
9 3
1 7
4 1
2 9
7 3
8 4
3 10
6 5
10 4
6 7
10 9
*/