Pagini recente » Cod sursa (job #1196281) | Cod sursa (job #179539) | Cod sursa (job #2229593) | Cod sursa (job #2644903) | Cod sursa (job #237123)
Cod sursa(job #237123)
# include <stdio.h>
# define Nmax 100001
struct Nod{
int v,t;
Nod * ad;
};
Nod *L[Nmax],*p,*q;
int N,S,Viz[Nmax],C[Nmax];
int main(){
long M,i;
int x,y;
freopen("bfs.in", "r", stdin);
freopen("bfs.out", "w", stdout);
scanf("%d %ld %d",&N,&M,&S);
for (i=1;i<=N;i++) Viz[i]=-1;
for (i=1;i<=M;i++){
scanf("%d %d",&x,&y);
p=new Nod; q=L[x];
(*p).v=y; (*p).t=x;
(*p).ad=q; L[x]=p;
}
x=y=1;
C[1]=S; Viz[S]=0;
while (x<=y){
p=L[C[x]];
while (p!=NULL) {
if (Viz[(*p).v]==-1) {
Viz[(*p).v]=Viz[C[x]]+1;
C[++y]=(*p).v;
}
p=(*p).ad;
}
x++;
}
for (i=1;i<=N;i++)
printf("%d ",Viz[i]);
return 0;
}