Submission #1264999

#TimeUsernameProblemLanguageResultExecution timeMemory
1264999imarnFestival (IOI25_festival)C++20
5 / 100
85 ms12716 KiB
//#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...