#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> max_coupons(int A, vector<int> p, vector<int> t) {
int n = int(p.size());
vector<vector<int>> at(5);
vector<int> c(5);
for (int i = 0; i < n; i++) {
at[t[i]].push_back(i);
c[t[i]] += 1;
}
for (int i = 1; i <= 4; i++) {
sort(at[i].begin(), at[i].end(), [&](int x, int y) {
return p[x] < p[y];
});
}
auto Check = [&](vector<int> ids) {
int64_t cur = A;
for (int i : ids) {
cur = min(cur, int64_t(1e17));
if (cur < p[i]) {
return false;
}
cur = (cur - p[i]) * t[i];
}
return true;
};
vector<int> res;
for (int i1 = 0; i1 <= c[1]; i1++) {
for (int i2 = 0; i2 <= c[2]; i2++) {
for (int i3 = 0; i3 <= c[3]; i3++) {
for (int i4 = 0; i4 <= c[4]; i4++) {
vector<int> ids;
for (int i = 0; i < i4; i++) {
ids.push_back(at[4][i]);
}
for (int i = 0; i < i3; i++) {
ids.push_back(at[3][i]);
}
for (int i = 0; i < i2; i++) {
ids.push_back(at[2][i]);
}
for (int i = 0; i < i1; i++) {
ids.push_back(at[1][i]);
}
if (Check(ids) && int(ids.size()) > int(res.size())) {
res = ids;
}
}
}
}
}
return res;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |