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];
}