Submission #1310338

#TimeUsernameProblemLanguageResultExecution timeMemory
1310338beluga_cat축제 (IOI25_festival)C++20
0 / 100
72 ms10292 KiB
#include <bits/stdc++.h> using namespace std; vector<int> max_coupons(int A, vector<int> P, vector<int> T) { int N = P.size(); // Store coupons as (price, type, index) vector<tuple<int, int, int>> coupons; for (int i = 0; i < N; i++) { coupons.emplace_back(P[i], T[i], i); } // Sort by price sort(coupons.begin(), coupons.end()); // Max-heap: prioritize larger T, then smaller P priority_queue<tuple<int, int, int>> pq; long long tokens = A; int idx = 0; vector<int> result; while (true) { // Push all affordable coupons while (idx < N && get<0>(coupons[idx]) <= tokens) { auto [p, t, i] = coupons[idx]; pq.emplace(t, -p, i); // max T, min P idx++; } if (pq.empty()) break; // Pick best coupon auto [t, neg_p, i] = pq.top(); pq.pop(); int p = -neg_p; tokens = (tokens - p) * t; result.push_back(i); } return result; }
#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...