Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- const int MX=3e3+5;
- typedef long long ll;
- int dp[MX][MX],n,a[MX],b[MX],V;
- int solve(int x,int Vv)
- {
- if(x==n)return 0;
- int& ans=dp[x][Vv];
- if(ans!=-1)return ans;
- ans=0;
- if(Vv>=a[x])
- ans=b[x]+solve(x+1,Vv-a[x]);
- ans=max(ans,solve(x+1,Vv));
- return ans;
- }
- int main()
- {
- memset(dp,-1,sizeof dp);
- cin>>n>>V;
- for(int i=0;i<n;i++)
- {
- cin>>a[i];
- }
- for(int i=0;i<n;i++)
- cin>>b[i];
- cout<<solve(0,V);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement