제출 #1322232

#제출 시각아이디문제언어결과실행 시간메모리
1322232Trisanu_DasFestival (IOI25_festival)C++20
0 / 100
51 ms7456 KiB
#include "festival.h" #include <bits/stdc++.h> using namespace std; vector<int> max_coupons(int A, vector<int> P, vector<int> T){ int sum = 0, n = P.size(); vector<pair<int, int> > c[3]; for(int i = 0; i < n; i++){ sum += P[i]; c[T[i]].push_back({P[i], i}); } for(auto &x : c) sort(x.begin(), x.end()); vector<int> pref_1 = {0}; for(auto x : c[1]) pref_1.push_back(pref_1.back() + x.first); int rem = A; pair<int, int> best = {upper_bound(pref_1.begin(), pref_1.end(), rem) - pref_1.begin() - 1, 0}; for(int i = 0; i < c[2].size(); i++){ rem = (rem - c[2][i].first) * 2; if(rem < 0) break; best = max(best, {i + 1 + upper_bound(pref_1.begin(), pref_1.end(), rem) - pref_1.begin() - 1, i + 1}); } vector<int> R; for(int i = 0; i < best.second; i++) R.push_back(c[2][i].second); while (R.size() < best.first) R.push_back(c[1][R.size() - best.second].second); return R; }
#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...