NYOJ 660 逃离地球

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

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

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

我们规定如果Be.StHP不小于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
 
简单题,不过有很多细节需要注意。首先,主人公的血量要用double型的。因为打boss的时候不是被秒杀,就是获得boss一半的血量,所以啦,肯定是先调血少的boss打啦。。。最后,主人公在血量为0的时候也不死哦~(好屌啊。。~)
 

#include <stdio.h>
#include <stdlib.h>
intcomp (constvoid*a,constvoid*b )
{
    return* (int* ) a - * (int* ) b;
}
intmain()
{
    intt;
    inti;
    scanf("%d",&t);
    inta,d,b;
    doubleh;
    intan[100];
    intde[100];
    intbo[100];
    intsign;
    while(t--)
    {
        sign=1;
        h=0;
        scanf("%lf%d%d%d",&h,&a,&d,&b);            //初始化 Hp,Angel,Devil,Boss
        for(i=0;i<a;i++)
        {
            scanf("%d",&an[i]);
            h+=an[i]/2.0;
        }
        for(i=0;i<d;i++)
        {
            scanf("%d",&de[i]);
            h-=de[i]/2.0;
            if(h<0)
                sign=0;
 
        }
        for(i=0;i<b;i++)
            scanf("%d",&bo[i]);
 
        qsort(bo,b,sizeof(int),comp);
 
            for(i=0;i<b;i++)
            {
                if(h<bo[i]/2.0)
                {
                    sign=0;
                    break;
                }
                else
                    h+=bo[i]/2.0;
            }
 
        if(sign)
            printf("Win\n");
        else
            printf("Lose\n");
 
 
    }
    return0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值