Pagini recente » Cod sursa (job #2737765) | Istoria paginii runda/sth_cute/clasament | Cod sursa (job #1128211) | Cod sursa (job #2614401) | Cod sursa (job #1131810)
#include <cstdio>
const int infinite = 1000 * 1000 * 1000;
int n;
int x[100][100];
int Min(int a, int b) {
return(a < b ? a : b);
}
void Read() {
scanf("%d", &n);
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j) {
scanf("%d", &x[i][j]);
if (x[i][j] == 0) {
if (i != j) {
x[i][j] = infinite;
}
}
}
}
void Solve() {
for (int k = 0; k < n; ++k) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (i != j) {
x[i][j] = Min(x[i][j], x[i][k] + x[k][j]);
}
}
}
}
}
void Write() {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
printf("%d ", x[i][j]);
}
printf("\n");
}
}
int main() {
freopen("royfloyd.in", "rt", stdin);
freopen("royfloyd.out", "wt", stdout);
Read();
Solve();
Write();
}