Pagini recente » Cod sursa (job #2438137) | Cod sursa (job #2735349) | Cod sursa (job #1668902) | Cod sursa (job #2443839) | Cod sursa (job #808501)
Cod sursa(job #808501)
#include <cstdio>
#include <algorithm>
using namespace std;
inline int next_int() {
int d;
scanf("%d", &d);
return d;
}
int M[100][100];
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int N = next_int();
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
M[i][j] = next_int();
M[i][j] = (M[i][j] == 0) ? (1 << 28) : (M[i][j]);
}
}
for (int i = 0; i < N; i++) {
M[i][i] = 0;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
for (int k = 0; k < N; k++) {
M[j][k] = min(M[j][k], M[j][i] + M[i][k]);
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", (M[i][j] == (1 << 28)) ? (0) : (M[i][j]));
}
printf("\n");
}
return 0;
}