#include "jelly.h"
#include <vector>
#include <math.h>
#include <iostream>
#include <cstring>
using namespace std;
int const N2 = 10010;
int dp[2][N2][2010];
int find_maximum_unique(int x, int y, std::vector<int> a, std::vector<int> b) {
int n = a.size();
int ans = 0;
memset(dp,-1,sizeof dp);
dp[0][0][0] = 0;
int sum = 0;
for(int i = 1;i <= n;i++){
sum += a[i-1];
sum = min(sum,x);
for(int j = 0;j <= sum;j++){
for(int k = 1;k <= n;k++){
if(dp[abs((i-1)%2)][j][k-1] != -1) dp[i%2][j][k] = dp[abs((i-1)%2)][j][k-1]+b[i-1];
if(j-a[i-1] >= 0 && dp[abs((i-1)%2)][j-a[i-1]][k-1] != -1){
if(dp[i%2][j][k] == -1) dp[i%2][j][k] = dp[abs((i-1)%2)][j-a[i-1]][k-1];
else dp[i%2][j][k] = min(dp[i%2][j][k],dp[abs((i-1)%2)][j-a[i-1]][k-1]);
}
if(dp[i%2][j][k] <= y && dp[i%2][j][k] != -1) ans = max(ans,k);
//cout << dp[i%2][j][k] << "/";
}
//cout << " ";
}
//cout << endl;
}
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... |