勇士打怪兽问题,不知道自己少考虑了什么情况

问题遇到的现象和发生背景

哪里有错误,请指正

img

问题相关代码,请勿粘贴截图
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>

using namespace std;
int main()
{
    double m,a,b;
    cin>>a>>b>>m;   //攻击  防御 血量 
    long long k;
    cin>>k;
    double nb[k+1];
    nb[0]=0;
    long long num=0;
    for(long long i=1;i<=k;i++)
    {    
        double n,c,d; 
        cin>>c>>d>>n;//攻击  防御 血量 
        if((a-d)>0)
        {
            if(c>b)
            nb[i]=(1.0*n*(c-b))/(a-d);
            else nb[i]=0;
        }
        else if(a<=d)
        nb[i]=100000000000;
//        else if(c<=b)
//        nb[i]=0;
    }
    sort(nb,nb+k+1);
//    for(int i=0;i<k+1;i++)
//    cout<<nb[i]<<"   ";
    double nnn=0;
    for(int i=1;i<=k;i++)
    {
        nnn+=nb[i];
        if(nnn>=m)
        break;
        
        num++;
    }
    cout<<num;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

没看代码,浏览题目后想到一种情况。没有强制减伤的话,就会出现勇者攻击小于怪兽防御,且怪兽攻击也小于勇者防御,这样永远都赢不了也输不了