Cod sursa(job #2091009)

Utilizator VarticeanNicolae Varticean Varticean Data 18 decembrie 2017 23:29:45
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int A[105][105], n;
int main()
{
     in >> n;
     int c;
     for( int i=1; i<=n; i++)
          for(int j=1; j<=n; j++)
          {
          in >> c;
          if( c ) A[i][j] = c; else A[i][j] = INT_MAX;
          }

     for(int k=1; k<=n; k++)
          for(int i=1; i<=n; i++)
          for( int j=1; j<=n; j++)
          if( A[i][k] !=INT_MAX && A[k][j] != INT_MAX && A[i][j] != INT_MAX )
          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++)
               if( A[i][j] != INT_MAX ) out << A[i][j] <<' ';
                  else out << 0 << ' ' ;
          out << '\n';
     }


    return 0;
}