Pagini recente » Cod sursa (job #2810939) | Cod sursa (job #2339739) | Cod sursa (job #3192024) | Cod sursa (job #1318649) | Cod sursa (job #1240841)
#include <cstring>
#include <iostream>
#include <fstream>
#define MAXN 105
#define INF 0x3f3f3f3f
std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");
int n;
int a[MAXN][MAXN];
int main()
{
f >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
f >> a[i][j];
if (a[i][j] == 0 && i != j) {
a[i][j] = INF;
}
}
}
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
if (a[i][k] == 0) {
continue;
}
for (int j = 1; j <= n; j++) {
if (a[j][k] == 0) {
continue;
}
a[i][j] = std::min(a[i][j], a[i][k] + a[k][j]);
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (a[i][j] == INF) {
g << 0 << ' ';
} else {
g << a[i][j] << ' ';
}
}
g << '\n';
}
f.close();
g.close();
return 0;
}