Pagini recente » Cod sursa (job #584325) | Cod sursa (job #1282374) | Clasament joaca | Cod sursa (job #554333) | Cod sursa (job #1118285)
#include <cstdio>
int N, A[101][101];
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
scanf("%d", &N);
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
scanf("%d", &A[i][j]);
}
}
for (int k = 1; k <= N; ++k) {
for (int i = 1; i <= N; ++i) {
if (i == k) continue;
for (int j = 1; j <= N; ++j) {
if (i == j || k == j) continue;
if ( !(A[i][k] && A[k][j] && A[i][j]) ) continue;
if (A[i][k] + A[k][j] < A[i][j]) {
A[i][j] = A[i][k] + A[k][j];
}
}
}
}
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
printf("%d ", A[i][j]);
}
printf("\n");
}
return 0;
}