//#include "festival.h"
#include<bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC target("avx2")
#define ll long long
#define ld long double
#define pii pair<int,int>
#define pll pair<ll,ll>
#define plx pair<ll,int>
#define f first
#define s second
#define pb push_back
#define all(x) x.begin(),x.end()
#define vi vector<int>
#define vvi vector<vi>
#define ub(x,i) upper_bound(all(x),i)-x.begin()
#define lb(x,i) lower_bound(all(x),i)-x.begin()
#define sz(x) (ll)x.size()
#define cd complex<double>
#define t3 tuple<ll,ll,ll>
using namespace std;
const int mxn=2e5+5;
int n;
std::vector<int> max_coupons(int A, std::vector<int> P, std::vector<int> T) {
priority_queue<pll,vector<pll>,greater<pll>>qr[5];
n=P.size();priority_queue<pll,vector<pll>,greater<pll>>ql;
for(int i=0;i<n;i++)ql.push({P[i],i});
while(!ql.empty()&&ql.top().f<=A){
auto [p,t]=ql.top();ql.pop();
qr[T[t]].push({p,t});
}ll cur=A;
vector<int>ans;
while(1){
ll mem=-1,rs=0;
if(!qr[1].empty()&&qr[1].top().f<=cur){
if(rs<(cur-qr[1].top().f))rs=cur-qr[1].top().f,mem=1;
}
if(!qr[2].empty()&&qr[2].top().f<=cur){
if(rs<(cur-qr[2].top().f)*2)rs=(cur-qr[2].top().f)*2,mem=2;
}
if(!qr[3].empty()&&qr[3].top().f<=cur){
if(rs<(cur-qr[3].top().f)*3)rs=3*(cur-qr[3].top().f),mem=3;
}
if(!qr[4].empty()&&qr[4].top().f<=cur){
if(rs<(cur-qr[4].top().f)*4)rs=(cur-qr[4].top().f)*4,mem=4;
}
if(mem==-1)break;
else ans.pb(qr[mem].top().s);qr[mem].pop();cur=rs;
}
return ans;
}
/*int main(){
vector<int> x=max_coupons(9, {6,5},{2,3});
for(auto it : x)cout<<it<<" ";
}*/
# | 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... |