Pagini recente » Cod sursa (job #894330) | Cod sursa (job #1976025) | Cod sursa (job #699565) | Cod sursa (job #66673) | Cod sursa (job #616753)
Cod sursa(job #616753)
#include<stdio.h>
#include<iostream.h>
int a[1000][1000],viz[100000],sol[100000],cost[100000],c[100000],n,m,x,y,s;
int main()
{
int i, ps, pi;
freopen("bfs.in", "r" ,stdin);
freopen("bfs.out", "w", stdout);
scanf("%d %d %d", &n, &m, &s);
for(i=1;i<=m;i++)
{
scanf("%d %d", &x, &y);
a[x][y]=1;
}
ps=pi=1;
viz[s]=1;
sol[s]=0;
c[1]=s;
cost[1]=0;
while(ps<=pi)
{
for(i=1;i<=n;i++)
if(a[c[ps]][i]==1&&viz[i]==0)
{
pi++;
c[pi]=i;
viz[i]=1;
cost[pi]=cost[ps]+1;
sol[i]=cost[pi];
}
ps++;
}
for(i=1;i<=n;i++)
{
if(i!=s &&sol[i]==0)
sol[i]=-1;
printf("%d ", sol[i]);
}
return 0;
}