Cod sursa(job #3130309)

Utilizator TODEToderita Mihai TODE Data 17 mai 2023 15:41:07
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;

ifstream in("royfloyd.in");
ofstream out("royfloyd.out");

const int N = 101 , INF = 1e9;
int m[N + 1][N + 1];
int n;
void roy_f(){
    for(int k = 1 ; k <= n ; k++){
        for(int i = 1 ; i <= n ; i++){
            for(int j = 1 ; j <= n ; j++){
                m[i][j] = min(m[i][j] , m[i][k] + m[k][j]);
            }
        }
    }

    for(int i = 1 ; i <= n ; i++ , out << '\n'){
        for(int j = 1 ; j <= n ; j++){
            if(m[i][j] == INF){
                m[i][j] = 0;
            }
            out << m[i][j] << ' ';
        }
    }
}

int main(){
    in >> n;
    for(int i = 1 ; i <= n ; i++){
        for(int j = 1 ; j <= n ; j++){
            in >> m[i][j];
            if(m[i][j] == 0 && i != j){
                m[i][j] = INF;
            }
        }
    }
    roy_f();
}