Cod sursa(job #2558325)

Utilizator recapitulareOJIScarlat Marius Stefan recapitulareOJI Data 26 februarie 2020 14:54:30
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

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

const int NMAX = 110;
const int INF = (1LL << 20) - 1;

int n,a[NMAX][NMAX];

void royfloyd(){
    
    for(int k = 1;k <= n;++k){
        
        for(int i = 1;i <= n;++i)
            for(int j = 1;j <= n;++j)
                if(a[i][j] > a[i][k] + a[k][j])
                    a[i][j] = a[i][k] + a[k][j];
    }
}

int main(){
    
    f >> n;
    
    for(int i = 1;i <= n;++i)
        for(int j = 1;j <= n;++j){
            f >> a[i][j];
            if(a[i][j] == 0)
                a[i][j] = INF;
        }
    
    royfloyd();
    
    for(int i = 1;i <= n;++i,g << '\n')
        for(int j = 1;j <= n;++j)
            g << a[i][j] << ' ';
    
    return 0;
}