#include using namespace std; vector typical_knapsack(vector weight,vector value,int capacity){ int N=weight.size(); vector> dp(N,vector(capacity+1)); for(int i=0;i=weight[0]){ dp[i][j]=value[0]; }else{ dp[i][j]=0; } }else{ if(j>=weight[i]){ dp[i][j]=max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]); }else{ dp[i][j]=dp[i-1][j]; } } } } return dp[N-1]; } int main(){ int N; cin>>N; vector capacity(N),value(N); for(int i=0;i>value[i]>>capacity[i]; } int V; cin>>V; vector ans=typical_knapsack(capacity,value,100*1000); int m=-1; int M=-1; for(int i=0;iV && M==-1){ M=i-1; } } cout<