Pagini recente » Cod sursa (job #2225567) | Cod sursa (job #2165791) | Cod sursa (job #1930731) | Cod sursa (job #1740971) | Cod sursa (job #616748)
Cod sursa(job #616748)
#include<stdio.h>
int a[10000][10000],viz[10000],sol[10000],cost[10000],c[10000],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;
}
viz[s]=1;
sol[s]=0;
c[1]=s;
cost[1]=0;
ps=pi=1;
while(ps<=pi)
{
for(i=1;i<=n;i++)
if(a[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;
}