#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].fs),(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... |