Cod sursa(job #333873)

Utilizator klamathixMihai Calancea klamathix Data 24 iulie 2009 13:59:24
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<cstdio>
#define MAXN 101

int i , j , k , A[MAXN][MAXN] , N ;
int main ()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);
    
    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 ( A[i][k] && A[k][j] && ( A[i][k] + A[k][j] < A[i][j] || !A[i][j] ) && i !=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;
}