/*
逃离地球
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
据霍金的《时间简史》所述,在几亿年之后将再次发生宇宙大爆炸。在宇宙大爆炸后,地球上将新生出许多生物而不再适合人类生存。
当然其中的生物有好有坏,我们规定其中名叫Angel和Devil分别是善良和邪恶的两种生物。
? 所以当主人公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
样例输出
Lose
Win
来源
NYIST校赛选拔赛
*/
#include<stdio.h> //这尼玛需要对boss血量进行排序。。挑小的打。我操了。坑爹啊!!!!
//是尼玛最后一句暗示的么!!!!fuck
void selectSort(int a[], int n);
int main()
{
int time;
int HpAngel[100], HpDevil[100], HpBoss[100];
int NumAngel, NumDevil, NumBoss;
double hp;
int i;
double sum;
int flag;
scanf("%d", &time);
while(time--)
{
flag = 1;
scanf("%lf %d %d %d", &hp, &NumAngel, &NumDevil, &NumBoss);
sum = 0;
for(i = 0; i < NumAngel; i++)
{
scanf("%d", &HpAngel[i]);
sum += HpAngel[i];
}
hp += sum/2; //获得Angel身上的一半hp
sum = 0;
for(i = 0; i < NumDevil; i++)
{
scanf("%d", &HpDevil[i]);
sum += HpDevil[i];
}
hp -= sum/2; //损失小Devil身上的一半hp
for(i = 0; i < NumBoss; i++)
scanf("%d", &HpBoss[i]);
selectSort(HpBoss, NumBoss);
for(i = 0; i < NumBoss; i++)
if(hp < HpBoss[i]*1.0 / 2)
{
flag = 0;
break;
}
else
hp += HpBoss[i]*1.0 / 2;
if(flag)
puts("Win");
else
puts("Lose");
}
return 0;
}
void selectSort(int a[], int n)
{
int i, j, t;
for(i = 0; i < n-1; i++)
for(j = i; j < n; j++)
if(a[i] > a[j])
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
这尼玛真想不出来要排序下
NYOJ660逃离地球
最新推荐文章于 2020-07-04 11:45:43 发布