Submission
Status:
[PPP-SSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Hxluk.ka
Problemset: laracroft
Language: cpp
Time: 0.003 second
Submitted On: 2025-12-28 12:04:37
#include <iostream>
using namespace std;
using ll = long long;
const int nx=103, wx=1e5+3;
ll n, W, w[nx], vl[nx], dp[4][wx];
int main() {
cin.tie(0)->sync_with_stdio(0);
cin>>n>>W;
for (int i=1; i<=n; i++) cin>>vl[i];
for (int i=1; i<=n; i++) cin>>w[i];
for (int i=1; i<=n; i++) {
int curr=i%2, pre=1-curr;
for (int j=0; j<=W; j++) {
dp[curr][j]=dp[pre][j];
dp[curr+2][j]=dp[pre+2][j];
if (j>=w[i]&&vl[i]+dp[pre][j-w[i]]>dp[curr][j]) {dp[curr][j]=vl[i]+dp[pre][j-w[i]]; dp[curr+2][j]=dp[pre+2][j-w[i]]+w[i];}
}
}
cout << dp[n%2][W] << ' ' << dp[n%2+2][W];
}