제출 #321844

#제출 시각아이디문제언어결과실행 시간메모리
321844PetyJelly Flavours (IOI20_jelly)C++14
0 / 100
29 ms8812 KiB
#include <bits/stdc++.h> #include "jelly.h" using namespace std; int n, m, dp[1002][1002], dp2[1002][1002], mn[1002]; struct meh { int a, b, i; } obj[1002]; bool cmp (meh a, meh b) { return a.a < b.a; } int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) { int n = a.size(); int ans = 0; for (int i = 0; i < n; i++) obj[i + 1] = {a[i], b[i], i}; sort(obj + 1, obj + n + 1, cmp); for (int i = 1; i <= n; i++) { mn[i] = 2e9; for (int j = 0; j <= x;j++) { dp[i][j] = dp[i - 1][j] + obj[i].b; if (j >= obj[i].a) dp[i][j] = min(dp[i][j], dp[i - 1][j - obj[i].a]); mn[i] = min(mn[i], dp[i][j]); } } for (int i = n; i >= 1; i--) for (int j = obj[i].b; j <= y; j++) dp2[i][j] = min(dp2[i + 1][j], dp2[i][j - obj[i].b] + 1); for (int i = 0; i <= n; i++) { int cst = y - mn[i]; if (cst > 0) ans = max(ans, i + dp2[i + 1][cst]); } return ans; }
#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...