Pagini recente » Cod sursa (job #2869266) | Cod sursa (job #2253741) | Cod sursa (job #1867055) | Cod sursa (job #2166842) | Cod sursa (job #184285)
Cod sursa(job #184285)
#include <stdio.h>
int n, m;
int i, j, k, h, ok;
int d[50001];
struct {
int x, y, c;
} e[250001];
int main()
{
freopen("dijkstra.in", "r", stdin);
freopen("dijkstra.out", "w", stdout);
scanf("%d %d", &n, &m);
for ( h = 1; h <= m; h++ )
scanf("%d %d %d", &e[h].x, &e[h].y, &e[h].c);
for ( i = 1; i <= n; i++ ) d[i] = 100000000;
d[1] = 0;
for ( h = ok = 1; ok && h < n; h++ )
{
ok = 0;
for ( k = 1; k <= m; k++ )
{
i = e[k].x;
j = e[k].y;
if ( d[j] > d[i] + e[k].c )
{
d[j] = d[i] + e[k].c;
ok = 1;
}
}
}
for ( i = 2; i <= n; i++ )
printf("%d ", (d[i] == 100000000 ? 0 : d[i]));
printf("\n");
return 0;
}