心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
超简单题。
以下是我的代码:
#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;
}
posted on 2011-09-08 00:11 lee1r 阅读(615) 评论(1)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

FeedBack:
# re: UVa 10310 Dog and Gopher
2011-09-08 03:13 | getchar
还没睡阿  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理