当电脑没有网络时,打开Chrome浏览器会发现一个恐龙小游戏:
按空格之后就可以开始玩:
你的任务是操纵一只呆萌的小恐龙来穿越沙漠。每次你按一下空格,小恐龙就会跳一下,形成一个完美的倒抛物线,并且每次跳跃的纵向距离和横向距离都是一样的。但是在沙漠中会有很多仙人掌,天上还会飞一些翼龙,你需要让你的小恐龙通过跳跃来避开这些仙人掌和翼龙,这就是整个游戏过程。
为了问题的简化,我们假设这是一个二维直角坐标系,恐龙在X轴上从左往右匀速运动。当恐龙从起跳点a处跳跃时,它将会跳出一个完美的倒抛物线,并且落地点与起跳点的距离为x,其跳起后的纵向最大高度为y。仙人掌为一根垂直于X轴的线段,且底部在X轴上,横坐标为b,高度为h,如下图所示。为了简便,本题不考虑恐龙的体型,不考虑仙人掌的宽度,也不考虑天上飞的翼龙。
现在给出小恐龙的起跳横坐标a、横向跳跃距离x、纵向跳跃高度y、仙人掌根部横坐标b、仙人掌高度h,问在此次跳跃中龙龙是否能顺利避开仙人掌。假设刚好擦到也算碰到。
Input
每个输入文件一组数据。
每组数据给出五个小数点后最多一位的浮点数a、x、y、b、h(-100 <= a <= 100, 0 < x <= 100, 0 < y < 100, -100 <= b <= 100, 0 < h <= 100),用空格隔开。
Output
如果在此次跳跃中龙龙能顺利避开仙人掌,那么输出YES,否则输出NO。
Sample Input 1
-1 2 2 0 1
Sample Output 1
YES
Sample Input 2
-1 2 2 0 3
Sample Output 2
NO
Author
Shoutmon
Source
18浙大考研机试模拟赛
注意:在小于a或者大于a+x的部分将被认为是YES
#include
#include
using namespace std;
bool judge(int aa,int xx,int yy,int bb,int hh)
{
if(bbaa+xx||(bb-aa)*(aa+xx-bb)*4*yy>hh*xx*xx) return 1;
return 0;
}
int main()
{
double a,x,y,b,h;
scanf("%lf %lf %lf %lf %lf",&a,&x,&y,&b,&h);
judge(a*10,x*10,y*10,b*10,h*10)?printf("YES\n"):printf("NO\n");
return 0;
}