比赛 |
至少完成十道练习 |
评测结果 |
AAAAAAAAAA |
题目名称 |
分糖果 |
最终得分 |
100 |
用户昵称 |
Hyoi_deque |
运行时间 |
1.316 s |
代码语言 |
C++ |
内存使用 |
2.22 MiB |
提交时间 |
2017-05-23 18:57:30 |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
const int MAXN=1e5+10;
int m,n,p,c;
queue<int> que_;
int vis[MAXN];
vector<int> G[MAXN];
int deep[MAXN];
int ans=0;
int bfs(int u){
que_.push(u);
vis[u]=1;
while(!que_.empty()){
int a=que_.front();
que_.pop();
for(int i=0;i<=G[a].size()-1;i++)
if(!vis[G[a][i]])
{
deep[G[a][i]]=deep[a]+1;
vis[G[a][i]]=1;
que_.push(G[a][i]);
}
}
}
void init(){
scanf("%d%d%d%d",&n,&p,&c,&m);
for(int i=1;i<=p;i++) {
int u,v;
scanf("%d%d",&u,&v);
G[u].push_back(v);
G[v].push_back(u);
}
deep[c]=1;
}
void cmp(){
for(int i=1;i<=n;i++) {
ans=max(ans,deep[i]);
}
printf("%d",ans+m);
}
int main() {
freopen("dividecandy.in","r",stdin);
freopen("dividecandy.out","w",stdout);
init();
bfs(c);
cmp();
return 0;
}