Pagini recente » Cod sursa (job #1509974) | Cod sursa (job #2336925) | Cod sursa (job #1773395) | Cod sursa (job #2336930) | Cod sursa (job #2920245)
#define maxs(a, b) a = (a > b) ? a : b
#define mins(a, b) a = (a < b) ? a : b
#define all(a) a.begin(), a.end()
#define rng(a, i, j) a.begin() + i, a.begin() + j
#define aall(a, n) a + 1, a + 1 + n
#define arng(a, i, j) a + i, a + j
#define pb push_back
#define ins insert
#define sz(a) (int)a.size()
#define r inFile
#define w outFile
#include <fstream>
#include <iostream>
const int NMAX = 1e2;
int adj[1 + NMAX][1 + NMAX];
int main() {
std::ifstream inFile("royfloyd.in");
std::ofstream outFile("royfloyd.out");
int n;
r >> n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
r >> adj[i][j];
}
}
for (int k = 1; k <= n; ++k) {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
if (adj[i][k] && adj[k][j] &&
(adj[i][j] > adj[i][k] + adj[k][j] || !adj[i][j]) && i != j) {
adj[i][j] = adj[i][k] + adj[k][j];
}
}
}
}
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
w << adj[i][j] << ' ';
}
w << '\n';
}
return 0;
}