Pagini recente » Cod sursa (job #2034078) | Cod sursa (job #1011716) | Cod sursa (job #1402621) | Cod sursa (job #1846018) | Cod sursa (job #1176815)
#include <stdio.h>
#define N_MAX 100
#define INF 15000000
int ma[ N_MAX + 1 ][ N_MAX + 1 ], din[ N_MAX + 1 ][ N_MAX + 1 ];
int main()
{
FILE *in = fopen ( "royfloyd.in", "r" );
int n;
fscanf ( in, "%d", &n );
int i, j;
for ( i = 1; i <= n; i++ ){
for ( j = 1; j <= n; j++ ){
fscanf ( in, "%d", &din[ i ][ j ] );
if ( din[ i ][ j ] == 0 ) din[ i ][ j ] = INF;
}
}
fclose ( in );
FILE *out = fopen ( "royfloyd.out", "w" );
int ii;
for ( ii = 1; ii <= n; ii++ ){
for ( i = 1; i <= n; i++ ){
for ( j = 1 ; j <= n; j++ ){
if ( i != j ){
if ( din[ i ][ j ] > din[ i ][ ii ] + din[ ii ][ j ] && din[ i ][ i] ) din[ i ][ j ] = din[ i ][ ii ] + din[ ii ][ j ];
}
}
}
}
for ( i = 1; i <= n; i++ ){
for ( j = 1; j <= n; j++ ){
if ( din[ i ][ j ] == INF ) fprintf ( out, "0 " );
else fprintf ( out, "%d ", din[ i ][ j ] );
}
fputc ( '\n', out );
}
fclose ( out );
return 0;
}