Pagini recente » Cod sursa (job #270231) | Cod sursa (job #2699549) | Cod sursa (job #1041439) | Cod sursa (job #670565) | Cod sursa (job #176907)
Cod sursa(job #176907)
#include <stdio.h>
#define FIN "royfloyd.in"
#define FOUT "royfloyd.out"
#define NMAX 101
FILE * fin, * fout;
int A[NMAX][NMAX];
int N;
void RoyFloyd()
{
int i, j, k;
for( k = 1; k <= N; k++ )
for( i = 1; i <= N; i++ )
for( j = 1; j <= N; j++ )
if( A[i][k] && A[k][j] )
if( (A[i][j] > A[i][k] + A[k][j])
|| !A[i][j] )
A[i][j] = A[i][k] + A[k][j];
}
int main()
{
int i, j;
fin = fopen( FIN, "r" );
fout = fopen( FOUT, "w" );
fscanf( fin, "%d", &N );
for( i = 1; i <= N; i++ )
for( j = 1; j <= N; j++ )
fscanf( fin, "%d", &A[i][j]);
RoyFloyd();
for( i = 1; i <= N; i++ )
{
for( j = 1; j <= N; j++ )
fprintf( fout, "%d ", A[i][j]);
fprintf( fout, "\n");
}
fclose(fin);
fclose(fout);
}