fork download
  1. #include <cstring>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <cstdlib>
  5. #include <cstdio>
  6. #include <iostream>
  7. #include <fstream>
  8. #include <queue>
  9.  
  10. #define rep(i, l, r) for(int i = l; i <= r; i++)
  11. #define down(i, l, r) for(int i = l; i >= r; i--)
  12. #define MS 123456
  13. #define MAX 1037471823
  14. #define Q 100000
  15.  
  16. using namespace std;
  17.  
  18. int c1, c2, c3, c4, t, d1, d2, d3, d4, s;
  19. long long ans, w[MS];
  20.  
  21. int main()
  22. {
  23. scanf("%d%d%d%d%d", &c1, &c2, &c3, &c4, &t);
  24. w[0] = 1;
  25. rep(i, c1, MS-1) w[i] += w[i-c1];
  26. rep(i, c2, MS-1) w[i] += w[i-c2];
  27. rep(i, c3, MS-1) w[i] += w[i-c3];
  28. rep(i, c4, MS-1) w[i] += w[i-c4];
  29. while (t-- > 0)
  30. {
  31. scanf("%d%d%d%d%d", &d1, &d2, &d3, &d4, &s);
  32. ans = w[s];
  33. if (s-(d1+1)*c1 >= 0) ans -= w[s-(d1+1)*c1];
  34. if (s-(d2+1)*c2 >= 0) ans -= w[s-(d2+1)*c2];
  35. if (s-(d3+1)*c3 >= 0) ans -= w[s-(d3+1)*c3];
  36. if (s-(d4+1)*c4 >= 0) ans -= w[s-(d4+1)*c4];
  37. if (s-(d1+1)*c1-(d2+1)*c2 >= 0) ans += w[s-(d1+1)*c1-(d2+1)*c2];
  38. if (s-(d1+1)*c1-(d3+1)*c3 >= 0) ans += w[s-(d1+1)*c1-(d3+1)*c3];
  39. if (s-(d1+1)*c1-(d4+1)*c4 >= 0) ans += w[s-(d1+1)*c1-(d4+1)*c4];
  40. if (s-(d2+1)*c2-(d3+1)*c3 >= 0) ans += w[s-(d2+1)*c2-(d3+1)*c3];
  41. if (s-(d2+1)*c2-(d4+1)*c4 >= 0) ans += w[s-(d2+1)*c2-(d4+1)*c4];
  42. if (s-(d3+1)*c3-(d4+1)*c4 >= 0) ans += w[s-(d3+1)*c3-(d4+1)*c4];
  43. if (s-(d1+1)*c1-(d2+1)*c2-(d3+1)*c3 >= 0) ans -= w[s-(d1+1)*c1-(d2+1)*c2-(d3+1)*c3];
  44. if (s-(d2+1)*c2-(d3+1)*c3-(d4+1)*c4 >= 0) ans -= w[s-(d2+1)*c2-(d3+1)*c3-(d4+1)*c4];
  45. if (s-(d3+1)*c3-(d4+1)*c4-(d1+1)*c1 >= 0) ans -= w[s-(d3+1)*c3-(d4+1)*c4-(d1+1)*c1];
  46. if (s-(d4+1)*c4-(d1+1)*c1-(d2+1)*c2 >= 0) ans -= w[s-(d4+1)*c4-(d1+1)*c1-(d2+1)*c2];
  47. if (s-(d1+1)*c1-(d2+1)*c2-(d3+1)*c3-(d4+1)*c4 >= 0) ans += w[s-(d1+1)*c1-(d2+1)*c2-(d3+1)*c3-(d4+1)*c4];
  48. printf("%lld\n", ans);
  49. }
  50. return 0;
  51. }
Success #stdin #stdout 0s 4308KB
stdin
1 2 5 10 2
1000 2 2 2 900
stdout
27
27