hpnq

летняя практика имифи

Jul 1st, 2024
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. //#include "bits/stdc++.h"
  2. //#include "bits/stdc++.h"
  3. #include <iostream>
  4. //speed coding
  5.  
  6. #define mp make_pair
  7. #define cve(tpy) for (auto i : tpy) {for(auto j : i){cout << j << " ";  }cout << "\n";} ;
  8. #define f first
  9. #define s second
  10. #define loop(i, x, n) for (ll i = x; i < n; i++)
  11. #define joop(x, n) for (ll j = x; j < n; j++)
  12. #define lp(n) for (ll i = 0; i < n; i++)
  13. #define err cout << "ERROR" << endl;
  14. #define all(x) x.begin(), x.end()
  15. #define pb push_back
  16. #define sz(x) x.size()
  17. #define rndm rng()
  18.  
  19. // types
  20. #define pii pair<int, int>
  21. #define pll pair<ll, ll>
  22. #define vvi vector<vector<int>>
  23. #define vvll vector<vector<ll>>
  24. typedef long long ll;
  25. typedef long double ld;
  26.  
  27. // types of data
  28. #define inf 1000000000
  29. #define infll 1000000000000000000
  30. #define INF ll(1e18)
  31.  
  32. //#define md 998244353
  33. #define mod 1000000009
  34. #define K 239017
  35.  
  36. //#define DEBUG 1
  37. using namespace std;
  38. //mt19937_64 rng(time(nullptr));
  39. //uniform_int_distribution<ll> drist;
  40. // ferma
  41. // a^(p-2) = 1/a mod p
  42.  
  43. // a^p = a mod p
  44.  
  45.  
  46. void solve() {
  47.     int n, W;
  48.     cin >> n >> W;
  49.     ll *w{new ll[n]}, *c{new ll[n]}, *d {new ll[W+1]};
  50.  
  51.     loop(i, 0, n) cin >> w[i];
  52.     loop(i, 0, n) cin >> c[i];
  53.  
  54.     loop(i, 0, W+1) d[i] = -INF;
  55.     d[0] = 0;
  56.     loop(i, 0, n){
  57.             ll *d2{new ll[W+1]};
  58.             loop(j, 0, W+1){
  59.                 d2[j] = d[j];
  60.             }
  61.             for(int s = 0; s+w[i] <= W; s++){
  62.                 d2[s+w[i]] = max(d2[s+w[i]], d[s] + c[i]);
  63.             }
  64.  
  65.             loop(j, 0, W+1){
  66.                 d[j] = d2[j];
  67.             }
  68.             delete []d2;
  69.     }
  70.     ll ans =  -INF;
  71.     loop(i, 0, W+1){
  72.  
  73.             ans = max(ans, d[i]);
  74.     }
  75.     cout << ans;
  76.  
  77. }
  78.  
  79. int main() {
  80.     ios::sync_with_stdio(0);
  81.     cin.tie(0);
  82. #ifdef DEBUG
  83.     freopen("text.txt", "r", stdin);
  84. #endif
  85.     solve();
  86.  
  87.  
  88.     return 0;
  89. }
Add Comment
Please, Sign In to add comment