Cod sursa(job #3231975)

Utilizator constantin_tiberiuConstantin Tiberiu Zota constantin_tiberiu Data 28 mai 2024 13:42:18
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>
using namespace std;

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

int graf[101][101], n;

int main() {
    fin >> n;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            fin >> graf[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 != j){
                    if(graf[i][k] && graf[k][j]){
                        int candidat = graf[i][k] + graf[k][j];
                        if(graf[i][j] == 0) graf[i][j] = candidat;
                        else graf[i][j] = min(graf[i][j], candidat);
                    }
                }
            }
        }
    }

    for (int i = 1; i <= n; i++){
        for (int j = 1; j <= n; j++){
            fout << graf[i][j] << ' ';
        }
        fout << '\n';
    }

    fin.close();
    fout.close();
    return 0;
}