Pagini recente » Cod sursa (job #784913) | Cod sursa (job #1372452) | Cod sursa (job #887951) | Cod sursa (job #2236843) | Cod sursa (job #552464)
Cod sursa(job #552464)
#include <fstream>
#include <vector>
#define siz 50010
using namespace std;
struct adat {
long kezd,veg,ut;
};
long n,m,i,j,a,b,x,dist[siz];
char ok;
vector< adat > v;
int neg() {
for (int q=0;q<m;++q)
if (dist[v[q].kezd]>dist[v[q].kezd]+v[q].ut) return 1;
return 0;
}
int main() {
ifstream in("bellmanford.in");
ofstream out("bellmanford.out");
in >> n >> m;
for (i=1;i<=n;++i) {
in >> a >> b >> x;
v.push_back((adat){a,b,x});
}
ok=1;
for (i=1;i<n&&ok==1;++i) {
ok=0;
for (j=0;j<m;++j)
if (dist[v[j].veg]>dist[v[j].kezd]+v[j].ut) {
dist[v[j].veg]=dist[v[j].kezd]+v[j].ut;
ok=1;
}
}
if (neg()) out << "Ciclu negativ!"; else
for (i=2;i<=n;++i) out << dist[i] << " ";
in.close();
out.close();
return 0;
}