Pagini recente » Cod sursa (job #2723765) | Cod sursa (job #1075953) | Cod sursa (job #272986) | Cod sursa (job #2475210) | Cod sursa (job #326259)
Cod sursa(job #326259)
#include<stdio.h>
long n,m,s;
long q[100010],v[100010];
struct nod
{
nod *urm;
long info;
};
nod *top[100010];
void InsertBegin(long x,long y)
{
nod *aux;
aux=new nod;
aux->urm=top[x];
aux->info=y;
top[x]=aux;
}
void read()
{
long x,y;
scanf("%ld%ld%ld",&n,&m,&s);
long i;
for (i=1;i<=m;i++)
{
scanf("%ld%ld",&x,&y);
InsertBegin(x,y);
}
}
void bfs()
{
long st,dr;
nod *p;
st=dr=1;
v[s]=1;
q[1]=s;
while (st<=dr)
{
for (p=top[q[st]];p!=NULL;p=p->urm)
{
if (!v[p->info])
{
v[p->info]=v[q[st]]+1;
q[++dr]=p->info;
}
}
st++;
}
}
void print()
{
long i;
for (i=1;i<=n;i++)
{
printf("%ld ",v[i]-1);
}
}
int main()
{
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
read();
bfs();
print();
return 0;
}