http://acm.hdu.edu.cn/showproblem.php?pid=4950

给定怪兽血量h,你攻击力a,怪物回血力b,你攻击k次要休息一次,问能否杀死怪兽

特判一次打死怪兽的情况和第k次前打死怪兽的情况,否则只要能磨死怪兽即可

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <queue>
#include <vector>
#include<map>
#include <iostream>
#include <algorithm>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf("%d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
typedef long long LL; int main() {
LL h,a,b,k;
int cas = 1;
while(~scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k),h|a|b|k){
printf("Case #%d: ",cas++);
if(a >= h || a*k-b*(k-1) >=h){
puts("YES");
continue;
}
if((k+1)*b < k*a){
puts("YES");
continue;
}
puts("NO");
}
return 0;
}
05-08 08:16