Pagini recente » Cod sursa (job #1195537) | Cod sursa (job #615107) | Cod sursa (job #2371896) | Cod sursa (job #28304) | Cod sursa (job #2972578)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pi;
#define pb push_back
#define mp make_pair
#define f first
#define s second
struct edge {
int a, b, cost;
};
int n, m;
vector<edge> e;
const int INF = 1e9;
vi d(200001, INF);
void solve(){
cin >> n >> m;
for(int i = 0; i < m; i++){
int a, b, c;
cin >> a >> b >> c;
e.pb({a, b, c});
}
d[1] = 0;
bool changed;
for(int i = 0; i < n; i++){
changed = 0;
for(int j = 0; j < m; j++){
if(d[e[j].a] < INF){
if(d[e[j].b] > d[e[j].a] + e[j].cost){
d[e[j].b] = max(-INF, d[e[j].a] + e[j].cost);
changed = 1;
}
}
}
}
if(changed){
cout << "Ciclu negativ!\n";
return;
}
for(int i = 2; i <= n; i++)
cout << d[i] << ' ';
cout << '\n';
}
int main(){
freopen("bellmanford.in", "r", stdin);
freopen("bellmanford.out", "w", stdout);
ios::sync_with_stdio(0); cin.tie(0);
int t = 1;
//cin >> t;
while(t--){
solve();
}
}