Cod sursa(job #2677246)

Utilizator Tudor06MusatTudor Tudor06 Data 26 noiembrie 2020 08:43:02
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 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;
}