Pagini recente » Cod sursa (job #180213) | Cod sursa (job #2729264) | Cod sursa (job #434255) | Cod sursa (job #2836935) | Cod sursa (job #2453696)
#include <fstream>
#define inf 1000000000
using namespace std;
ifstream f("bellmanford.in");
ofstream g("bellmanford.out");
long n, m, cost[50010], cn = 0;
struct muchie{
long a, b, c;
} muchii[250010];
int main() {
f >> n >> m;
for(int i = 1; i <= m; i++)
f >> muchii[i].a >> muchii[i].b >> muchii[i].c;
cost[1] = 0;
for(int i = 2; i <= n; i++)
cost[i] = inf;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
if(cost[muchii[j].a] + muchii[j].c < cost[muchii[j].b])
cost[muchii[j].b] = cost[muchii[j].a] + muchii[j].c;
for(int i = 1; i <= m; i++)
if(cost[muchii[i].a] + muchii[i].c < cost[muchii[i].b]) {
g << "Ciclu negativ!";
cn = 1;
break;
}
if(!cn)
for(int i = 2; i <= n; i++)
g << cost[i] << ' ';
}