Cod sursa(job #2289003)

Utilizator daytarelChita Catalin Adrian daytarel Data 24 noiembrie 2018 10:15:15
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#define inf 1.e4
#include <iomanip>
using namespace std;
  int n,m,i,j,c,a[200][200],k,t;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int main()
{
    f>>n>>m;
  //inff toata matricea
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
          if(i!=j)a[i][j]=inf;

//citirea costurilor
    for(t=1;t<=m;t++)
    {
        f>>i>>j>>c;
        a[i][j]=c;
    }
//alg

  for(k=1;k<=n;k++)
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
        if(a[i][j]>a[i][k]+a[k][j])
               a[i][j]=a[i][k]+a[k][j];

           //-1
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++)
                    if(a[i][j]==10000)a[i][j]=-1;

      //afisare
   for(i=1;i<=n;i++){
      for(j=1;j<=n;j++)
          g<<a[i][j]<<" ";

          g<<endl;

   }

    return 0;
}