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