Cod sursa(job #493593)

Utilizator mlupseLupse-Turpan Mircea mlupse Data 18 octombrie 2010 20:03:50
Problema Algoritmul Bellman-Ford Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
/*
  Bellman-Ford
*/

#include <fstream>
#define inf 1000000000
using namespace std;
ifstream f("bellmanford.in");
ofstream g("bellmanford.out");
struct muchie
{
long u,v,w;       
}e[250005];
long cost[50010],cycle,i,j,n,m;
int main()
{
f>>n>>m;
for(i=1; i<=m; i++)
   f>>e[i].u>>e[i].v>>e[i].w;

cost[1]=0;
  for(i=2; i<=n; i++)
     cost[i]=inf;

for(i=1;i<=n-1;i++)
  for(j=1; j<=m; j++)
    if(cost[e[j].u]+e[j].w<cost[e[j].v])
      cost[e[j].v]=cost[e[j].u]+e[j].w;

cycle=0;
for(j=1; j<=m; j++)
    if(cost[e[j].u]+e[j].w<cost[e[j].v])
       cycle=1;
       
if(cycle)
    {
        g<<"Ciclu negativ!\n";
        return 0;
    }
    for(i=2; i<=n; i++)
        g<<cost[i]<<" ";
return 0;
}