Pagini recente » Cod sursa (job #42040) | Cod sursa (job #2861875) | Cod sursa (job #1709472) | Cod sursa (job #1870641) | Cod sursa (job #275666)
Cod sursa(job #275666)
#include<stdio.h>
typedef struct nod
{
int inf;
nod *urm;
}*pnod;
pnod v[100001];
int p,u,c[100001],n,m,viz[100001],s;
void add(pnod &p,int j)
{
pnod q;
q=new nod;
q->inf=j;
q->urm=p;
p=q;
}
void read()
{
int i,l,j;
scanf("%d %d %d",&n,&m,&s);
for(l=1;l<=m;++l){
scanf("%d %d",&i,&j);
add(v[i],j);
}
}
void BFS(int x)
{
pnod q;
p=1;
u=1;
c[u]=x;
viz[x]=1;
while(p<=u){
x=c[p];
for(q=v[x];q!=NULL;q=q->urm)
if(viz[q->inf]==0){
c[++u]=q->inf;
viz[q->inf]=viz[x]+1;
}
p++;
}
}
int main()
{
int i;
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
read();
BFS(s);
for(i=1;i<=n;++i)
printf("%d ",viz[i]-1);
printf("\n");
fcloseall();
return 0;
}