Pagini recente » Cod sursa (job #2092084) | Cod sursa (job #2248690) | Cod sursa (job #1428272) | Cod sursa (job #2318088) | Cod sursa (job #2217282)
/**
* Worg
*/
#include <cstdio>
#include <algorithm>
FILE *fin = freopen("royfloyd.in", "r", stdin); FILE *fout = freopen("royfloyd.out", "w", stdout);
const int maxN = 100 + 5;
/*-------- Data --------*/
int n;
int royFloyd[maxN][maxN];
/*-------- --------*/
void ReadInput() {
scanf("%d", &n);
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
scanf("%d", &royFloyd[i][j]);
}
}
}
void RoyFloyd() {
for(int k = 0; k < n; k++) {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(i == j || i == k || j == k) continue;
royFloyd[i][j] = std::min(royFloyd[i][j], royFloyd[i][k] + royFloyd[k][j]);
}
}
}
}
void WriteOutput() {
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
printf("%d ", royFloyd[i][j]);
}
printf("\n");
}
}
int main() {
ReadInput();
RoyFloyd();
WriteOutput();
return 0;
}