Pagini recente » Cod sursa (job #1156212) | Cod sursa (job #1491220) | Cod sursa (job #578392) | Cod sursa (job #2536607) | Cod sursa (job #3282560)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("bellmanford.in");
ofstream fout("bellmanford.out");
struct edge{
int a, b, c;
};
vector <int> dist;
vector <edge> edges;
int n, m, ok=1;
int main(){
fin>>n>>m;
dist.resize(n+1,INT_MAX);
edges.resize(m+1);
for(int i=0;i<m;i++)
fin>>edges[i].a>>edges[i].b>>edges[i].c;
dist[1]=0;
for(int i=1;i<n;i++)
for(int j=0;j<m;j++)
if(dist[edges[j].b]>dist[edges[j].a]+edges[j].c)
dist[edges[j].b]=dist[edges[j].a]+edges[j].c;
for(int j=0;j<m&&ok;j++){
if(dist[edges[j].b]>dist[edges[j].a]+edges[j].c)
ok=0;
}
if(ok){
for(int i=2;i<=n;i++)
fout<<dist[i]<<' ';
}
else
fout<<"Ciclu negativ!";
return 0;
}