Pagini recente » Cod sursa (job #538618) | Cod sursa (job #1874048) | Cod sursa (job #2227956) | Cod sursa (job #1789018) | Cod sursa (job #2717119)
#include <bits/stdc++.h>
using namespace std;
const int MMAX = 250001;
const int NMAX = 50001;
long long dist[NMAX];
const long long INF = (long long)1e17;
struct ura {int a, b, cost;};
ura muchii[MMAX];
int main() {
freopen ("bellmanford.in", "r", stdin);
freopen ("bellmanford.out", "w", stdout);
int n, m, i, j, pp;
scanf ("%d%d", &n, &m);
for (i = 1; i <= m; i++) {
scanf ("%d%d%d", &muchii[i].a, &muchii[i].b, &muchii[i].cost);
}
for (i = 2; i <= n; i++) {
dist[i] = INF;
}
dist[1] = 0;
for (i = 1; i < n; i++) {
for (j = 1; j <= m; j++) {
if (dist[muchii[i].a] != INF && dist[muchii[i].a] + muchii[i].cost < dist[muchii[i].b])
dist[muchii[i].b] = dist[muchii[i].a] + muchii[i].cost;
}
}
pp = 0;
for (j = 1; j <= m; j++) {
if (dist[muchii[i].a] != INF && dist[muchii[i].a] + muchii[i].cost < dist[muchii[i].b])
pp = -1;
}
if (pp == -1)
printf ("Ciclu negativ!");
else
for (i = 2; i <= n; i++)
printf ("%lld ", dist[i]);
return 0;
}