Pagini recente » Cod sursa (job #2287583) | Cod sursa (job #2174754) | Cod sursa (job #701869) | Cod sursa (job #402122) | Cod sursa (job #2364646)
#include <cstdio>
#define INF 1 << 29
int N, adj[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]);
if (0 == adj[it][jt]) adj[it][jt] = INF;
}
}
for (int kt = 0; kt < N; ++kt) {
for (int it = 0; it < N; ++it) {
for (int jt = 0; jt < N; ++jt) {
if (it != kt && jt != kt && it != jt) {
adj[it][jt] = minimum(adj[it][jt], adj[it][kt] + adj[kt][jt]);
}
}
}
}
for (int it = 0; it < N; ++it) {
for (int jt = 0; jt < N; ++jt) {
printf("%d ", INF <= adj[it][jt] ? 0 : adj[it][jt]);
}
printf("\n");
}
return 0;
}