Cod sursa(job #3132866)

Utilizator AndreiBadAndrei Badulescu AndreiBad Data 24 mai 2023 00:06:22
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
//
//  main.cpp
//  Floyd-Warshall (infoarena)
//
//  Created by Andrei Bădulescu on 23.05.23.
//

#include <fstream>
#include <climits>

using namespace std;

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

const int N = 100;

long long matrix[N + 5][N + 5];

int main() {
    int size;
    cin >> size;

    for (auto i = 1; i <= size; i++) {
        for (auto j = 1; j <= size; j++) {
            cin >> matrix[i][j];

            if (matrix[i][j] == 0 && i != j) {
                matrix[i][j] = INT_MAX;
            }
        }
    }

    for (auto i = 1; i <= size; i++) {
        for (auto j = 1; j <= size; j++) {
            for (auto k = 1; k <= size; k++) {
                matrix[i][j] = min(matrix[i][k] + matrix[k][j], matrix[i][j]);
            }
        }
    }

    for (auto i = 1; i <= size; i++) {
        for (auto j = 1; j <= size; j++) {
            if (matrix[i][j] == INT_MAX && i != j) {
                matrix[i][j] = 0;
            }

            cout << matrix[i][j] << ' ';
        }

        cout << '\n';
    }

    return 0;
}