Cod sursa(job #2856751)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 24 februarie 2022 11:45:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#define INF 1e9
using namespace std;

ifstream cin( "royfloyd.in" );
ofstream cout( "royfloyd.out" );

int rf[ 102 ][ 102 ];
int n, cost;

int main()
{
    cin >> n;
    for( int i = 0; i < n; i++ ) {
        for( int j = 0; j < n; j++ ) {
            cin >> cost;
            if( cost == 0 )
                cost = INF;
            rf[ i ][ j ] = cost;
        }
        rf[ i ][ i ] = 0;
    }

    for( int k = 0; k < n; k++ )
        for( int i = 0; i < n; i++ )
            for( int j = 0; j < n; j++ )
                rf[ i ][ j ] = min( rf[ i ][ j ], rf[ i ][ k ] + rf[ k ][ j ] );

    for( int i = 0; i < n; i++ ) {
        for( int j = 0; j < n;j++ )
            cout << rf[ i ][ j ] << ' ';
        cout << '\n';
    }
    return 0;
}