Pagini recente » Cod sursa (job #3146506) | Cod sursa (job #2587625) | Cod sursa (job #38050) | Cod sursa (job #482058) | Cod sursa (job #448567)
Cod sursa(job #448567)
/*
* @ Copyright, 3.05.2010
* Mihai Tabără
* 325 CA
* Lab 8 [ PA ]
* Time Complexity - O(N^3)
* Language used: C
* Operating System: Ubuntu 9.10
* Environment: Vim
*/
#include <stdio.h>
#include <stdlib.h>
#define in "royfloyd.in"
#define out "royfloyd.out"
#define NMAX 105
int A[NMAX][NMAX];
int N;
int main()
{
freopen( in, "r", stdin );
freopen( out, "w", stdout );
int i, j, k;
scanf( "%d", &N );
for ( i = 1; i <= N; ++i )
for ( j = 1; j <= N; ++j )
scanf( "%d", &A[i][j] );
for ( k = 1; k <= N; ++k )
for ( i = 1; i <= N; ++i )
for ( j = 1; j <= N; ++j )
if ( i != j )
{
if ( A[i][k] && A[k][j] && ((!A[i][j]) || (A[i][j] > A[i][k] + A[k][j])) )
A[i][j] = A[i][k] + A[k][j];
}
for ( i = 1; i <= N; ++i )
{
for ( j = 1; j <= N; ++j )
printf( "%d ", A[i][j] );
printf( "\n" );
}
return 0;
}