Pagini recente » Cod sursa (job #699793) | Cod sursa (job #2165181)
#include <iostream>
#include <cstdio>
using namespace std;
#define DIM 103
int N, a[DIM][DIM];
int main() {
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d\n", &N);
for(int i = 1; i <= N; ++i) {
for(int j = 1; j <= N; ++j) {
scanf("%d", &a[i][j]);
if(a[i][j] == 0 && i != j) a[i][j] = 1e9;
}
}
for(int k = 1; k <= N; ++k) {
for(int i = 1; i <= N; ++i) {
for(int j = 1; j <= N; ++j) {
if(a[i][k] && a[k][j] && 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) {
if(a[i][j] == 1e9) a[i][j] = 0;
cout << a[i][j] << ' ';
}
cout << '\n';
}
return 0;
}