Cod sursa(job #269363)

Utilizator petrecgClinciu Glisca Petre petrecg Data 2 martie 2009 20:25:58
Problema BFS - Parcurgere in latime Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
long a[10][10],v[100],c[100],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;
}