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][12];
int knapsack(int x,int y,int ind){
if(dp[x][y][ind]!=-1)return dp[x][y][ind];
if(ind==-1 || (x==0 && y==0))dp[x][y][ind]=0;
else if(x-aprice[ind]>=0 && y-bprice[ind])dp[x][y][ind]=max(max(knapsack(x-aprice[ind],y,ind-1),knapsack(x,y-bprice[ind],ind-1))+1,knapsack(x,y,ind-1));
else if(x-aprice[ind]>=0)dp[x][y][ind]=max(knapsack(x-aprice[ind],y,ind-1)+1,knapsack(x,y,ind-1));
else if(y-bprice[ind]>=0)dp[x][y][ind]=max(knapsack(x,y-bprice[ind],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-1);
}
# | 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... |