Cod sursa(job #269391)

Utilizator petrecgClinciu Glisca Petre petrecg Data 2 martie 2009 20:42:51
Problema BFS - Parcurgere in latime Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#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;
}