原题http://acm.hdu.edu.cn/showproblem.php?pid=4950
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 566 Accepted Submission(s): 231
5 3 2 2 0 0 0 0
Case #1: NO
#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <limits.h> #include <ctype.h> #include <string.h> #include <string> #include <math.h> #include <algorithm> #include <iostream> #include <stack> #include <queue> #include <deque> #include <vector> #include <set> #include <map> using namespace std; int main() { __int64 cas=1; __int64 h,a,b,k; while(~scanf("%I64d%I64d%I64d%I64d",&h,&a,&b,&k)){ if(h==0 && a==0 && b==0 && k==0){ break; } if(h <= a){ printf("Case #%I64d: YES\n",cas++); continue; } if(a <= b){ printf("Case #%I64d: NO\n",cas++); continue; } if(h-(a-b)*(k-1)-a <= 0){//K回合之内就打败了,不能回血。 printf("Case #%I64d: YES\n",cas++); continue; } if(h-(a-b)*(k)+b < h){ printf("Case #%I64d: YES\n",cas++); continue; } else{ printf("Case #%I64d: NO\n",cas++); } } return 0; }
原文:http://blog.csdn.net/zcr_7/article/details/38587041