Cod sursa(job #1221302)

Utilizator AndreiBarbutaAndrei Barbuta AndreiBarbuta Data 20 august 2014 02:30:48
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

#define IN "royfloyd.in"
#define OUT "royfloyd.out"

const int MAX = 114 ;

using namespace std;

ifstream fin ( IN ) ;
ofstream fout ( OUT ) ;

int a [ MAX ] [ MAX ] ;

int main()
{
    int n ;
    fin >> n ;
    for ( register int i = 1 ; i <= n ; ++ i )
        for ( register int j = 1 ; j <= n ; ++ j )
            fin >> a [ i ] [ j ] ;
    for ( register int k = 1 ; k <= n ; ++ k )
        for ( register int i = 1 ; i <= n ; ++ i )
            for ( register int j = 1 ; j <= n ; ++ j )
                if ( a [ i ] [ k ] and a [ k ] [ j ] and i != j and ( a [ i ] [ j ] > a [ i ] [ k ] + a [ k ] [ j ] or ! a [ i ] [ j ] ) )
                    a [ i ] [ j ] = a [ i ] [ k ] + a [ k ] [ j ] ;
    for ( register int i = 1 ; i <= n ; ++ i ){
        for ( register int j = 1 ; j <= n ; ++ j )
            fout << a [ i ] [ j ] << ' ' ;
        fout << '\n' ;
    }
    return 0;
}