Pagini recente » Istoria paginii monthly-2014/runda-9/clasament | Cod sursa (job #2980971) | Cod sursa (job #1246257) | Cod sursa (job #2160129) | Cod sursa (job #193170)
Cod sursa(job #193170)
#include <stdio.h>
#define N 250000
int n,j;
int e;
int a[N],b[N],c[N];
int d[50000];
#define INFINITY 1000000
void printDist() {
int i;
for (i = 1; i < n; ++i)
if(d[i]==INFINITY)
printf("0 ");
else
printf("%d ",d[i]);
printf("\n");
}
void bellman_ford(int s) {
int i, j;
for (i = 0; i < n; ++i)
d[i] = INFINITY;
d[s] = 0;
for (i = 0; i < n - 1; ++i)
for (j = 0; j < e; ++j)
if (d[a[j]] + c[j] < d[b[j]])
d[b[j]] = d[a[j]] + c[j];
}
int main () {
int i;
freopen("a.in","r",stdin);
freopen("a.out","w",stdout);
scanf("%d", &n);
scanf("%d",&e);
for(i=0;i<e;++i){
scanf("%d%d%d",&a[i],&b[i],&c[i]);
--a[i];--b[i];
}
bellman_ford(0);
printDist();
return 0;
}