Pagini recente » Cod sursa (job #1913263) | Cod sursa (job #224524) | Cod sursa (job #1169626) | Cod sursa (job #2700501) | Cod sursa (job #2364632)
#include <cstdio>
#define INF 1 << 20
int N, adj[101][101], dist[101][101];
int minimum(int x, int y) {
return x < y ? x : y;
}
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
scanf("%d", &N);
for (int it = 0; it < N; ++it) {
for (int jt = 0; jt < N; ++jt) {
scanf("%d", &adj[it][jt]);
dist[it][jt] = 0 == adj[it][jt] ? INF : adj[it][jt];
}
}
for (int it = 0; it < N; ++it) {
for (int jt = 0; jt < N; ++jt) {
for (int kt = 0; kt < N; ++kt) {
if (it != kt && jt != kt) {
dist[it][jt] = minimum(dist[it][jt], dist[it][kt] + dist[kt][jt]);
}
}
}
}
for (int it = 0; it < N; ++it) {
for (int jt = 0; jt < N; ++jt) {
if (INF == dist[it][jt]) printf("0 ");
else printf("%d ", dist[it][jt]);
}
printf("\n");
}
return 0;
}