제출 #1284508

#제출 시각아이디문제언어결과실행 시간메모리
1284508Luvidi축제 (IOI25_festival)C++20
24 / 100
55 ms9644 KiB
#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 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...