제출 #1174521

#제출 시각아이디문제언어결과실행 시간메모리
1174521khangrlGym Badges (NOI22_gymbadges)C++20
0 / 100
299 ms6484 KiB
#include <iostream> #include <vector> #include <algorithm> #include <queue> using namespace std; struct Gym { int levelCap; int levelGain; }; // Comparator for sorting gyms by level cap bool compareGyms(const Gym &a, const Gym &b) { return a.levelCap < b.levelCap; } int maxBadges(vector<Gym> &gyms) { sort(gyms.begin(), gyms.end(), compareGyms); // Sort gyms by level cap priority_queue<int> pq; // Max-heap to store level gains int currentLevel = 0, badgeCount = 0, i = 0, n = gyms.size(); while (i < n || !pq.empty()) { // Add all gyms that are available to challenge while (i < n && gyms[i].levelCap >= currentLevel) { pq.push(gyms[i].levelGain); i++; } // If no gym can be challenged, break if (pq.empty()) break; // Challenge the gym with the highest level gain currentLevel += pq.top(); pq.pop(); badgeCount++; } return badgeCount; } int main() { int N; cin >> N; vector<Gym> gyms(N); for (int i = 0; i < N; i++) { cin >> gyms[i].levelCap >> gyms[i].levelGain; } cout << maxBadges(gyms) << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...