Cod sursa(job #290348)

Utilizator stanesealexStanese Alex stanesealex Data 27 martie 2009 19:57:37
Problema BFS - Parcurgere in latime Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
struct elem
{
int x[100],y;
};
elem a[100];
int v[10000],sol[10000];
int main()
{
int n,m,i,k,l,s,j,cost[10000];
FILE *f=fopen("bfs.in","r");
FILE *g=fopen("bfs.out","w");
fscanf(f,"%d %d",&n,&m);
for (i=1;i<=m;i++)
     {
     fscanf(f,"%d %d %d",&k,&l,&s);
     a[k].y++;
     a[k].x[a[k].y]=l;
     }
i=1;
cost[s]=0;
sol[1]=s;
v[s]=1;
k=1;
while (sol[i]!=0)
     {
     for (j=1;j<=a[sol[i]].y;j++)
	   {
	   if (v[a[sol[i]].x[j]]==0)
	      {
	      k++;
	      sol[k]=a[sol[i]].x[j];
	      v[a[sol[k]].x[j]]=1;
	      cost[a[sol[k]].x[j]]=i;
	      }
	   }
     i++;
     }
for (i=1;i<=n;i++)
	{
	if (cost[i]==0)
	fprintf(g,"%d ",-1);
	else
	fprintf(g,"%d ",cost[i]);
	}
return 0;
}