제출 #991926

#제출 시각아이디문제언어결과실행 시간메모리
991926toast12Gym Badges (NOI22_gymbadges)C++14
100 / 100
337 ms22212 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long bool compare(pair<ll, ll> a, pair<ll, ll> b) { return a.first+a.second < b.first+b.second; } int main() { int n; cin >> n; vector<pair<ll, ll>> gyms(n); for (int i = 0; i < n; i++) { cin >> gyms[i].first; } for (int i = 0; i < n; i++) { cin >> gyms[i].second; } sort(gyms.begin(), gyms.end(), compare); ll level = 0; ll ans = 0; priority_queue<ll> pq; for (int i = 0; i < n; i++) { if (level <= gyms[i].second) { //cout << i << ' ' << level << ' ' << gyms[i].first << '\n'; level += gyms[i].first; pq.push(gyms[i].first); ans++; } else { ll x = pq.top(); pq.pop(); if (level-x <= gyms[i].second && gyms[i].first < x) { pq.push(gyms[i].first); level -= x; level += gyms[i].first; } else { pq.push(x); } } } cout << ans << '\n'; 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...