const   int  MAXN  =   101 ;
const   int  INF  =   1000000 ;
int  g[MAXN][MAXN];
int  d[MAXN][MAXN];
int  floyd( int  n)
{
    
int   i, j, k;
    
for  (i = 1 ; i <= n; i ++ )
        
for  (j = 1 ; j <= n; j ++ )
            d[i][j] 
=  g[i][j];
    
for  (k = 1 ; k <= n; k ++ )
    
{
        
for  (i = 1 ; i <= n; i ++ )
            
for  (j = 1 ; j <= n; j ++ )
            
{
                
if  (d[i][k]  <  INF  &&  d[k][j]  <  INF
                
&&  d[i][k]  +  d[k][j]  <  d[i][j])
                    d[i][j] 
=  d[i][k]  +  d[k][j];
            }


    }

    
return   0 ;
}