Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define all(x) x.begin(), x.end()
  6. #define len(x) int(x.size())
  7.  
  8. typedef long long ll;
  9.  
  10. /*
  11. int n, c;
  12. cin >> n;
  13. vector <int> w(n);
  14. for (int i = 0; i < n; i++) cin >> w[i];
  15. cin >> c;
  16. int l, r, t;
  17. cin >> l >> r >> t;
  18. bool kek = get(w, c, l, r, t);
  19. if (kek)
  20. cout << 1;
  21. else
  22. cout << 0;*/
  23.  
  24.  
  25. /*
  26. bool get(vector <int> w, int c, int l, int r, int t){
  27. int n = len(w);
  28. vector <vector<int>> dp(2010, vector <int>(1010, -1));
  29. for (int i = 0; i < n; i++)
  30. dp[i][w[i]] = i;
  31. for (int i = 1; i < n; i++){
  32. for (int j = 0; j <= c; j++){
  33. dp[i][j] = max(dp[i - 1][j], dp[i][j]);
  34. if (j - w[i] >= 0){
  35. dp[i][j] = max(dp[i][j], min(i, dp[i - 1][j - w[i]]));
  36. }
  37. }
  38. }/*
  39. for (int i = 0; i < n; i++){
  40. for (int j = 0; j <= c; j++)
  41. cout << dp[i][j] << ' ';
  42. cout << endl;
  43. }
  44. r--;
  45. l--;
  46. if (dp[r][t] >= l) return true;
  47. else return false;
  48. }*/
  49.  
  50. int main(){
  51. #ifdef HOME
  52. freopen("input.txt", "rt", stdin);
  53. #endif //HOME
  54. ios_base::sync_with_stdio(0);
  55. cin.tie(0);
  56. cout.tie(0);
  57.  
  58.  
  59. while(true){
  60. int n;
  61. cin >> n;
  62. if (n == 0) break;
  63. vector <int> w(n + 1);
  64. for (int i = 1; i <= n; i++)
  65. cin >> w[i];
  66. int c;
  67. cin >> c;
  68. vector <vector<int>> dp(n + 1, vector <int>(c + 1, -1));
  69. for (int i = 1; i <= n; i++)
  70. if (w[i] <= c)
  71. dp[i][w[i]] = i;
  72. for (int i = 2; i <= n; i++){
  73. for (int j = 0; j <= c; j++){
  74. dp[i][j] = max(dp[i][j], dp[i - 1][j]);
  75. if (j - w[i] >= 0){
  76. dp[i][j] = max(dp[i - 1][j - w[i]], max(dp[i - 1][j], dp[i][j]));
  77. }
  78.  
  79. }
  80. } /*
  81. for (int i = 1; i <= n; i++){
  82. for (int j = 0; j <= c; j++){
  83. cout << dp[i][j] << ' ';
  84. }
  85. cout << endl;
  86. }*/
  87. int q;
  88. cin >> q;
  89. string res = "";
  90. int was = 0;
  91. for (int k = 0; k < q; k++){
  92. int a, b, cc;
  93. cin >> a >> b >> cc;
  94. int l = (a + was) % (n - b + 1) + 1;
  95. int r = l + b - 1;
  96. int t = (cc + was) % (c + 1);
  97. if (dp[r][t] >= l && dp[r][t] != -1){
  98. res.push_back('Y');
  99. was++;
  100. }
  101. else
  102. res.push_back('N');
  103. }
  104. cout << res << endl;
  105. }
  106. return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement