F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

棒球防守

Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 180    Accepted Submission(s): 12


Problem Description
在棒球比赛中,当对方打击者将投手投来的球击打出去以后,投手的队友们所要做的就是尽量把这个球防守下来,尽可能让对方出局。通常,防守的方法有两种:
(1)  如果打出的球是高飞球,则防守方可以在球落地之前用手套把球接住,称之为“接杀”,直接让打击者出局。
(2)  如果打出的球是滚地球,则防守方的内场防守员(定义见下面)可以跑到球的线路上将球接住,并且传给一垒的防守员,如果一垒手接住球时打击者还没有跑到一垒(在本题中,假设这个条件一定成立。也就是内场防守员接到球的话打者就出局了),则称之为“封杀”,也可以让打击者出局。
在本题中,输入给出打出的球的类型(高飞还是滚地),以及球的落点和飞行时间(对于高飞球)或者球的方向和速度(对于滚地球),和所有的防守队员的初始站位和移动速度,判断能不能让打者出局。
假设防守队员接球、传球都没有失误。
防守队员需要而且必须在球到之前(或同时)跑到高飞球的落地点上才能使打出高飞球的打者出局。
初始位置离本垒距离20以上(含)的防守员规定为外场防守员,否则为内场防守员。
内场防守员需要而且必须在球到之前(或同时)跑到滚地球的线路上才能接住滚地球(并使打者出局)。如果他跑到了外场把球接住,打者也出局。
如果所有的内场防守者都不能接住一个滚地球,尽管可能有外场防守者能接到(即使他可以在内场接到球),打者仍然是安全的,不会出局。
假设球场是+x轴和+y轴夹成的一块区域,并向右、上无限延伸。
坐标原点是本垒,假设所有的球都是从本垒正中打出的,而且朝球场的方向飞,且速度一直不变。

 

Input
输入包含多组数据。每组数据第一行是两个整数N和M(4<=N<=10,0<M<=100),分别表示防守队员的人数和打出来的球数。N=M=0表示输入结束。接下来有N行,每行都有三个整数X、Y、V(0<=X,Y<=100,0<V<=10),表示对应的防守队员的坐标和速度。最后有M行,每行首先是一个字符(’F’和’G’之一),如果是’F’,则表示这是一个高飞球,之后会跟上三个整数XX、YY、T(0<=XX,YY<=100,0<T<=10),分别表示球的落点的X、Y坐标和飞行时间;如果是’G’,表示这是一个滚地球,之后会跟上一个分数H/L和一个整数VV(1<=H,L<=100,0<VV<=100),分别表示球的飞行方向与+X轴夹角的正切值和球的速度。
 

Output
对每组数据,输出M行,每行表示打出对应的球的打者是否出局。如果出局,输出’OUT’,否则输出’SAFE’。

 

Sample Input
4 4 10 0 2 0 10 2 25 0 5 0 25 5 F 30 30 6 F 30 30 7 G 1/1 3 G 1/1 2 0 0
 

Sample Output
SAFE OUT SAFE OUT 提示: 所有输入数据允许时间有1e-5的计算误差。即不能杀的球至少快了1e-5的时间落地(高飞)或者滚过(滚地), 能杀的球则至少慢了1e-5的时间。 直接用double来计算和比较应该不会存在精度问题。
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-05-12 07:58:18, Gzip enabled