josiftepe

Untitled

Nov 21st, 2020
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <vector>
  4. #include <set>
  5. #include <map>
  6. #include <sstream>
  7. #include <cstdio>
  8. #include <algorithm>
  9. #include <stack>
  10. #include <queue>
  11. #include <cmath>
  12. #include <iomanip>
  13. #include <fstream>
  14. using namespace std;
  15.  
  16. typedef long long ll;
  17. const int maxn = 1e5 + 1;
  18. const int MOD = 1e9 + 7;
  19. const int INF = 2e9 + 10;
  20. int main(int argc, const char *argv[]){
  21.     ios_base::sync_with_stdio(false);
  22.     int n, x;
  23.     cin >> n >> x;
  24.     vector<int> price(n), pages(n);
  25.     for(int &x : price) {
  26.         cin >> x;
  27.     }
  28.     for(int &x : pages) {
  29.         cin >> x;
  30.     }
  31.     vector<vector<int> > dp(n + 1, vector<int>(x + 1, -INF));
  32.     dp[0][x] = 0;
  33.     for(int i = 0; i < n; ++i) {
  34.         for(int p = x; p >= 0; --p) {
  35.             if(p - price[i] >= 0) {
  36.                 dp[i + 1][p - price[i]] = max(dp[i + 1][p - price[i]], dp[i][p] + pages[i]);
  37.             }
  38.             dp[i + 1][p] = max(dp[i + 1][p], dp[i][p]);
  39.         }
  40.     }
  41.     int ret = -INF;
  42.     for(int i = 0; i <= x; ++i) {
  43.         ret = max(ret, dp[n][i]);
  44.     }
  45.     cout << ret << endl;
  46.     return 0;
  47. }
  48.  
Advertisement
Add Comment
Please, Sign In to add comment