Cod sursa(job #2289015)

Utilizator ShouldTryAdam Robert Mihai ShouldTry Data 24 noiembrie 2018 10:22:06
Problema Algoritmul Bellman-Ford Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#define inf 1000000000
#include <fstream>
using namespace std;
ifstream fin ("bellmanford.in");
ofstream fout ("bellmanford.out");
long x[22000][22000], n , m, t[50000], d[50000];
void bellman_ford (int k)
{int i, j, l;
 for (i=1;i<=n;i++)
     {t[i]=0;
      d[i]=inf;
     }
 d[k]=0;
 for (l=1;l<=n;l++)
      {
       for (i=1;i<=n;i++)
             for (j=1;j<=n;j++)
                if(d[i]!=inf && x[i][j]!=inf)
                   if(d[j]>d[i]+x[i][j])
                      {d[j]=d[i]+x[i][j];
                      t[j]=i;
                      }
      }
}
int main()
{fin >> n >> m ;
 int a, b, c;
 for (int i=1;i<=n;i++)
      for (int j=1;j<=n;j++)
          if(i!=j)x[i][j]=inf;
 for (int i=1;i<=m;i++)
    {fin >> a >> b >> c;
     x[a][b]=c;
    }
    fin.close ();
bellman_ford(1);
for (int i=2;i<=n;i++)
     fout << d[i] << " ";
fout.close ();
    return 0;
}