#include <bits/stdc++.h>
using namespace std;
typedef int ll;
ll dp[201][501][501][2];
int find_maximum_unique(int x, int y, vector<int> A, vector<int> B) {
ll n = A.size();
vector<ll> a(n+1), b(n+1);
for(ll i = 0; i < n; i++) a[i+1] = A[i], b[i+1] = B[i];
for(ll i = 1; i <= n; i++){
for(ll sum_a = 0; sum_a <= x; sum_a++){
for(ll sum_b = 0; sum_b <= y; sum_b++){
if(sum_a - a[i] >= 0) dp[i][sum_a][sum_b][0] = max(dp[i-1][sum_a - a[i]][sum_b][0], dp[i-1][sum_a - a[i]][sum_b][1]) + 1;
if(sum_b - b[i] >= 0) dp[i][sum_a][sum_b][1] = max(dp[i-1][sum_a][sum_b - b[i]][0], dp[i-1][sum_a][sum_b - b[i]][1]) + 1;
}
}
}
return max(dp[n][x][y][0], dp[n][x][y][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... |