Cod sursa(job #2859189)

Utilizator Fantastic_Mantudor voicu Fantastic_Man Data 28 februarie 2022 23:00:26
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
using namespace std;
const int nmax = 100;
int dp[nmax + 1][nmax + 1];
ifstream fin ( "royfloyd.in" );
ofstream fout ( "royfloyd.out" );
int main () {
    int n;
    fin >> n;
    for ( int i = 1; i <= n; i++ )
        for ( int j = 1; j <= n; j++ ) {
            fin >> dp[i][j];
            if ( i != j && dp[i][j] == 0 )
                dp[i][j] = 1e9;
        }
    for ( int k = 1; k <= n; k++ )
        for ( int i = 1; i <= n; i++ )
            for ( int j = 1; j <= n; j++ )
                dp[i][j] = min ( dp[i][j], dp[i][k] + dp[k][j] );
    
    for ( int i = 1; i <= n; i++ )
        for ( int j = 1; j <= n; j++ )
            fout << dp[i][j] << " \n"[j == n];
    
    return 0;
}