zoukankan      html  css  js  c++  java
  • POJ 2610:Dog & Gopher

    Dog & Gopher
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 4142   Accepted: 1747

    Description

    A large field has a dog and a gopher. The dog wants to eat the gopher, while the gopher wants to run to safety through one of several gopher holes dug in the surface of the field. 
    Neither the dog nor the gopher is a math major; however, neither is entirely stupid. The gopher decides on a particular gopher hole and heads for that hole in a straight line at a fixed speed. The dog, which is very good at reading body language, anticipates which hole the gopher has chosen, and heads at double the speed of the gopher to the hole, where it intends to gobble up the gopher. If the dog reaches the hole first, the gopher gets gobbled; otherwise, the gopher escapes. 

    You have been retained by the gopher to select a hole through which it can escape, if such a hole exists. 

    Input

    The first line of input contains four floating point numbers: the (x,y) coordinates of the gopher followed by the (x,y) coordinates of the dog. Subsequent lines of input each contain two floating point numbers: the (x,y) coordinates of a gopher hole. All distances are in metres, to the nearest mm.

    Output

    Your output should consist of a single line. If the gopher can escape the line should read "The gopher can escape through the hole at (x,y)." identifying the appropriate hole to the nearest mm. Otherwise the output line should read "The gopher cannot escape." If the gopher may escape through more than one hole, choose the first one in the input. If the gopher and dog reach the hole at the same time, the gopher gets gobbled. There are not more than 1000 gopher holes and all coordinates are between -10000 and +10000.

    Sample Input

    1.000 1.000 2.000 2.000
    1.500 1.500
    

    Sample Output

    The gopher cannot escape.
    

    Hint

    Sample Input 2 
    2.000 2.000 1.000 1.000 
    1.500 1.500 
    2.500 2.500 

    Output for Sample Input 2 
    The gopher can escape through the hole at (2.500,2.500). 

    Source

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <iostream>
    #include <cstdlib>
    #include <cstring>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    #define eps 1.0E-8
    double xx1,xx2,yy1,yy2;
    double dist(double x1, double y1, double x2, double y2)
    {
        double x = abs(x1 - x2);
        double y = abs(y1 - y2);
        return sqrt(x * x + y * y);
    }
    bool ok(double x, double y)
    {
        double d1 = dist(xx1, yy1, x, y);
        double d2 = dist(xx2, yy2, x, y);
        if (d1 * 2 + eps < d2)
            return true;
        return false;
    }
    int main()
    {
        scanf("%lf%lf%lf%lf",&xx1,&yy1,&xx2,&yy2);
        double x, y;
        while (~scanf("%lf%lf",&x,&y))
        {
            if (ok(x,y))
            {
                printf("The gopher can escape through the hole at (%.3f,%.3f).
    ", x, y);
                return 0;
            }
        }
        printf("The gopher cannot escape.
    ");
        return 0;
    }


  • 相关阅读:
    ros学习之消息和服务
    linux软件安装
    ros使用QT插件开发
    使用客户端对象模型读取SharePoint列表数据
    使用服务器端对象模型,编写程序管理SharePoint列表
    Visual Studio创建简单的Event Receiver
    在SharePoint中使用LINQ
    使用Visual Stuidio 2010 创建网站列
    使用Visual Studio 创建新的Web Part项目
    在SharePoint页面嵌入简单的Silverlight程序
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989553.html
Copyright © 2011-2022 走看看