Pagini recente » Cod sursa (job #1075126) | Cod sursa (job #142120) | Cod sursa (job #2184127) | Statistici Vacaru Raluca-Ioana (raluca_vacaru) | Cod sursa (job #269391)
Cod sursa(job #269391)
#include <stdio.h>
long a[50000][100],v[100000],c[100000],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;
}