#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[5];
    for(int i=0;i<n;i++)a[t[i]].push_back({p[i],i});
    for(int j=1;j<=4;j++)sort(a[j].begin(),a[j].end());
    int id[]={0,0,0,0,0};
    vector<int> ans;
    while(1){
        ll mx=-1,x;
        for(ll i=1;i<=4;i++)if(id[i]<a[i].size()){
            ll s=i*(c-a[i][id[i]].fs);
            if(s>mx){
                mx=s;
                x=i;
            }
        }
        if(mx==-1)break;
        c=x*(c-a[x][id[x]].fs);
        ans.push_back(a[x][id[x]++].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... |