Cod sursa(job #721783)

Utilizator morlockRadu Tatomir morlock Data 24 martie 2012 09:45:29
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <limits.h>
#define nmax 105
using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

int n, a[nmax][nmax], inf = INT_MAX;

void citeste()
{
    in>>n;
    for (int i=1; i<=n; ++i)
     {
         for (int j=1; j<=n; ++j)
          {
              in>>a[i][j];
              if ( a[i][j] == 0 && i != j )
               a[i][j] = inf;
          }
     }
}

int main()
{
    citeste();

    for (int k=1; k<=n; ++k)
     for (int i=1; i<=n; ++i)
      for (int j=1; j<=n; ++j)
       a[i][j] = min( a[i][j], a[i][k] + a[k][j] );

    for (int i=1; i<=n; ++i)
     {
         for (int j=1; j<=n; ++j)
          out<<a[i][j]<<" ";
         out<<'\n';
     }

return 0;
}