NYOJ 660 逃离地球

逃离地球

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
描述

据霍金的《时间简史》所述,在几亿年之后将再次发生宇宙大爆炸。在宇宙大爆炸后,地球上将新生出许多生物而不再适合人类生存。当然其中的生物有好有坏,我们规定其中名叫AngelDevil分别是善良和邪恶的两种生物。

Ø  所以当主人公Be.St遇到了Angel他将获得该Angel身上的相应HP的一半,而当他遇到Devil时他将损失Devil身上的HP的一半。

Ø  当然,在将要逃离地球的终点Be.St可能会遇到一些大Boss,如果此时他的HP连Boss 的HP一半都不到,那么此时他将直接被秒杀。但当其HP不小于Boss HP的一半时,他将会经过激烈的战斗而获得Boss身上相应HP的一半。

Ø  我们规定如果Be.St的HP不小于0,则其能成功脱逃,否则视为不能。

Ø  为了是问题简化我们童话一点,假设一开始Be.St是一直遇到Angel,之后将一直遇到Devil,最后将会是Boss。

现在就请厉害的ACMer帮帮可怜的Be.St,判断他是否能够顺利逃离地球。

输入
第一行输入一个正整数T,代表有T组测试数据(0<T<100)
每一组测试数据第一行都有四个正整数H,A,D,B分别代表Be.St初始HP,Angel的数量,Devil的数量,Boss的数量。从第三行开始其后的的每一行分别代表A,D,B相应生物的HP(0<H,A,B,D<100)
输出
如果在满足以上的条件后,Be.St可以顺利的逃离地球(即HP>=0),则输出”Win”,相反的情况是输出”Lose”。
样例输入
2
5 3 4 1
1 2 3
1 1 1 1
14
10 4 2 2
2 3 5 1
6 7
6 6
样例输出
LoseWin
注意:HP要用double类型的,另外Boss出现的顺序是不固定的!
AC码:
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
	int T,a,b,d;
	int sum,i;
	double m,h,Boss[105];
	scanf("%d",&T);
	while(T--)
	{
		scanf("%lf%d%d%d",&h,&a,&d,&b);
		for(i=0;i<a;i++)
		{
			scanf("%lf",&m);
			h+=m/2;
		}
		for(i=0;i<d;i++)
		{
			scanf("%lf",&m);
			h-=m/2;
		}
		for(i=0;i<b;i++)
		{
			scanf("%lf",&Boss[i]);
		}
		sort(Boss,Boss+b);
		for(i=0;i<b;i++)
		{
			if(2*h<Boss[i])
			{
				printf("Lose\n");
				break;
			}
			h+=Boss[i]/2;
		}
		if(i>=b)
			printf("Win\n");
	}
	return 0;
}


发布了219 篇原创文章 · 获赞 60 · 访问量 21万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览