Pagini recente » Cod sursa (job #1739744) | Cod sursa (job #3286057) | Profil aprilie2003 | Cod sursa (job #1732944) | Cod sursa (job #1117564)
#include <stdio.h>
#define N_MAX 100
int N, p[ N_MAX + 1 ][ N_MAX + 1 ];
int main( ) {
FILE * fin, * fout;
fin = fopen( "royfloyd.in", "r" );
fout = fopen( "royfloyd.out", "w" );
fscanf( fin, "%d", &N );
int i, j, k;
for( i = 1; i <= N; i ++ ) {
for( j = 1; j <= N; j ++ ) {
fscanf( fin, "%d", &p[ i ][ j ] );
}
}
for( k = 1; k <= N; k ++ ) {
for( i = 1; i <= N; i ++ ) {
for( j = 1; j <= N; j ++ ) {
if( p[ i ][ k ] && p[ k ][ j ] && ( p[ i ][ k ] + p[ k ][ j ] < p[ i ][ j ] || !p[ i ][ j ] ) && i != j ) {
p[ i ][ j ] = p[ i ][ k ] + p[ k ][ j ];
}
}
}
}
for( i = 1; i <= N; i ++ ) {
for( j = 1; j <= N; j ++ ) {
fprintf( fout, "%d ", p[ i ][ j ] );
}
fprintf( fout, "\n" );
}
fclose( fin );
fclose( fout );
}