Follows 534.c (Total 47 lines):

/* @JUDGE_ID:4461XX 534 C */
/* A */
#include<stdio.h>
#include<math.h>
#define max 200
float arr[max][max] ;
int n ;
float my_max( float a , float b )
{
	if( a > b ) return a ;
	else return b ;
}
float my_min( float a , float b )
{
	if( a == 0.0 ) return b ;
	else{
		if( a > b ) return b ;
		else return a ;
	}
}
void warshall( void )
{
	int i , j , k ;
	for( k=0 ; k<n ; k++ )
		for( i=0 ; i<n ; i++ )
			for( j=0 ; j<n ; j++ )
				if( arr[i][k] && arr[k][j] )
					arr[i][j] = my_min( arr[i][j] , my_max( arr[i][k] , arr[k][j] ) ) ;
}
void main( void )
{
	int i , j , xy[2][200] , times ;
	for( times=1 ; ; times++ ){
		scanf( "%d" , &n ) ;
		if( n == 0 ) break ;
		for( i=0 ; i<n ; i++ )
			for( j=0 ; j<n ; j++ ) arr[i][j] = 0.0 ;
		for( i=0 ; i<n ; i++ ) scanf( "%d %d" , &xy[0][i] , &xy[1][i] ) ;
		for( i=0 ; i<n-1 ; i++ )
			for( j=i+1 ; j<n ; j++ )
				arr[i][j] = arr[j][i] = sqrt( pow( xy[0][i]-xy[0][j] , 2 ) + pow( xy[1][i]-xy[1][j] , 2 ) ) ;
		warshall() ;
		printf( "Scenario #%d\n" , times ) ;
		printf( "Frog Distance = %.3f\n" , arr[0][1] ) ;
		putchar( '\n' ) ;
	}
}

Back to statistics
Ya-Lin Huang (C)
huangyl@gmail.com