Submission
Status:
[PPPPPPPPPPPPPPP]
Score: 100
User: njoop
Problemset: laracroft
Language: cpp
Time: 0.011 second
Submitted On: 2025-04-04 02:26:38
//int mx, weight;
//void sol(int v[], int w[], int idx, int n, int val, int we, int W){
// if(we > W) return;
// if(idx >= n){
// if(val > mx){
// mx = val;
// weight = we;
// }
// return;
// }
// sol(v,w,idx+1,n,val,we,W);
// sol(v,w,idx+1,n,val+v[idx],we+w[idx],W);
//}
//
//main(){
// sol(v,w,0,n,0,0,W);
// cout<<mx<<' '<<weight;
//}
#include <bits/stdc++.h>
#define int long long
using namespace std;
int x, y;
int32_t main(){
int n, W;
cin>>n>>W;
int dp[n+1][W+1];
int wt[n], val[n];
for(int i=0;i<n;i++) cin>>val[i];
for(int i=0;i<n;i++) cin>>wt[i];
int i, w;
for (i = 0; i <= n; i++) {
for (w = 0; w <= W; w++) {
if (i == 0 || w == 0) dp[i][w] = 0;
else if (wt[i - 1] <= w) dp[i][w] = max(val[i-1] + dp[i-1][w-wt[i-1]], dp[i-1][w]);
else dp[i][w] = dp[i-1][w];
if(x != dp[i][w]){
x = dp[i][w];
y = w;
}
}
}
cout<<x<<' '<<y;
// for(int i=0;i<=n;i++){
// for(int j=0;j<=W;j++){
// cout<<dp[i][j]<<' ';
// }cout<<endl;
// }
}
/*
3 3
1 2 3
4 5 6
*/