Pagini recente » Cod sursa (job #1022441) | Cod sursa (job #552054) | Cod sursa (job #1138524) | Cod sursa (job #1434706) | Cod sursa (job #1434712)
#include <cstdio>
#define DIM 128
using namespace std;
FILE *fin = fopen("royfloyd.in" ,"r");
FILE *fout= fopen("royfloyd.out","w");
int N, D[DIM][DIM];
void SetUp(){
fscanf(fin, "%d", &N);
for(int i = 1; i <= N; i ++)
for(int j = 1; j <= N; j ++)
fscanf(fin, "%d", &D[i][j]);
return;
}
void RoyFloyd(){
for(int z = 1; z <= N; z ++)
for(int x = 1; x <= N; x ++)
for(int y = 1; y <= N; y ++){
if(D[x][z] && D[z][x] && (D[x][y] > D[x][z] + D[z][y] || !D[x][y]) && x != y)
D[x][y] = D[x][z] + D[z][y];
}
return;
}
void Finish(){
for(int i = 1; i <= N; i ++){
for(int j = 1; j <= N; j ++)
fprintf(fout, "%d ", D[i][j]);
fprintf(fout, "\n");
}
return;
}
int main(){
SetUp();
RoyFloyd();
Finish();
return 0;
}