fork(1) download
  1. #include<stdio.h>
  2. float ans[10][120][300]={0};
  3. float recursion(int balls, int reqRuns, int wickets);
  4. int readScore(void);
  5. int main()
  6. {
  7. int t;
  8. scanf("%d",&t);
  9. while(t--)
  10. {
  11. memset(ans,0,sizeof(ans));
  12. float overs;
  13. int myruns,wickets,target;
  14. scanf("%f",&overs);
  15. myruns=readScore();
  16. scanf("%d",&wickets);
  17. //printf("%d %d\n",myruns,wickets );
  18. scanf("%d",&target);
  19. //printf("%d %d %d\n",myruns,wickets,target);
  20. if(myruns>=target)
  21. {
  22. printf("%s\n","100.00");
  23. continue;
  24. }
  25. else if(wickets>=10)
  26. {
  27. printf("%s\n", "0.00");
  28. continue;
  29. }
  30. printf("overs = %f\n", overs);
  31. int ov = (int) overs;
  32. int ball = (int)(overs*10)%10;
  33. int totballs = 6*ov+ball;
  34. // printf("%d %d\n",ov,ball );
  35. // printf("%d %d %d\n",totballs, target- myruns,wickets );
  36. float finalAns = recursion(totballs,target-myruns, wickets)*100;
  37. printf("%.2f\n",finalAns);
  38.  
  39. }
  40. return 0;
  41. }
  42. int readScore()
  43. {
  44. char ch;
  45. int ans2=0;
  46. ch = getchar();
  47. //ch = getchar();
  48. //ans = ans*10 + ch-'0';
  49. //printf("sadasdas %d\n",ch );
  50. while(ch!='/')
  51. {
  52. ch=getchar();
  53. //printf(" ch = %d\n", ch-'0');
  54. if(ch!='/')
  55. ans2 = ans2*10 + ch-'0';
  56.  
  57. }
  58. //printf("%d\n",ans );
  59. return ans2;
  60. }
  61. float recursion(int balls, int reqRuns, int wickets)
  62. {
  63. if (reqRuns<=0)
  64. return 1;
  65. if (balls==120||wickets==10)
  66. return 0;
  67. if(ans[wickets][balls][reqRuns]!=0)
  68. return ans[wickets][balls][reqRuns];
  69.  
  70. ans[wickets][balls][reqRuns] = (recursion(balls+1, reqRuns,wickets)+recursion(balls+1, reqRuns-1,wickets)+
  71. recursion(balls+1, reqRuns-2,wickets)+recursion(balls+1, reqRuns-3,wickets)+
  72. recursion(balls+1, reqRuns-4,wickets)+recursion(balls+1, reqRuns-5,wickets)+
  73. recursion(balls+1, reqRuns-6,wickets)+recursion(balls+1, reqRuns,wickets+1)+
  74. 2*recursion(balls, reqRuns-1,wickets))/10;
  75. return ans[wickets][balls][reqRuns];
  76.  
  77. }
  78.  
Time limit exceeded #stdin #stdout 5s 3080KB
stdin
Standard input is empty
stdout
Standard output is empty