#include <bits/stdc++.h>
using namespace std;
struct te {
int p, poz;
};
vector<te> p[5];
int c[5];
long long a;
vector<int> r;
vector<int> max_coupons(int A, vector<int> P,
vector<int> T) {
r.clear();
for(int i =0; i < 5; ++i) {
p[i].clear();
c[i] = 0;
}
for(int i = 0; i < P.size(); ++i) {
te st;
st.p = P[i];
st.poz = i;
p[T[i]].push_back(st);
}
for(int i = 1; i <= 4; ++i) {
sort(p[i].begin(), p[i].end(), [](const te& a, const te& b) {
return a.p < b.p; // otherwise compare by x
});
}
a = A;
while(1) {
long long maxN = 0;
int rezz = 0, nr = 0;
for(int i = 4; i >= 0; --i) {
if(c[i] < p[i].size() && a >= p[i][c[i]].p && ((a - p[i][c[i]].p)*i) > maxN) {
rezz = p[i][c[i]].poz;
maxN = (a - p[i][c[i]].p) * i;
nr = i;
}
}
c[nr]++;
r.push_back(rezz);
if(r.size() == P.size())
break;
}
return r;
}
| # | 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... |