fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define max3(a,b,c) max(max(a,b),c)
  4. #define min3(a,b,c) min(min(a,b),c)
  5. #define PI acos(-1.0)
  6. #define LL long long
  7. #define INF_MAX 2147483647
  8. #define INF_MIN -2147483647
  9. #define MX 1000005
  10. #define MOD 1000000007
  11. LL dp[301][1001]={0};
  12. int main()
  13. {
  14. //freopen("a.in", "r", stdin);
  15. //freopen("a.out", "w", stdout);
  16. dp[0][0]=1;
  17. for(int i=0;i<=300;i++)
  18. {
  19. for(int j=0;j+i<=300;j++)
  20. {
  21. for(int k=1;k<=1000;k++)
  22. {
  23. dp[j+i][k]+=dp[j][k-1];
  24. }
  25. }
  26. }
  27. string line;
  28. int n[3];
  29. while(getline(cin,line))
  30. {
  31. stringstream ss(line);
  32. int i=0;
  33. while(ss>>n[i])
  34. //{
  35. i++;
  36. //}
  37. switch(i)
  38. {
  39. case 1: printf("%lld\n",dp[n[0]][1000]); break;
  40. case 2: printf("%lld\n",dp[n[0]][n[1]]); break;
  41. case 3:
  42. if(n[1]==0) printf("%lld\n",dp[n[0]][n[2]]);
  43. else printf("%lld\n", dp[n[0]][n[2]]-dp[n[0]][n[1]-1]);
  44. break;
  45. }
  46. }
  47.  
  48. }
  49.  
  50.  
  51.  
Success #stdin #stdout 0.14s 5820KB
stdin
6
6 3
6 2 5
6 1 6
stdout
11
7
9
11