Pagini recente » Cod sursa (job #163598) | Cod sursa (job #2012020) | Cod sursa (job #1553336) | Cod sursa (job #282876) | Cod sursa (job #2856739)
#include <stdio.h>
#include <algorithm>
#define MAXN 100
#define INF (int)1e6
int rf[MAXN][MAXN];
int main() {
FILE *fin, *fout;
int n, i, j, k;
fin = fopen( "royfloyd.in", "r" );
fscanf( fin, "%d", &n );
for( i = 0; i < n; i++ ) {
for( j = 0; j < n; j++ ) {
fscanf( fin, "%d", &rf[i][j] );
if( rf[i][j] == 0 )
rf[i][j] = INF;
}
}
fclose( fin );
for( k = 0; k < n; k++ )
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
if( rf[i][k] != INF && rf[k][j] != INF )
rf[i][j] = std::min(rf[i][j], rf[i][k] + rf[k][j]);
fout = fopen( "royfloyd.out", "w" );
for( i = 0; i < n; i++ ) {
for( j = 0; j < n; j++ ) {
if( rf[i][j] == INF || i == j )
fprintf( fout, "0 " );
else
fprintf( fout, "%d ", rf[i][j] );
}
fprintf( fout, "\n" );
}
fclose( fout );
return 0;
}