#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
const int N =1010;
int n,m;
int v[N],W[N];
int f[N][N];
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int knapsack(vector<int>& w,vector<int>& v,int capacity){
int n=w.size();
//创建dp表,大小为(n+1) * (capacity+1)
vector<int> dp(n+1,0);
//填充dp表
for(int i=0;i<n;i++){
for(int j=capacity;j>=w[i];j--){
//选择当前物品或不选择当前物品
dp[j]= max(dp[j],dp[j-w[i]]+v[i]) ;
}
}
return dp[capacity];
}
int main() {
vector<int> w={2,3,4,5};
vector<int> v={3,4,5,6};
int capacity =5;
int result=knapsack(w,v,capacity);
cout<<result;
return 0;
}