Submission

Status:

[PPxSSSSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: kenmuay

Problemset: laracroft

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-07 22:19:14

#include <bits/stdc++.h>
using namespace std;

const int maxn = 5e2+10;
int val[maxn];
int weight[maxn];
int dp[maxn];



int main() {
    cin.tie(nullptr)->sync_with_stdio(0);
    int n, w;
    cin >> n >> w;
    
    for(int i=1; i<=n; i++){
        cin >> val[i];
    }
    for(int i=1; i<=n; i++){
        cin >> weight[i];
        
    }
    memset(dp, -0x3f, sizeof dp);
    dp[0] = 0;

    for(int i=1; i<=n; i++){
        for(int j=w; j>=0; j--){
            if(j-weight[i] < 0) break;
            if(dp[j-weight[i]] == -0x3f) continue;
            dp[j] = max(dp[j-weight[i]]+val[i], dp[j]);
        }
    }
    int mx=0;
    int idx=1e9+7;
    for(int i=1; i<=w; i++){
        if(dp[i] == mx) {
            idx = min(idx, i);
        }
        if(dp[i] > mx){
            mx = max(mx, dp[i]);
            idx = i;
        } 
    }
    if(idx == 1e9+7) idx = 0;
    cout << mx << ' ' << idx ;
}