Pagini recente » Cod sursa (job #2812784) | Cod sursa (job #156277) | Cod sursa (job #2749612) | Cod sursa (job #2918109) | Cod sursa (job #2279060)
#include <bits/stdc++.h>
using namespace std;
ifstream fi("royfloyd.in");
ofstream fo("royfloyd.out");
const int maxn = 100;
const int inf = 0x3f3f3f3f;
int n, d[maxn + 1][maxn + 1], c[maxn + 1][maxn + 1];
int main()
{
fi >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
fi >> c[ i ][ j ];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
d[ i ][ j ] = inf;
if (c[ i ][ j ])
d[ i ][ j ] = c[ i ][ j ];
}
d[ i ][ i ] = 0;
}
for (int k = 1; k <= n; k++) {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
if (k != i && k != j) {
if (d[ i ][ k ] != inf && d[ k ][ j ] != inf)
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++) {
if (d[ i ][ j ] != inf) {
fo << d[ i ][ j ] << ' ';
} else {
fo << "0 ";
}
}
fo << '\n';
}
return 0;
}