Pagini recente » Cod sursa (job #464093) | Cod sursa (job #1184358) | Cod sursa (job #527161) | Cod sursa (job #115455) | Cod sursa (job #616776)
Cod sursa(job #616776)
#include<stdio.h>
int a[1000][1000],viz[1000],sol[1000],cost[1000],c[1000];
int 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;
c[1]=s;
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;
}