Pagini recente » Cod sursa (job #2534577) | Cod sursa (job #2959883) | Cod sursa (job #223685) | Cod sursa (job #2307686) | Cod sursa (job #282616)
Cod sursa(job #282616)
#include <stdio.h>
long m,n,i,j,l,x,y,c,cost[1400][1400],val[5000],v[5000],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;
}