Pagini recente » Cod sursa (job #2318357) | Cod sursa (job #1713333) | Cod sursa (job #151262) | Cod sursa (job #2886840) | Cod sursa (job #2416317)
#include <stdio.h>
#include <bits/stdc++.h>
#define rep(i, n) for(int i = 0; i < n; i++)
#define REP(i,a,b) for(int i = a; i < b; i++)
using namespace std;
const int INF = 0x3f3f3f3f;
const int MaxN = 101;
int A[101][101], B[101][101];
int main(void) {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
rep(i, MaxN)
rep(j, MaxN) {
A[i][j] = INF;
}
int N;
cin >> N;
rep(i,N)
rep(j,N)
cin >> A[i][j];
rep(i, N)
REP(j,i+1, N) {
if (!A[i][j]) { A[i][j] = INF; }
if (!A[j][i]) { A[j][i] = INF; }
}
rep(k, N)
rep(i, N)
rep(j, N) {
if (A[i][j] > A[i][k] + A[k][j]) {
A[i][j] = A[i][k] + A[k][j];
}
}
rep(i, N) {
rep(j, N) {
if (A[i][j] == INF) {
A[i][j] = 0;
}
cout << A[i][j] << ' ';
}
cout << endl;
}
return 0;
}