Pagini recente » Cod sursa (job #1086036) | Cod sursa (job #2284786) | Cod sursa (job #1032732) | Cod sursa (job #2719133) | Cod sursa (job #266819)
Cod sursa(job #266819)
#include<stdio.h>
#define MAX 120000
long pasi[MAX],vizitat[MAX],coada[MAX],st=1,dr=1;
adauga(long x, long y)
{
nod *element=new nod;
element->info=k;
if (q[a]==NULL)
{
q[a]=element;
element->adress=NULL;
}
else
{
element->adress=q[a];
q[a]=element;
}
}
bfs(long a)
{
while(st <= dr)
{
nod *e=p[coada[st]];
while(current!=NULL)
{
if(vizitat[e->info]==0)
{++dr;
coada[dr]=e->info;
pasi[e->info]=pasi[coada[st]]+1;
vizitat[e->info]=1;
++dr;
}
e=e->next;
}
++st;
}
}
int main()
{
int n,m,s,a,x,y;
freopen("bfs.in","r",stdin);
freopen("bfs.out","w",stdout);
scanf("%ld%ld%ld",&n,&m,&s);
for(i=1;i<=m;++i)
{
scanf("%ld%ld",&x,&y);
adauga(x,y);
}
coada[1]=s;
vizitat[s]=1;
bfs(s);
for(i=1;i<=n;++i)
{
if(pasi[i]==0)
{
if(i==s)
printf("0 ");
else
printf("-1 ");
}
else
printf("%ldd ",pasi[i]);
}
return 0;
}