#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
#define pii pair < long , long >
#define eb emplace_back
#define pb push_back
#define ll long long
#define fi first
#define se second
const ll inf = 1e18;
vector<int> max_coupons(int aaa, vector<int> p, vector<int> t) {
vector<vector<pii>> v(3);
ll a = aaa;
for(int i = 0;i < p.size();i++) {
v[t[i]].eb(p[i], i);
}
sort(v[1].begin(), v[1].end());
sort(v[2].begin(), v[2].end());
vector<ll> pref(v[1].size());
for(int i = 0;i < v[1].size();i++) {
pref[i] = v[1][i].fi;
if(i > 0) pref[i] += pref[i-1];
}
int ub = upper_bound(pref.begin(), pref.end(), a) - pref.begin();
int mx = ub, f = ub, s = 0;
for(int i = 0;i < v[2].size();i++) {
if(a < v[2][i].fi) break;
a -= v[2][i].fi;
a *= 2;
if(a < 0) break;
ub = upper_bound(pref.begin(), pref.end(), a) - pref.begin();
if(ub + i + 1 > mx) {
mx = ub + i + 1;
f = ub;
s = i+1;
}
}
vector<int> ans;
for(int i = 0;i < s;i++) ans.eb(v[2][i].se);
for(int i = 0;i < f;i++) ans.eb(v[1][i].se);
return ans;
}
# | 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... |