Cod sursa(job #3319637)

Utilizator prodsevenStefan Albu prodseven Data 2 noiembrie 2025 12:21:03
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#include <climits>

using namespace std;

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

int n;
vector<vector<int>> d;

int main() {
    cin >> n;
    d.assign(n + 2, vector<int>(n + 2, 0));
    for (int i = 1 ; i <= n ; ++i) {
        for (int j = 1 ; j <= n ; ++j) {
            cin >> d[i][j];
            d[i][j] = d[i][j] == 0 && i != j ? INT_MAX : d[i][j];
        }
    }
    for (int k = 1 ; k <= n ; ++k) {
        for (int i = 1 ; i <= n ; ++i) {
            for (int j = 1 ; j <= n ; ++j) {
                d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
            }
        }
    }
    for (int i = 1 ; i <= n ; ++i) {
        for (int j = 1 ; j <= n ; ++j) {
            cout << (d[i][j] == INT_MAX ? 0 : d[i][j]) << " ";
        }
        cout << "\n";
    }
    return 0;
}