水题。。。。。但是还是wa了几发。。。
感觉有的时候有点鲁莽。。。。糙。
刚开始就考虑了一种情况,就是打完k轮后,加上休息的一轮,若是还不能造成伤害,那就输了。
但是还有几种情况,一是可能第一轮就打死了,还没等他回血,而是在某轮没等他回血的时候就死了。
好吧,刚刚发现分类可以是攻击和回血的大小值的判断。。。
然后就是担心超整型了用了int64,可能是不用的吧。
#include <stdio.h>
#define ll __int64
int main()
{
ll h,a,b,k;
ll cas=0;
while(scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k)!=EOF&&h+a+b+k)
{
printf("Case #%I64d: ",++cas);
if(a>=h) printf("YES\n");
else
{
ll tmp;
tmp=(a-b)*k+b;
if(tmp>=h) printf("YES\n");
else
{
if(tmp<=0) printf("NO\n");
else
if(tmp-2*b>0) printf("YES\n");
else printf("NO\n");
}
}
}
return 0;
}