Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Kx
Problemset: laracroft
Language: cpp
Time: 0.006 second
Submitted On: 2026-03-19 16:07:34
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(nullptr);
int n, m; cin >> n >> m;
vector<int> g(n); for(int i = 0; i < n; ++i) cin >> g[i];
vector<int> w(n); for(int i = 0; i < n; ++i) cin >> w[i];
vector<vector<long long>> dp(n + 1, vector<long long>(m + 1, 0));
if(m >= w[0]) {
for(int i = w[0]; i <= m; ++i) {
dp[0][i] = g[0];
}
}
for(int i = 1; i < n; ++i) {
for(int j = 1; j <= m; ++j) {
if(j - w[i] >= 0) {
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + g[i]);
} else {
dp[i][j] = dp[i - 1][j];
}
}
}
int mx = dp[n - 1][m], idx;
if(mx == 0) {
cout << 0 << ' ' << 0 << '\n';
return 0;
}
for(int i = 0; i <= m; ++i) {
if(dp[n - 1][i] == mx) {
idx = i;
break;
}
}
cout << mx << ' ' << idx;
return 0;
}