Cod sursa(job #3341589)

Utilizator cyg_vladioanBirsan Vlad cyg_vladioan Data 20 februarie 2026 11:43:54
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <algorithm>

const int NMAX = 100;
const int INF = 1.e9;

int a[NMAX][NMAX];

int main() {
    std::ifstream fin("royfloyd.in");
    std::ofstream fout("royfloyd.out");

    int n;
    fin >> n;

    for(int i = 0; i < n; ++ i){
        for(int j = 0; j < n; ++ j) {
            fin >> a[i][j];
            if(a[i][j] == 0) {
                a[i][j] = INF;
            }
        }
    }

    for(int i = 0; i < n; ++ i) {
        for(int j = 0; j < n; ++ j) {
            if(i != j) {
                for(int k = 0; k < n; ++ k) {
                    a[i][j] = std::min(a[i][j], a[i][k] + a[k][j]);
                }
            }
        } 
    }

    for(int i = 0; i < n; ++ i){
        for(int j = 0; j < n; ++ j) {
            if(a[i][j] == INF) {
                fout << "0 ";
            } else {
                fout << a[i][j] << " ";
            }
        }
        fout << "\n";
    }

    return 0;
}