Pagini recente » Cod sursa (job #1862009) | Cod sursa (job #1434710) | Cod sursa (job #1149096) | Cod sursa (job #1280414) | Cod sursa (job #1434718)
#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(x != y && D[x][z] && D[z][y])
if(D[x][y] > D[x][z] + D[z][y] || !D[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;
}