Cod sursa(job #1891535)

Utilizator vlasiuflaviusVlasiu Flavius vlasiuflavius Data 24 februarie 2017 09:33:01
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
///FLAVIUS, UBESTE-MA
#include <iostream>
#include <fstream>

using namespace std;

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

int n,i,j,v[1010][1010],k;

int main()
{

    fin>>n;
    for( i = 1 ; i <= n ; i++ )
    {
        for( j = 1 ; j <= n ; j++ )
        {
            fin>>v[ i ][ j ];
            if( v[ i ][ j ] == 0 )
            v[ i ][ j ] = 1000000;
        }
    }

    for( k = 1 ; k <= n ; k++ )
    for( i = 1 ; i <= n ; i++ )
    for( j = 1 ; j <= n ; j++ )
        if( i != j && i != k && j != k )
            v[ i ][ j ] = min( v[ i ][ j ] , v[ i ][ k ] + v[ k ][ j ] );

    for( i = 1 ; i <= n ; i++ )
    {
        for( j = 1 ; j <= n ; j++ )
        {
            if( v[ i ][ j ] < 1000000 )
                fout<<v[ i ][ j ]<<' ';
            else
                fout<<0<<' ';
        }
        fout<<'\n';
    }

    return 0;
}