Pagini recente » Cod sursa (job #556500) | Cod sursa (job #1407092) | Cod sursa (job #2511844) | Cod sursa (job #1502134) | Cod sursa (job #1111297)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("bellmanford.in");
ofstream fout("bellmanford.out");
struct muchie {
int x, y, c;
};
const int INF = 1000000000;
int n, i, j, a, b, c, m, vertex[50001];
muchie edge[25001];
int main() {
fin >> n >> m;
for(i = 1; i <= m; i++) {
fin >> a >> b >> c;
edge[i] = {a, b, c};
}
vertex[1] = 0;
for(i = 2; i <= n; i++) {
vertex[i] = INF;
}
for(i = 1; i < n; i++) {
for(j = 1; j <= m; j++) {
a = edge[j].x;
b = edge[j].y;
c = edge[j].c;
if (vertex[b] > vertex[a] + c) {
vertex[b] = vertex[a] + c;
}
}
}
for(i = 1; i <= m; i++) {
a = edge[i].x;
b = edge[i].y;
c = edge[i].c;
if (vertex[b] > vertex[a] + c) {
fout << "Ciclu negativ!";
return 0;
}
}
for(i = 2; i <= n; i++) {
fout << vertex[i] << ' ';
}
fin.close();
fout.close();
return 0;
}