Cod sursa(job #2025063)

Utilizator vlasiuflaviusVlasiu Flavius vlasiuflavius Data 21 septembrie 2017 20:17:27
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#define inf 1e9
using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
int n,i,j,k,cost[105][105],dist[105][105],a;
int main()
{
    fin>>n;
    for( i = 1 ; i <= n ; i++ )
    {
        for( j = 1 ; j <= n ; j++ )
        {
            fin>>a;
            cost[ i ][ j ] = ( a ? a : inf );
            dist[ i ][ j ] = cost[ i ][ j ];
        }
    }
    for( k = 1 ; k <= n ; k++ )
        for( i = 1 ; i <= n ; i++ )
            for( j = i + 1 ; j <= n ; j++ )
                dist[ i ][ j ] = min( dist[ i ][ j ] , dist[ i ][ k ] + dist[ k ][ j ] );
    for( i = 1 ; i <= n ; i++ )
    {
        for( j = 1 ; j <= n ; j++ )
            fout<<( dist[ i ][ j ] != inf ? dist[ i ][ j ] : 0 )<<" ";
        fout<<'\n';
    }
}