|
||||||||||
棒球防守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
Sample Output
Source | ||||||||||
|