#include "jelly.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e3 + 10;
const int MAXC = 1e4 + 10;
pair<int, int> jellies[MAXN];
int dp_1[MAXN][MAXC], dp_2[MAXN][MAXC];
int find_maximum_unique(int x, int y, vector<int> a, vector<int> b){
int n = a.size();
for(int i=1; i<=n; i++) jellies[i] = {a[i - 1], b[i - 1]};
sort(jellies + 1, jellies + n + 1);
for(int i=1; i<=n; i++){
for(int j=0; j<=y; j++){
dp_1[i][j] = dp_1[i - 1][j];
if(jellies[i].second <= j) dp_1[i][j] = max(dp_1[i][j], dp_1[i - 1][j - jellies[i].second] + jellies[i].first);
}
}
for(int i=n; i>=1; i--){
for(int j=0; j<=y; j++){
dp_2[i][j] = dp_2[i + 1][j];
if(jellies[i].second <= j) dp_2[i][j] = max(dp_2[i][j], dp_2[i + 1][j - jellies[i].second] + 1);
}
}
int ans = 0, sum = 0;
for(int i=1; i<=n; i++){
sum += jellies[i].first;
for(int j=0; j<=y; j++){
if(sum - dp_1[i][j] <= x){
ans = max(ans, i + dp_2[i + 1][y - j]);
}
}
}
return ans;
}
# | 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... |