Submission #546326

#TimeUsernameProblemLanguageResultExecution timeMemory
546326blueHotel (CEOI11_hot)C++17
20 / 100
598 ms39428 KiB
#include <iostream> #include <vector> #include <set> #include <algorithm> using namespace std; using ll = long long; using vll = vector<ll>; using pll = pair<ll, ll>; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, m, o; cin >> n >> m >> o; multiset<pll> rooms; //(capacity, upkeep) for(int i = 1; i <= n; i++) { ll c, p; cin >> c >> p; rooms.insert({p, c}); } vector<pll> offers(m); //(capacity requirement = first, gain = second) for(int j = 0; j < m; j++) { cin >> offers[j].second >> offers[j].first; } sort(offers.begin(), offers.end(), [] (pll U, pll V) { return U.second > V.second; }); ll res = 0; int accepted = 0; for(pll z : offers) { if(accepted == o) break; ll capreq = z.first; ll gain = z.second; auto f = rooms.lower_bound({capreq, -1}); if(f == rooms.end()) continue; if(gain > f->second) { res += gain - f->second; accepted++; } rooms.erase(f); } cout << res << '\n'; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...