Pagini recente » Cod sursa (job #479381) | Cod sursa (job #2205264) | Cod sursa (job #706455) | Cod sursa (job #563282) | Cod sursa (job #401999)
Cod sursa(job #401999)
#include<stdio.h>
int n,m,s,c[200010],viz[100010],i,k,val,x,y;
struct nod
{
int inf;
nod *adr;
};
nod *l[100005],*p,*cn,*u;
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%d %d %d",&n,&m,&s);
for(i=0;i<m;i++)
{
scanf("%d %d",&x,&y);
cn=new nod;
cn->inf=y;
cn->adr=l[x];
l[x]=cn;
}
for(i=0;i<=n;i++)
viz[i]=-1;
k=1;
c[k]=s;
viz[s]=0;
val=1;
for(i=1;i<=k;i++)
{
u=l[c[i]];
while(u)
{
if(viz[u->inf]==-1)
{
viz[u->inf]=viz[c[i]]+1;
c[++k]=u->inf;
}
u=u->adr;
}
}
for(i=1;i<=n;i++)
printf("%d ",viz[i]);
return 0;
}