Pagini recente » Cod sursa (job #1578300) | Cod sursa (job #1911668) | Cod sursa (job #1109502) | Cod sursa (job #2124126) | Cod sursa (job #339295)
Cod sursa(job #339295)
#include<cstdio>
#include<vector>
using namespace std;
vector<int> a[100001];
int n,m,s,i,j,q[100001],v[100001],st,dr;
int main()
{
memset(v,-1,sizeof(v));
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d %d %d",&n,&m,&s);
++m;
while(--m)
{
scanf("%d %d",&i,&j);
a[i].push_back(j);
}
q[(st=(dr=0))]=s;
v[s]=0;
while(st<=dr)
{
s=q[st];
j=v[s]+1;
for(i=0;i<a[s].size();++i)
if(v[a[s][i]]==-1)
{
v[a[s][i]]=j;
q[++dr]=a[s][i];
}
++st;
}
for(i=1;i<=n;++i)
printf("%d ",v[i]);
fclose(stdout);
return 0;
}