Pagini recente » Cod sursa (job #3126246) | Cod sursa (job #1286646) | Cod sursa (job #683638) | Cod sursa (job #1858088) | Cod sursa (job #633436)
Cod sursa(job #633436)
#include <cstdio>
#define file_in "dijkstra.in"
#define file_out "dijkstra.out"
#define nmax 505001
int i,j,N,M;
int d[nmax];
int x[nmax];
int y[nmax];
int c[nmax];
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &N, &M);
for (i=1;i<=M;++i){
scanf("%d %d %d", &x[i], &y[i], &c[i]);
if (x[i]==1)
d[y[i]]=c[i];
}
for (i=2;i<=N;++i)
if (d[i]==0)
d[i]=0x3f3f3f3f;
int ok=0;
while(!ok){
ok=1;
for (i=1;i<=M;++i)
if (d[y[i]]>d[x[i]]+c[i]){
ok=0;
d[y[i]]=d[x[i]]+c[i];
}
}
for (i=2;i<=N;++i)
if (d[i]==0x3f3f3f3f)
printf("0 ");
else
printf("%d ", d[i]);
return 0;
}