Pagini recente » Cod sursa (job #318813) | Cod sursa (job #833253) | Cod sursa (job #68672) | Cod sursa (job #117426) | Cod sursa (job #269376)
Cod sursa(job #269376)
#include <stdio.h>
long a[1000][1000],v[10000],c[10000],l,q,i,s,n,m,x,y;
int main()
{freopen("bfs.in","r",stdin);freopen("bfs.out","w",stdout);
fscanf(stdin,"%ld%ld%ld",&n,&m,&s);
for(i=1;i<=m;i++){fscanf(stdin,"%ld%ld",&x,&y);a[x][0]++;a[x][a[x][0]]=y;}
v[s]=1;c[1]=s;q=1;l=1;
while(q<n&&c[q])
{for(i=1;i<=a[c[q]][0];i++)
if(v[a[c[q]][i]]==0){l++;c[l]=a[c[q]][i];v[a[c[q]][i]]=v[c[q]]+1;}
q++;
}
for(i=1;i<=n;i++)if(v[i]==0)fprintf(stdout,"-1 ");else fprintf(stdout,"%ld ",v[i]-1);
fclose(stdin);fclose(stdout);
return 0;
}