csu 1020 真三国无双

来源:互联网 发布:尼康 调焦软件 d7100 编辑:程序博客网 时间:2024/04/27 20:29
真三国无双
Time Limit:1000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu
Submit Status Practice CSU 1020

Description

真三国无双是魔兽的一个游戏,该游戏是以中国三国的历史背景而制作的,该游戏是5 V 5的游戏模式,敌对双方各5个英雄,推掉了对方的大本营就算取得了胜利。

ZYH和SN都喜欢玩这个游戏,但是他们谁也不服谁,都觉得自己的操作比对方厉害,因此他们两人决定以单挑的方式来一决高下。ZYH选择了他最喜欢的英雄:关羽,SN也选择了他喜欢的英雄:典韦。

在他们开始正式比赛前,裁判介绍了一下关羽和典韦的技能。典韦有个脚踢地面而造成群晕的技能,简称为T,由于是游戏,它会有个动画效果,因此典韦使用T分为三个阶段:

点击T -> T的动画 -> T的释放

点击T的时间可以忽略,T的动画需要a(MS);T的释放时间为b(MS),在这段时间内,如果对方英雄在地面,就会被击晕。

 

而关羽使用技能D,过程是这样的:

点击D -> 选择方向à 转身(英雄会逆时针转身到选择的方向)-> 跳到空中-> 落下

点击D和选择方向的时间可以忽略,转身时间为c(MS),跳到空中停留的时间为d(MS)。英雄当前方向与选择方向之间的逆时针夹角叫做旋转角度。转身时间c = 旋转角度 × 10 (MS)。在游戏中,旋转角度的范围为[0, 360),不可能小于0或者大于等于360。

因此关羽和典韦单挑的时候,关羽喜欢用自己的技能D躲典韦的技能T,这就必须满足在典韦技能T释放的b(MS)时间内,关羽必须在空中。为了简化问题,我们认为,关羽在起跳或者落地的瞬间,典韦的技能T对他是无效的。

裁判正式介绍技能后,ZYH(关羽)就和SN(典韦)开始单挑了,他们在打架多次后,ZYH(关羽)和SN(典韦)的血量都处于死亡的边缘,此时SN(典韦)果断使用了自己的技能T,希望可以把ZYH(关羽)杀了,而ZYH(关羽)也在同时使用了技能D。

现在ZYH(关羽)求救于你,希望你能帮他计算关羽能选择的最小旋转角度,他的命就掌握在你的手上,你可不能随便应付吧。另外注意一点的就是,他们的技能现在只能释放一次。

Input

输入的第一行表示测试数据的组数N。下面输入包括N行,每行包括三个整数,分别表示a, b, d (1 ≤ a ≤ 10000, 1 ≤ b ≤ 10000, 1 ≤ d ≤ 10000)。

Output

如果ZYH(关羽)可以成功躲掉SN(典韦)的技能T,则输出能成功躲避的最小旋转角度(小数点后保留两位有效数字)。否则输出IMPOSSIBLE;每个输出后都换一行。

Sample Input

3
1 1 1
1 2 1
2 1 2

Sample Output

0.10
IMPOSSIBLE
0.10

解题报告:注意条件:旋转角度的范围为[0, 360)。考虑当角度为负的时候。输出0时格式为0.00;code:
#include<iostream>#include<algorithm>#include<stdio.h>#include<queue>#include<stack>#include<math.h>#include<string.h>#include<stdlib.h>using namespace std;typedef long long ll;int main(){  //  freopen("input.txt","r",stdin);    int t;    scanf("%d",&t);    while(t--){        double a,b,d;        scanf("%lf%lf%lf",&a,&b,&d);        double x=(a+b-d)/10,y=a/10;        if(x>=0&&x<360&&x<=y&&x<=a)            printf("%.2lf\n",x);        else if(x<0)            printf("0.00\n");        else            printf("IMPOSSIBLE\n");    }    return 0;}


1 0
原创粉丝点击