This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "jelly.h"
#include <vector>
#include<bits/stdc++.h>
using namespace std;
vector<int> aprice;
vector<int> bprice;
int dp[501][501][13];
int knapsack(int x,int y,int ind){
if(ind==0 || (x==0 && y==0)){
dp[x][y][ind]=0;
return dp[x][y][ind]=0;
}
if(dp[x][y][ind]!=-1)return dp[x][y][ind];
if(x-aprice[ind-1]>=0 && y-bprice[ind-1]>=0){
dp[x][y][ind]=max(max(knapsack(x-aprice[ind-1],y,ind-1),knapsack(x,y-bprice[ind-1],ind-1))+1,knapsack(x,y,ind-1));
}
else if(x-aprice[ind-1]>=0){
dp[x][y][ind]=max(knapsack(x-aprice[ind-1],y,ind-1)+1,knapsack(x,y,ind-1));
}
else if(y-bprice[ind-1]>=0){
dp[x][y][ind]=max(knapsack(x,y-bprice[ind-1],ind-1)+1,knapsack(x,y,ind-1));
}
else dp[x][y][ind]=knapsack(x,y,ind-1);
return dp[x][y][ind];
}
int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) {
int n = a.size();
for(int i=0;i<=x;i++)for(int j=0;j<=y;j++)for(int k=0;k<=n;k++)dp[i][j][k]=-1;
aprice=a;
bprice=b;
return knapsack(x,y,n);
}
# | 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... |