赵神牛的游戏

题目描述

在 DNF 中,赵神牛有一个缔造者,他一共有 k 点法力值,一共有 m个技能,每个技能耗费的法力值为ai​,可以造成的伤害为ibi​,而 boss 的体力值为 n,请你求出它放哪个技能,才可以打死 boss。 

当然,赵神牛技术很菜,他一局只放一个技能,不过每个技能都可以放无数次。

输入格式

第一行有三个整数,分别表示 k,m,n。

后面 m行,每行两个整数,第 (i + 1)行的整数表示耗费的法力值 ai,和造成的伤害bi​。

输出格式

输出仅一行,即可以杀死 boss 的技能序号,如果有多个,按从小到大的顺序输出,中间用一个空格隔开;如果没有技能能杀死 boss,输出 -1

输入输出样例

输入 #1

100 3 5000
20 1000
90 1
110 10000

输出 #1

1

输入 #2

50 4 10
60 100
70 1000
80 1000
90 0

输出 #2

-1

说明/提示

数据规模与约定

对于全部的测试点,满足:

0≤n,m,k≤30000,

1≤ai​,bi​≤2147483647

本题思路:先循环判断技能所需的法力值是否小于赵神牛的总法力值。

                  大于则进入下一个循环,小于则判断赵神牛只是用该技能能否杀死boss

                  不能杀死进入下一个循环,可以杀死输出当前技能的序号

                   注意:只要当技能所需的法力值为0,且技能伤害高于0时,赵神牛就可以杀死该boss

代码:

#include<iostream>
using namespace std;
int main()
{
    int k,m,n;
    int mp[30010],hit[30010];//题上所给m的范围是30000,所以数组开到30000以上就可以了。
    cin>>k>>m>>n;
    int a=0;//判断赵神牛的所有技能能否杀死boss。
    for(int i=0;i<m;i++)
    {
        cin>>mp[i]>>hit[i];
        if(mp[i]==0&&hit[i]>0)//当技能所需法力值为0且技能伤害大于0就可输出该技能的序号。
        {
            a=1;
            cout<<i+1<<' ';//因为i从0开始,所以技能序号为i+1
        }
        else if(mp[i]>0&&mp[i]<=k)
        {
            if(k/mp[i]*hit[i]>=n)//判断赵神牛使用该技能能不能杀死boss
            {
                a=1;
                cout<<i+1<<' ';
            }
        }
    }
    if(a==0)//若赵神牛不能杀死boss,输出-1;
    {
        cout<<"-1"<<endl;
    }
    return 0;
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值