Pagini recente » Cod sursa (job #2687719) | Cod sursa (job #17978) | Cod sursa (job #3121415) | Cod sursa (job #1025492) | Cod sursa (job #279862)
Cod sursa(job #279862)
#include <stdio.h>
long m,n,i,j,l,x,y,c,cost[10000][10000],val[10000],v[10000],min;
int main()
{freopen("dijkstra.in","r",stdin);freopen("dijkstra.out","w",stdout);
fscanf(stdin,"%ld%ld",&n,&m);l=n;
for(i=1;i<=m;i++){fscanf(stdin,"%ld%ld%ld",&x,&y,&c);cost[x][y]=c;}
for(i=2;i<=n;i++)val[i]=100000000;
for(i=1;i<=n;i++)
{min=100000000;
for(j=1;j<=n;j++)if(val[j]<min&&!v[j]){x=j;min=val[j];}
v[x]=1;
for(j=1;j<=n;j++)if(cost[x][j]&&cost[x][j]+val[x]<val[j])val[j]=cost[x][j]+val[x];
}
for(i=2;i<=n;i++)if(val[i]!=100000000)printf("%ld ",val[i]);else printf("0 ");
fclose(stdout);fclose(stdin);
return 0;
}