fork download
  1. #include<bits/stdc++.h>
  2. #define mod 1000000007
  3. #define pp pair<ll,ll>
  4. #define mp make_pair
  5. #define ll long long
  6. #define pb push_back
  7. #define ff first
  8. #define ss second
  9. using namespace std;
  10.  
  11. ll dp[1010][1010],n,cap,wt[1010],val[1010];
  12. int main(){
  13.  
  14. memset(dp,0,sizeof(dp));
  15. cin>>n>>cap;
  16. for(int i=1;i<=n;i++)
  17. cin>>wt[i];
  18. for(int i=1;i<=n;i++)
  19. cin>>val[i];
  20.  
  21.  
  22. for(int i=1;i<=cap;i++){
  23. for(int j=1;j<=n;j++){
  24. dp[i][j] = dp[i][j-1];
  25. if(i-wt[j]>=0)
  26. dp[i][j] = max({dp[i][j] , val[j] + dp[i-wt[j]][j-1],val[j]+dp[i-wt[j]][j]});
  27. }
  28. }
  29. cout<<dp[cap][n];
  30.  
  31. return 0;
  32. }
Success #stdin #stdout 0s 11364KB
stdin
Standard input is empty
stdout
Standard output is empty