Pagini recente » Cod sursa (job #2793911) | Cod sursa (job #186622) | Cod sursa (job #1313909) | Cod sursa (job #2788724) | Cod sursa (job #285258)
Cod sursa(job #285258)
#include<stdio.h>
#include<string.h>
using namespace std;
struct nod{int val;
nod *urm;}*v[100005],*u;
int l[100002],c[100005],viz[100002],i,j,k,m,n,p,q,I;
int main(){
memset(l,-1,sizeof(l));
freopen("bfs.in","r",stdin);
scanf("%d %d %d",&n,&m,&I);
l[I]=0;
freopen("bfs.out","w",stdout);
for(i=1;i<=m;i++)
{scanf("%d %d",&p,&q);
u=new nod;
u->val=q;
u->urm=v[p];
v[p]=u;}
p=q=1;
c[p]=I;
viz[I]=1;
while(p<=q){
u=v[c[p]];
for(;u;u=u->urm)
if(!viz[u->val])
{viz[u->val]=1;
q++;
c[q]=u->val;
l[c[q]]=l[c[p]]+1;
}
p++;
}
for(i=1;i<=n;i++)
printf("%d ",l[i]);
return 0;}