Advertisement
Imran2544

Lalosha

Aug 22nd, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(int argc, char const *argv[])
  5. {
  6.     int n;
  7.     scanf("%d", &n);
  8.     int weight[n+1], price[n+1];
  9.     long long dp[n+2][1005];
  10.     for (int i=1; i<=n; i++)
  11.         scanf("%d", weight+i);
  12.     for (int i=1; i<=n; i++)
  13.         scanf("%d", price+i);
  14.     for (int i=0; i<=n; i++) {
  15.         for (int j=0; j<=1002; j++) {
  16.             if (i==0 || j==0)
  17.                 dp[i][j]=0;
  18.             else if (j>=weight[i])
  19.                 dp[i][j]=max(dp[i-1][j], price[i]+dp[i-1][j-weight[i]]);
  20.             else
  21.                 dp[i][j]=dp[i-1][j];
  22.         }
  23.     }
  24.     int m, x;
  25.     scanf("%d", &m);
  26.     while (m--) {
  27.         scanf("%d", &x);
  28.         printf("Loudly: %lld\n", dp[n][x]);
  29.     }
  30.  
  31.     return 0;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement