#include "festival.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<ll,ll>
#define fs first
#define sc second
std::vector<int> max_coupons(int C, std::vector<int> p, std::vector<int> t) {
    ll c=C;
    int n=p.size();
    vector<pll> a[3];
    for(int i=0;i<n;i++)a[t[i]].push_back({p[i],i});
    sort(a[1].begin(),a[1].end());
    sort(a[2].begin(),a[2].end());
    for(int i=1;i<a[1].size();i++)a[1][i].fs+=a[1][i-1].fs;
    int bs=-1,id;
    for(ll i=0,s=C;i<=a[2].size();i++){
        if(i){
            s=min(2*(s-a[2][i-1].sc),(ll)1e15);
            if(s<0)break;
        }
        pll tt={s+1,0};
        int c=(lower_bound(a[1].begin(),a[1].end(),tt)-a[1].begin())+i;
        if(bs<c){
            id=i;
            bs=c;
        }
    }
    vector<int> ans;
    for(int i=0;i<id;i++)ans.push_back(a[2][i].sc);
    for(int i=0;i<bs-id;i++)ans.push_back(a[1][i].sc);
    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... |