Pagini recente » Cod sursa (job #1689880) | Cod sursa (job #1385019) | Cod sursa (job #2426964) | Cod sursa (job #2143432) | Cod sursa (job #1847564)
#include <bits/stdc++.h>
using namespace std;
const int N = 123;
const int INF = 0x3f3f3f3f;
int dist[N][N];
int n;
void floyd_warshall() {
for (int k = 0; k < n; k++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
}
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", dist[i] + j);
if (dist[i][j] == 0 && i != j) {
dist[i][j] = INF;
}
}
}
floyd_warshall();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", (dist[i][j] == INF ? 0 : dist[i][j]));
}
puts("");
fflush(stdout);
}
return 0;
}