Cod sursa(job #2941332)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 17 noiembrie 2022 17:29:31
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>

using namespace std;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");

int a[101][101];

int main() {
    int n;
    fin >> n;
    for ( int i = 1; i <= n; ++i )
        for ( int j = 1; j <= n; ++j )  
                a[i][j] = (1 << 31);
    for ( int i = 1; i <= n; ++i)   
        for (int j = 1; j <= n; ++j) {    
            fin >> a[i][j];
        }
    for ( int k = 1; k <= n; ++k) {
        for ( int i = 1; i <= n; ++i)   
            for ( int j = 1; j <= n; ++j)   
                    if( i != k and j != k and i != j and a[i][k] + a[k][j] < a[i][j])
                            a[i][j]=  a[i][k] + a[k][j];
    }        
    for ( int i = 1; i <= n; ++i) {
            for ( int j = 1; j <= n; ++j)
                if ( a[i][j] == (1 <<31) || i == j)
                    fout << 0 << " " ;
                    else
                fout << a[i][j] << " ";
        fout << "\n";
    }
}