Pagini recente » Cod sursa (job #1305115) | Cod sursa (job #2316303) | Cod sursa (job #202935) | Rating Popa Andrei (andreipopa97) | Cod sursa (job #3132866)
//
// 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;
}