大吉大利-今晚吃鸡-跑毒

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/code_boss/article/details/79123825


题目描述

    现在有一款很火的游戏playerunknown's battlegrounds,人称“吃鸡”,在里面经常面临跑毒(从安全区外跑进安全区内)的问题,在安全区外,人们会处于中毒状态,每秒会掉a%血,人们可以通过使用道具急救包把血量升回到80%,使用急救包需要原地站着6秒。现在知道在安全区外扣血速度为a%/s,角色和安全区的距离为b米,角色跑步速度为1m/s,角色有c个急救包,请问角色是否能安全跑进安全区内。(PS:角色开始的血量为100%。如果血量降到0%,立刻判定为死亡。使用急救包时,如果刚使用完毕瞬间或者正在使用急救包的时候,血量降到0%,角色立即判定为死亡。顺带一提,这里判断时间不存在0.xxxx秒,最小时间单位为1s)

输入描述:

第一行是样例数T(T<9)
第2到2+T-1行每行有三个整数a b c,其中a为安全区外的扣血速度a%/s,b为角色和安全区的距离,c为急救包的数量。

输出描述:

如果角色能进入安全区输出“YES”。
若角色在安全区外死亡输出“NO”。

#include<stdio.h>      // 模拟一下过程
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {
        int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
        int mi=0;
        int sum=100;
        while(c!=0)
        {
            sum-=a;
            mi++;
            if(sum<=7*a)
            {
                sum=80;
                c--;
            }
            if(c==0)
            break;
        }
        if(sum%a==0)  
        mi+=sum/a;
        else
        mi+=(sum/a)+1;  // 扣血是过完了一秒才会扣,所以当还有不到%a的血,只要在这一秒内跑进安全区就可以
        if(mi<b)
        printf("NO\n");
        else
        printf("YES\n");
    }
}


展开阅读全文

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