Submission #1169032

#TimeUsernameProblemLanguageResultExecution timeMemory
1169032anteknneJelly Flavours (IOI20_jelly)C++20
35 / 100
181 ms190988 KiB
#include "jelly.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 2000; const int MAXN2 = 200; const int MAXX2 = 500; const int MAXX = 10 * 1000; int dp[MAXN2 + 1][MAXX2 + 1][MAXX2 + 1]; int dp2[MAXN + 1][MAXX + 1][2]; int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) { int n = int(a.size()); if (y == 0) { int wyn = 0; for (int i = 1; i <= n; i ++) { for (int j = 0; j <= x; j ++) { for (int k = 0; k <= y; k ++) { dp2[i][j][k] = dp[i - 1][j][k]; if (j >= a[i - 1]) { dp2[i][j][k] = max(dp2[i - 1][j - a[i - 1]][k] + 1, dp2[i][j][k]); } if (k >= b[i - 1]) { dp2[i][j][k] = max(dp2[i - 1][j][k - b[i - 1]] + 1, dp2[i][j][k]); } wyn = max(wyn, dp2[i][j][k]); } } } return wyn; } if (n <= MAXN2 && x <= MAXX2 && y <= MAXX2) { int wyn = 0; for (int i = 1; i <= n; i ++) { for (int j = 0; j <= x; j ++) { for (int k = 0; k <= y; k ++) { dp[i][j][k] = dp[i - 1][j][k]; if (j >= a[i - 1]) { dp[i][j][k] = max(dp[i - 1][j - a[i - 1]][k] + 1, dp[i][j][k]); } if (k >= b[i - 1]) { dp[i][j][k] = max(dp[i - 1][j][k - b[i - 1]] + 1, dp[i][j][k]); } wyn = max(wyn, dp[i][j][k]); } } } return wyn; } return n; } /* int main () { cout << find_maximum_unique(7, 0, {10, 5, 2, 1, 4}, {2, 2, 2, 2, 2}); } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...