Submission #315911

#TimeUsernameProblemLanguageResultExecution timeMemory
315911dangtiendung1201Jelly Flavours (IOI20_jelly)C++14
24 / 100
170 ms156408 KiB
#include <bits/stdc++.h> #define debug(x) cerr << #x << " = " << x << endl; #define task "" using namespace std; int fdp[2001][10001], bdp[2001][10001], ans; pair<int, int> c[2001]; int n; int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) { n = a.size(); for (int i=0; i<n; i++) c[i] = make_pair(a[i], b[i]); sort(c, c+n); for (int i=1; i<=n; i++) { for (int j=0; j<=x; j++) { fdp[i][j] = fdp[i-1][j]+c[i-1].second; if(j >= c[i-1].first) { fdp[i][j] = min(fdp[i][j], fdp[i-1][j-c[i-1].first]); } } } for(int i=n-1; i>=0; i--) { for (int j=0; j<y; j++) { bdp[i][j] = bdp[i+1][j]; if(j >= c[i].second) { bdp[i][j] = max(bdp[i][j], bdp[i+1][j-c[i].second]+1); } } } for (int i=0; i<=n; i++) { int yleft = y-fdp[i][x]; if(yleft >= 0) ans = max(ans, i+bdp[i][yleft]); } 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...