This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "jelly.h"
using namespace std;
const int INF = 1e9;
int dp2[2005][10005];
int minim[10005];
int find_maximum_unique(int x, int y, vector <int> a, vector <int> b) {
int n = a.size();
// subtaskul 5
vector <pair<int,int>> c;
for (int i = 0; i < n; i++)
c.push_back({a[i], i});
sort(c.begin(), c.end());
vector <int> aNew, bNew;
for (int i = 0; i < n; i++)
aNew.push_back(a[c[i].second]),
bNew.push_back(b[c[i].second]);
a = aNew, b = bNew;
for (int i = 1; i <= n; i++) {
for (int xx = 0; xx <= x; xx++) {
// iau primele i, consum xx in A; cat consum minim in B?
dp2[i][xx] = INF;
if (xx >= a[i - 1])
dp2[i][xx] = min(dp2[i][xx], dp2[i - 1][xx - a[i - 1]]);
dp2[i][xx] = min(dp2[i][xx], dp2[i - 1][xx] + b[i - 1]);
}
}
minim[0] = 0;
for (int i = 1; i <= n; i++) {
// minim[i] = min(dp[i][<=x])
minim[i] = dp2[i][0];
for (int xx = 0; xx <= x; xx++)
minim[i] = min(minim[i], dp2[i][xx]);
}
int ret = 0;
for (int pref = 0; pref <= n; pref++) {
if (minim[pref] == INF)
continue;
int ramane = y - minim[pref];
if (ramane < 0)
continue;
vector <int> rest;
for (int i = pref; i < n; i++)
rest.push_back(b[i]);
sort(rest.begin(), rest.end());
int retAici = pref, curr = 0;
while (curr < rest.size() && ramane - rest[curr] >= 0) {
ramane -= rest[curr];
retAici++;
curr++;
}
ret = max(ret, retAici);
}
return ret;
}
Compilation message (stderr)
jelly.cpp: In function 'int find_maximum_unique(int, int, std::vector<int>, std::vector<int>)':
jelly.cpp:58:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
58 | while (curr < rest.size() && ramane - rest[curr] >= 0) {
| ~~~~~^~~~~~~~~~~~~
# | 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... |