Pagini recente » Cod sursa (job #2042722) | Cod sursa (job #290842) | Cod sursa (job #421585) | Cod sursa (job #2545575) | Cod sursa (job #1555710)
#include <fstream>
#include <cstdio>
using namespace std;
int n , a[105][105];
void read(int &x) {
char ch;
int semn = 1;
while(!isdigit(ch = getchar())) {
if(ch == '-') {
semn = -1;
}
else {
semn = 1;
}
}
do{
x = x * 10 + ch - '0';
}while(isdigit(ch = getchar()));
x *= semn;
}
int main() {
freopen("royfloyd.in" , "r" , stdin);
freopen("royfloyd.out" , "w" , stdout);
read(n);
for(int i = 1 ; i <= n ; ++i) {
for(int j = 1 ; j <= n ; ++j) {
read(a[i][j]);
}
}
for(int k = 1 ; k <= n ; ++k) {
for(int i = 1 ; i <= n ; ++i) {
for(int j = 1 ; j <= n ; ++j) {
if(a[i][k] != 0 && a[k][j] != 0 && i != j) {
if(a[i][j] == 0 || a[i][k] + a[k][j] < a[i][j])
a[i][j] = a[i][k] + a[k][j];
}
}
}
}
for(int i = 1 ; i <= n ; ++i) {
for(int j = 1 ; j <= n ; ++j) {
printf("%d " , a[i][j]);
}
printf("\n");
}
return 0;
}