fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n, m;
  6. cin>>n>>m;
  7. int a[n], b[n];
  8. for (int i=0; i<n; i++)
  9. cin>>a[i];
  10. for(int i=0; i<n; i++)
  11. cin>>b[i];
  12. int dp[m+1]={0,};
  13. for(int i=0; i<n; i++){
  14. for(int j=m-a[i]; j>=0; j--){
  15. if(dp[j]>0 and j==0)
  16. if(dp[j+a[i]]<dp[j]+b[i])
  17. dp[j+a[i]]=dp[j]+b[i];
  18. }
  19. }
  20. int mx=dp[1];
  21. for(int i=0; i<=m; i++)
  22. mx=max(mx,dp[i]);
  23. cout<<mx;
  24. return 0;
  25. }
Success #stdin #stdout 0.01s 5304KB
stdin
4 6
2 4 1 2
7 2 5 1
stdout
Standard output is empty