#include <bits/stdc++.h>
using namespace std;
int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) {
int n=a.size();
vector<pair<int, pair<int,int>>> dp(n+1);
dp[0] = {0, {0, 0}};
for (int i=1; i<=n; i++) {
int ca=a[i-1], cb=b[i-1];
dp[i] = dp[i-1];
for (int j=0; j<i; j++) {
int pa=dp[j].second.first, pb=dp[j].second.second;
if (ca + pa <= x) {
if (dp[i].first <= dp[j].first+1) {
dp[i] = dp[j];
dp[i].first++;
dp[i].second.first = ca + pa;
}
//else if (dp[i].first == dp[j].first+1) {
}
if (cb + pb <= y) {
if (dp[i].first <= dp[j].first+1) {
dp[i] = dp[j];
dp[i].first++;
dp[i].second.second= cb + pb;
}
}
}
}
//cout<< dp[n].second.first<< ' '<< dp[n].second.second<< ' ';
return dp[n].first;
}
/*
int main() {
int n,x,y;
cin>> n>> x>> y;
vector<int> a(n), b(n);
for (int i=0; i<n; i++) cin>> a[i];
for (int i=0; i<n; i++) cin>> b[i];
cout<< find_maximum_unique(x, y, a, b);
}*/
| # | 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... |