可莉的攻击力为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
using namespace std;
int main()
{
int fight, blood, n, flag = 1;//利用旗帜判断输赢
cin >>fight >>blood >>n;
int qiuf[100], qiub[100];
for(int i = 0; i < n; i++)//输入丘丘人的攻击力和血量
{
cin >>qiuf[i];
cin >>qiub[i];
}
for(int i=0; i < n-1; i++)//与n-1只丘丘人的交战
{
while(blood > 0 && qiub[i] > 0)//多次交战,相互扣血
{
blood = blood - qiuf[i];
qiub[i] = qiub[i] - fight;
}
}
if(blood <= 0)//判断结果
flag = 0;
while(blood > 0 && qiub[n-1] > 0)//与最后一只丘丘人的交战
{
blood = blood - qiuf[n-1];
qiub[n-1] = qiub[n-1] - fight;
}
if(blood <= 0 && qiub[n-1] > 0 )//判断结果
flag = 0;
if(flag == 0)
cout<<"NO";
else
cout<<"YES";
return 0;
}
中误判。