Pagini recente » Cod sursa (job #159146) | Cod sursa (job #2637435) | Cod sursa (job #1741652) | Cod sursa (job #2452752) | Cod sursa (job #641162)
Cod sursa(job #641162)
#include <stdio.h>
#include <math.h>
#define INF 1000000000
#define X 50010
long x[X * 5], y[X * 5], c[X * 5], cost[X], n, m, i, viz[X], muchie;
int main() {
freopen("bellmanford.in", "r", stdin);
freopen("bellmanford.out", "w", stdout);
scanf("%ld %ld", &n, &m);
muchie = m;
for (i = 1; i <= n; ++i) cost[i] = INF;
cost[1] = 0;
for (i = 1; i <= m; ++i) scanf("%ld %ld %ld", &x[i], &y[i], &c[i]);
long h = 0;
long aux = 1;
while (aux && h < n + 2) {
aux = 0;
++h;
for (i = 1; i <= m; ++i) {
if (cost[x[i]] + c[i] < cost[y[i]]) {
cost[y[i]] = cost[x[i]] + c[i];
viz[i] = 1;
aux = 1;
}
}
}
if (h == n + 2) {
printf("Ciclu negativ!\n");
} else {
for (i = 2; i <= n; ++i) {
printf("%ld ", cost[i]);
}
}
return 0;
}