Pagini recente » Cod sursa (job #1724916) | Cod sursa (job #3246091) | Cod sursa (job #2240466) | Cod sursa (job #1623508) | Cod sursa (job #1047741)
#include <iostream>
#include <fstream>
#define INF (1<<30) - 1
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int N, i, j, x, y, z, d[105][105];
int minimum(int a, int b){
if(a < b){
return a;
}
return b;
}
int main(){
in >> N;
for(i = 1; i <= N; i++){
for(j = 1; j <= N; j++){
in >> d[i][j];
if(i != j && d[i][j] == 0){
d[i][j] = INF;
}
}
}
for(z = 1; z <= N; z++){
for(x = 1; x <= N; x++){
for(y = 1; y <= N; y++){
if(d[x][z] && d[z][y]){
d[x][y] = minimum(d[x][z] + d[z][y], d[x][y]);
}
}
}
}
for(i = 1; i <= N; i++){
for(j = 1; j <= N; j++){
if(d[i][j] == INF){
out << "0 ";
}else{
out << d[i][j] << " ";
}
}
out << "\n";
}
}