Cod sursa(job #3364370)

Utilizator daviddxmqStan David Andrei daviddxmq Data 2 septembrie 2026 12:18:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int MAXN = 105;

int n;
int mat[MAXN][MAXN];

int main() {
    in >> n;
    for (int i = 1; i <= n; ++i)
        for (int j = 1; j <= n; ++j)
            in >> mat[i][j];
    for (int nod = 1; nod <= n; ++nod)
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= n; ++j)
                if (mat[i][nod] && mat[nod][j] && (mat[i][j] > mat[i][nod] + mat[nod][j] || (!mat[i][j] && i != j)))
                    mat[i][j] = mat[i][nod] + mat[nod][j];
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= n; ++j)
            out << mat[i][j] << " ";
        out << "\n";
    }
    return 0;
}