UVa 10310 Dog and Gopher

UVa 10310 Dog and Gopher
超简单题。
以下是我的代码:
#include  < cstdio >
#include 
< cmath >
using   namespace  std;

const   double  eps  =  1e - 8 ;

double  d (  double  x1,  double  y1,  double  x2,  double  y2 )
{
    
return  ( x1  -  x2 )  *  ( x1  -  x2 )  +  ( y1  -  y2 )  *  ( y1  -  y2 );
}

int  main ()
{
#ifndef ONLINE_JUDGE
    freopen ( 
" data.in " " r " , stdin );
#endif
    
    
int  n;
    
double  x1, y1, x2, y2, x, y, ansx, ansy;
    
bool  found;
    
    
while  ( scanf(  " %d%lf%lf%lf%lf " & n,  & x1,  & y1,  & x2,  & y2 )  ==   5  )
    {
        found 
=   false ;
        
for  (  int  i  =   1 ; i  <=  n; i ++  )
        {
            scanf ( 
" %lf%lf " & x,  & y );
            
if  ( found )
                
continue ;
            
if  (  4   *  d ( x1, y1, x, y )  <=  d ( x2, y2, x, y ) )
            {
                found 
=   true ;
                ansx 
=  x;
                ansy 
=  y;
            }
        }
        
        
// printf ( "%f\n", (double)20000*20000*2 );
        
        
if  (  ! found )
            printf ( 
" The gopher cannot escape.\n "  );
        
else
            printf ( 
" The gopher can escape through the hole at (%.3f,%.3f).\n " , ansx, ansy );
    }
    
    
return   0 ;
}

你可能感兴趣的:(UVa 10310 Dog and Gopher)