Cod sursa(job #2559333)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 27 februarie 2020 11:22:07
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

#define N 101
#define inf 1000001

using namespace std;

ifstream f ( "royfloyd.in" );
ofstream g ( "royfloyd.out" );

int d[N][N];

int main()
{   int n, i, j, k;
    f >> n;
    for ( i = 1; i <= n; i++ )
        for ( j = 1; j <= n; j++ ){
            f >> d[i][j];
            if ( d[i][j] == 0 )
                d[i][j] = inf;
        }
    for ( k = 1; k <= n; k++ )
        for ( i = 1; i <= n; i++ )
            for ( j = 1; j <= n; j++ )
                if ( d[i][k] != inf && d[k][j] != inf && i != j )
                    d[i][j] = min ( d[i][j], d[i][k] + d[k][j] );
    for ( i = 1; i <= n; i++ ){
        for ( j = 1; j <= n; j++ )
            if ( d[i][j] != inf )
                g << d[i][j] << ' ';
            else
                g << 0 << ' ';
        g << '\n';
    }
    return 0;
}