Pagini recente » Cod sursa (job #791938) | Cod sursa (job #3298346) | Cod sursa (job #3285662) | Cod sursa (job #1051310) | Cod sursa (job #3297269)
#include <stdio.h>
#include <vector>
int main() {
FILE *fin = fopen( "royfloyd.in", "r" );
FILE *fout = fopen( "royfloyd.out", "w" );
int n;
fscanf( fin, "%d", &n );
std::vector<std::vector<int>> mat(n, std::vector<int>(n));
for( int i = 0; i < n; i++ )
for( int j = 0; j < n; j++ ){
fscanf( fin, "%d", &mat[i][j] );
if( !mat[i][j] )
mat[i][j] = 1e9;
}
for( int k = 0; k < n; k++ )
for( int i = 0; i < n; i++ )
for( int j = 0; j < n; j++ )
if( i != j && mat[i][k] + mat[k][j] < mat[i][j] )
mat[i][j] = mat[i][k] + mat[k][j];
for( int i = 0; i < n; i++ ){
for( int j = 0; j < n; j++ )
fprintf( fout, "%d ", mat[i][j] == (+1e9) ? 0 : mat[i][j] );
fputc( '\n', fout );
}
fclose( fin );
fclose( fout );
return 0;
}