#include "jelly.h"
#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9;
int find_maximum_unique(int x, int y, std::vector<int> a, std::vector<int> b) {
vector <pair <int, int>> c;
for (int i = 0; i < (int)a.size(); i++) {
c.push_back({a[i], b[i]});
}
sort(c.begin(), c.end());
int n = (int)c.size();
int pre[n + 1][x + 1] = {}, suff[n + 2][y + 1] = {};
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= x; j++) {
pre[i][j] = inf;
pre[i][j] = pre[i - 1][j] + c[i - 1].second;
if (c[i - 1].first <= j) {
pre[i][j] = min(pre[i][j], pre[i - 1][j - c[i - 1].first]);
}
}
}
for (int i = n; i >= 1; i--) {
for (int j = 0; j <= y; j++) {
suff[i][j] = suff[i + 1][j];
if (c[i - 1].second <= j) {
suff[i][j] = max(suff[i][j], suff[i + 1][j - c[i - 1].second] + 1);
}
}
}
int mx = 0;
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= x; j++) {
if (pre[i][j] <= y) {
mx = max(mx, i + suff[i + 1][y - pre[i][j]]);
}
}
}
return mx;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |