Pagini recente » Cod sursa (job #475059) | Cod sursa (job #1578621) | Cod sursa (job #87749) | Cod sursa (job #2821185) | Cod sursa (job #2801419)
#include <stdio.h>
#define MAX_N 100
#define MAX_DIST 100000
int dist[MAX_N][MAX_N];
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", &dist[i][j] );
if ( i != j && dist[i][j] == 0 )
dist[i][j] = MAX_DIST;
}
}
fclose( fin );
for ( k = 0; k < n; k++ ) {
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < n; j++ ) {
if ( dist[i][k] + dist[k][j] < dist[i][j] )
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
fout = fopen( "royfloyd.out", "w" );
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < n; j++ )
fprintf( fout, "%d ", dist[i][j] );
fputc( '\n', fout );
}
fclose( fout );
return 0;
}