Pagini recente » Cod sursa (job #855459) | Cod sursa (job #263331) | Cod sursa (job #1870352) | Cod sursa (job #406660) | Cod sursa (job #1176683)
#include <stdio.h>
#define N_MAX 100
int ma[ N_MAX ][ N_MAX ], din[ N_MAX ][ N_MAX ];
int main()
{
FILE *in = fopen ( "royfloyd.in", "r" );
int n;
fscanf ( in, "%d", &n );
int i, j;
for ( i = 0; i < n; i++ ){
for ( j = 0; j < n; j++ ){
fscanf ( in, "%d", &ma[ i ][ j ] );
din[ i ][ j ] = ma[ i ][ j ];
}
}
fclose ( in );
FILE *out = fopen ( "royfloyd.out", "w" );
int ii;
for ( i = 0; i < n; i++ ){
for ( j = 0; j < n; j++ ){
if ( i != j ){
for ( ii = n - 1 ; ii >= 0; ii-- ){
if ( ii == j ){
if ( din[ i ][ j ] == 0 || ma[ i ][ j ] < din[ i ][ j ] ) din[ i ][ j ] = ma[ i ][ j ];
}
else if ( ma[ ii ][ j ] != 0 && din[ i ][ ii ] != 0 ){
if ( din[ i ][ j ] == 0 || din[ i ][ ii ] + ma[ ii ][ j ] < din[ i ][ j ] ) din[ i ][ j ] = din[ i ][ ii ] + ma[ ii ][ j ];
}
}
}
fprintf ( out, "%d ", din[ i ][ j ] );
}
fprintf ( out, "\n" );
}
fclose ( out );
return 0;
}