fork download
  1. /*
  2. ID: untamed
  3. PROG: DICE1
  4. LANG: C++
  5. */
  6.  
  7. #include<cstdio>
  8. #include<iostream>
  9. #include<algorithm>
  10. #include<string>
  11. #include<cstring>
  12. #include<vector>
  13. #include<stack>
  14. #include<queue>
  15. #include<deque>
  16. #include<map>
  17. #include<set>
  18. #include<limits>
  19. #include<climits>
  20. #include<cmath>
  21. #include<functional>
  22. #include<ctime>
  23. #include<cstdlib>
  24. #include<fstream>
  25. #include<typeinfo>
  26.  
  27. const int ONE = 1<<10;
  28. const int TWO = 1<<11;
  29. const int FOUR = 1<<12;
  30. const int EIGHT = 1<<13;
  31. const int SIXTEEN = 1<<14;
  32. const int THIRTY = 1<<15;
  33. const int SIXTY = 1<<16;
  34. const int ONE_HUNDRED = 1<<17;
  35. const int TWO_HUNDRED = 1<<18;
  36. const int FIVE_HUNDRED = 1<<19;
  37. const int MILLION = 1<<20;
  38.  
  39. using namespace std;
  40.  
  41. typedef long long int ll;
  42. typedef short int i16;
  43. typedef unsigned long long int u64;
  44. typedef unsigned int u32;
  45. typedef unsigned short int u16;
  46. typedef unsigned char u8;
  47.  
  48. const int MOD = 100000007;
  49.  
  50. int f(int p)
  51. {
  52. if(p<0)
  53. return 0;
  54. return p;
  55. }
  56.  
  57. int n,k,s;
  58.  
  59. int state[2][SIXTEEN];
  60. int sum[2][SIXTEEN];
  61.  
  62. void input()
  63. {
  64. memset(state,0,sizeof(state));
  65. memset(sum,0,sizeof(sum));
  66. scanf("%d %d %d", &n, &k, &s);
  67. }
  68.  
  69. void solve()
  70. {
  71. int i,j,z;
  72. for(i=1;i<=k;i++)
  73. {
  74. state[1][i]=1;
  75. sum[1][i]=sum[1][i-1]+1;
  76. }
  77. for(i=k+1;i<=s;i++)
  78. sum[1][i]=sum[1][i-1];
  79. for(i=2;i<=n;i++)
  80. {
  81. for(j=1;j<=s;j++)
  82. {
  83. state[(i&1)][j]=(sum[(i&1)^1][f(j-1)]-sum[(i&1)^1][f(j-k-1)]+MOD)%MOD;
  84. sum[(i&1)][j]=(sum[(i&1)][j-1]+state[(i&1)][j])%MOD;
  85. }
  86. }
  87. printf("%d\n", state[n&1][s]);
  88. }
  89.  
  90. int main()
  91. {
  92. int i,t;
  93. scanf("%d", &t);
  94. for(i=1;i<=t;i++)
  95. {
  96. input();
  97. printf("Case %d: ", i);
  98. solve();
  99. }
  100. return 0;
  101. }
  102.  
Success #stdin #stdout 0s 3396KB
stdin
Standard input is empty
stdout
Standard output is empty