Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: erng

Problemset: laracroft

Language: cpp

Time: 0.004 second

Submitted On: 2026-01-15 20:00:32

#include <bits/stdc++.h>

using namespace std;

#define ll long long

const ll nx=505;

ll n, cp, v[nx], w[nx], dp[nx][2005];
pair<ll,ll> ans;

int main()
{
    cin.tie(NULL)->sync_with_stdio(false);
    cin>>n>>cp;
    for (int i=1; i<=n; i++)
    {
        cin>>v[i];
    }
    for (int i=1; i<=n; i++)
    {
        cin>>w[i];
    }
    for (int i=1; i<=n; i++)
    {
        for (int j=0; j<=cp; j++)
        {
            if (j<w[i])
            {
                dp[i][j]=dp[i-1][j];
                continue;
            }
            dp[i][j]=max(dp[i-1][j-w[i]]+v[i], dp[i-1][j]);
        }
    }
    ans.first=0;
    ans.second=4e18;
    for (ll i=0; i<=cp; i++)
    {
        if (dp[n][i]>ans.first)
        {
            ans.first=dp[n][i];
            ans.second=i;
        }
        else if (dp[n][i]==ans.first)
        {
            ans.first=dp[n][i];
            ans.second=min(i, ans.second);
        }
    }
    cout<<ans.first<<" "<<ans.second;
}