Pagini recente » Cod sursa (job #2866736) | Cod sursa (job #2894375) | Cod sursa (job #411945) | Cod sursa (job #467976) | Cod sursa (job #2555501)
#include <bits/stdc++.h>
#define INFINIT 1000000000
int d[101][101];
int main() {
FILE *fin, *fout;
int n, i, j, k;
fin = fopen( "royfloyd.in", "r" );
fout = fopen( "royfloyd.out", "w" );
fscanf( fin, "%d", &n );
for ( i = 1; i <= n; i++ ) {
for ( j = 1; j <= n; j++ ) {
fscanf( fin, "%d", &d[i][j] );
if ( d[i][j] == 0 && i != j )
d[i][j] = INFINIT;
}
}
for ( k = 1; k <= n; k++ )
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= n; j++ )
if ( d[i][k] + d[k][j] < d[i][j] )
d[i][j] = d[i][k] + d[k][j];
for ( i = 1; i <= n; i++ ) {
for ( j = 1; j <= n; j++ ) {
if ( d[i][j] != INFINIT )
fprintf( fout, "%d ", d[i][j] );
else
fprintf( fout, "0 " );
}
fprintf( fout, "\n" );
}
fclose( fin );
fclose( fout );
return 0;
}