TopCoder

User's AC Ratio

75.0% (3/4)

Submission's AC Ratio

50.0% (7/14)

Tags

Description

娃娃魚的站位哲學

又名:虎鯨之路

題目敘述

在某個世界中,娃娃魚是一種很神奇的存在, 他除了可以依靠自身輸出攻擊人以外,還可以透過吃到別人遺留的增益氣息來得到更大的攻擊力。

已知娃娃魚可以吃到的增益有三種:霸霸的刀圈(10尺)、咩咩的碎星星(10尺)、以及喵喵的傳教之力(12尺)。

又知這個世界的所有增益氣息都會從中心往四周圓形擴散,但擴散超過一定距離就沒有增益效果了, 比如碎星星的範圍為10尺,我距離咩咩10尺可以吃到增益,10.00001尺就不行。

並且同一種類型的增益氣息不可疊加, 也就是說,吃到一個增益後,就算再站到第二個增益氣息上,也只能獲得一層的增益效果。

比如下圖,娃娃魚就能吃到所有增益。

示意圖1

這種站位也可以(因為同類型不能疊加,所以深藍的圈站一個就可以)


示意圖2

這種站位就不行(吃不到深藍的刀圈)


示意圖3

請你幫娃娃魚判斷,他當前位置能不能吃到所有增益氣息呢?

上傳說明

你只需要完成並上傳function就可以了。


#include <iostream>
#include <cmath>

/* 
 * 判斷娃娃魚是否能吃到所有增益。 
 * 8個傳入參數依序為:a, b, c, 霸霸位置, 咩咩位置, 喵喵位置, x, y.  
 * 若能吃到所有增益,回傳true;否則回傳false 
 */
bool isValid(int, int, int, int[], int[], int[], int, int);
/*
 * 4個參數分別為:第一個點的x, y座標、第二個點的x, y座標
 * 回傳此二點的平面座標距離 
 */
double distance(int, int, int, int);

/* your code will be placed at here */

int main()
{
    int a, b, c, x, y;
    int baba[20005];    // 霸霸 
    int mie[20005];     // 咩咩
    int miao[20005];    // 喵喵
    
    // input
    std::cin >> a >> b >> c;  // 霸咩喵數量 
    for(int i=0; i<a; ++i)       // 霸霸位置 
        std::cin >> baba[2*i] >> baba[2*i+1];
    for(int i=0; i<b; ++i)       // 咩咩位置 
        std::cin >> mie[2*i] >> mie[2*i+1];
    for(int i=0; i<c; ++i)       // 喵喵位置 
        std::cin >> miao[2*i] >> miao[2*i+1];
    std::cin >> x >> y;     // 娃娃魚當前位置 
    
    // output
    if(isValid(a,b,c,baba,mie,miao,x,y))
        std::cout << "Good Place! =)";
    else
        std::cout << "Not that well... =("; 
    return 0;
}

輸入說明

第一行有三個int a, b, c,代表某次戰鬥中霸霸、咩咩跟喵喵的數量,保證0 ≤ a,b,c ≤ 10000。

接下來有三行:

第二行有2a個整數a1_x, a1_y, a2_x, a2_y...代表該次戰鬥中每個霸霸的x, y座標,0 ≤ x, y ≤ 10000。

第三四行跟第二行類似,分別有2b、2c個整數代表該場戰鬥中咩咩跟喵喵的位置。

最後一行有兩個數字x跟y,代表娃娃魚當前位置。

(其實你不需要處理輸入問題)

輸出說明

請幫娃娃魚判斷他是否能吃到所有增益。

如果娃娃魚能吃到滿增益,請輸出"Good Place! =)",

否則請輸出"Not that well... =("。

輸出後不需換行。

(其實你也不需要處理輸出問題)

範例輸入

1 2 1
0 5
10 7 15 -4
14 -5
7 3

範例輸出

Good Place! =)

Input Format

Output Format

Hints

Problem Source

NEOJ Problem 461

Subtasks

No. Testdata Range Constraints Score
1 0 10
2 1~2 20
3 3~4 20
4 5~6 20
5 7~9 30

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 2
2 1000 65536 65536 2
3 1000 65536 65536 3
4 1000 65536 65536 3
5 1000 65536 65536 4
6 1000 65536 65536 4
7 1000 65536 65536 5
8 1000 65536 65536 5
9 1000 65536 65536 5