Cod sursa(job #2797546)

Utilizator SG2021StancuGeorge SG2021 Data 10 noiembrie 2021 08:16:20
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream> 
#include <fstream>

using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

int main()
{
    int n ; 
    
    f >> n ;

    int mat[n+1][n+1];

    for(int i = 1 ; i <= n ; i ++ )
    {
        for(int j = 1 ; j <= n ; j ++ )
        {
            f >> mat[i][j];
            if(i != j && mat[i][j] == 0) mat[i][j] = 1001;
        }
    }

    for(int k = 1 ; k <= n ; k ++ )
    {
        for(int i = 1 ; i <= n ; i++ )
        {
            for(int j = 1 ; j <= n ; j++ )
            {
                if(i != j && i!=k && j!=k )
                {
                    mat[i][j] = min((mat[i][k] + mat[k][j]) , mat[i][j]);

                } 
            }
        }
    }
    for(int i = 1 ; i <= n ; i ++ )
    {
        for(int j = 1 ; j <= n ; j ++ )
        {
            if(mat[i][j]==1001) g << "0" << " " ;
            else g << mat[i][j] << " " ; 
        }g << endl; 
    }
}