Cod sursa(job #1455231)

Utilizator petru.cehanCehan Petru petru.cehan Data 27 iunie 2015 14:35:11
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int N , c[101][101] ;

void Citire ()
{
    fin >> N ;
    int i , j ;
    for ( i =1 ; i <= N ; ++ i )
      for ( j = 1 ; j <= N ; ++ j )
              fin >> c[i][j];

}

void RoyFloyd ()
{
   int i ,j ,k ;
   for ( k = 1 ; k <= N ; ++ k )
      for ( i =1 ; i <= N ; ++ i )
         for ( j = 1 ; j <= N ; ++ j )
               if ( c [i][k] * c [k][j] != 0 && (c [i][j] >= c [i][k] + c [k][j] || !c [i][j] ) && i != j )
                        c [i][j] = c [i][k] + c [k][j] ;
               else
                   c[i][j] = c [i][j] ;

   for ( i =1 ; i <= N ; ++ i )
        {
             for ( j = 1 ; j <= N ; ++ j )
                 fout << c [i][j] <<" ";
         fout<< "\n" ;

        }
}
int main()
{
    Citire();
    RoyFloyd () ;
    return 0;
}