Cod sursa(job #2677232)

Utilizator Tudor06MusatTudor Tudor06 Data 26 noiembrie 2020 08:27:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
# include <iostream>
# include <fstream>
 
using namespace std;
 
# define MAX_N 100
int p[MAX_N][MAX_N];
 
int main()
{
    ifstream fin( "royfloyd.in" );
    ofstream fout( "royfloyd.out" );
 
    int n, k, i, j;
 
    fin >> n;
 
    for ( i = 0; i < n; i ++ )
        for ( j = 0; j < n; j ++ )
            fin >> p[i][j];
 
    for ( k = 0; k < n; k ++ )
        for ( i = 0; i < n; i ++ )
            for ( j = 0; j < n; j ++ )
                if ( p[i][k] && p[k][j] && ( p[i][k] + p[k][j] < p[i][j] || !p[i][j] ) && i != j )
                    p[i][j] = p[i][k] + p[k][j];
 
    for ( i = 0; i < n; i ++ ) {
        for ( j = 0; j < n; j ++ )
            fout << p[i][j] << ' ';
        fout << '\n';
    }
 
    fin.close();
    fout.close();
 
    return 0;
}