Advertisement
Josif_tepe

Untitled

Nov 17th, 2021
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int dp[1005][100005];
  5. int main()
  6. {
  7.     int n;
  8.     cin>>n;
  9.     int price;
  10.     cin>>price;
  11.  
  12.     vector<int>a;
  13.     // price
  14.     vector<int>b;
  15.     //broj na strani
  16.  
  17.  
  18.     for(int i=0; i<n; i++){
  19.         int a1;
  20.         cin>>a1;
  21.      a.push_back(a1);
  22.     }
  23.  
  24.      for(int i=0; i<n; i++){
  25.         int b1;
  26.         cin>>b1;
  27.      b.push_back(b1);
  28.     }
  29.  
  30.     for(int i=0; i<=n; i++){
  31.         for(int j=0; j<=price; j++){
  32.             dp[i][j]=-1;
  33.         }
  34.     }
  35.  
  36.     dp[0][0]=0;
  37.     int result=0;
  38.  
  39.     for(int i=0; i<n; i++){
  40.         for(int j=0; j<=price; j++){
  41.             if(j+a[i]<=price){
  42.                     dp[i+1][j+a[i]]=max(dp[i+1][j+a[i]], dp[i][j]+b[i]);
  43.             }
  44.             dp[i+1][j]=max(dp[i+1][j], dp[i][j]);
  45.         }
  46.     }
  47.  
  48.     for(int i=0; i<=price; i++){
  49.         result=max(result, dp[n][i]);
  50.     }
  51.     cout<<result;
  52.  
  53.  
  54.     return 0;
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement