题目描述
英雄的攻击力为A,血量为H;有N个怪物,第i个怪物的攻击力为A_i,血量为H_i;
怪物或英雄的血量小于1则视为死亡;英雄将与怪物战斗,直到英雄死亡或所有怪物死亡。
在每次战斗中,英雄都可以与一个活的怪物i战斗,经过战斗后怪物的血量减少A同时英雄的血量减少A_i,
且英雄可以同一个怪物多次战斗。请判断英雄是否可以杀死所有怪物(即使英雄在杀死最后一个怪物之后死亡)。
输入
第一行输入三个整数代表英雄的攻击力A和血量H还有怪物的数量n
接下来一行n个整数代表怪物的攻击力A_i
接下来一行n个整数代表怪物的血量H_i
输出
如果可以输出YES,不可以输出NO
样例输入
3 17 1
2
16
样例输出
YES
#include<iostream>
using namespace std;
int main()
{
int A, H, n;
cin >> A >> H >> n;
int* A_A = new int[n], * H_H = new int[n];
for (int i = 0; i < n; i++)
{
cin >> A_A[i];
}
for (int i = 0; i < n; i++)
{
cin >> H_H[i];
}
for (int i = 0; i < n; i++)
{
while (H_H[i] > 0)
{
H -= A_A[i];
H_H[i] -= A;
if (H < 1)
{
if (i != n - 1 || H_H[i] != 0) /*着重判断最后一个的这种情况,如果英雄血量
小于0时还有怪物血量不为0,那么失败*/
{
cout << "NO" << endl;
return 0; //如果输出了NO,则结束main函数的运行,即程序结束
}
}
}
}
cout << "YES" << endl;
return 0;
}