Pagini recente » Cod sursa (job #1536165) | Cod sursa (job #234086) | Cod sursa (job #2539760) | Cod sursa (job #686672) | Cod sursa (job #290355)
Cod sursa(job #290355)
#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]);
}
fclose(f);
fclose(g);
return 0;
}