当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

2541:棒球防守

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

输入解释
输入包含多组数据。每组数据第一行是两个整数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轴夹角的正切值和球的速度。
输出解释
对每组数据,输出M行,每行表示打出对应的球的打者是否出局。如果出局,输出’OUT’,否则输出’SAFE’。

输入样例
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
输出样例
SAFE
OUT
SAFE
OUT

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

该题目是Virtual Judge题目,来自 杭电HDUOJ

源链接: HDU-2541

最后修改于 2020-10-25T22:54:27+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
5000/1000MS(Java/Others) 32768/32768K(Java/Others)