Submission
Status:
[PP-SSSSSSSSSSSS]
Subtask/Task Score:
{0/100}
Score: 0
User: Kx
Problemset: laracroft
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-19 11:42:39
#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<int>> dp(n + 1, vector<int>(m + 1, 0));
if(m >= w[0]) {
for(int i = 1; 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], pos;
if(mx == 0) {
cout << 0 << ' ' << 0 << '\n';
return 0;
}
for(int i = 0; i < n; ++i) {
int cmx = *max_element(dp[i].begin(), dp[i].end());
if(cmx == mx) {
int idx = max_element(dp[i].begin(), dp[i].end()) - dp[i].begin();
cout << mx << ' ' << idx;
break;
}
}
return 0;
}