제출 #727511

#제출 시각아이디문제언어결과실행 시간메모리
727511beaconmcHotel (CEOI11_hot)C++14
100 / 100
2011 ms101832 KiB
#include <bits/stdc++.h> typedef long long ll; using namespace std; #define FOR(i, x, y) for(ll i=x; i<y; i++) #define FORNEG(i, x, y) for(ll i=x; i>y; i--) #define fast() ios_base::sync_with_stdio(false);cin.tie(NULL) //{capacity, cost} vector<vector<ll>> stuff; vector<ll> profit; multiset<vector<ll>> idk; int main(){ ll n,m,o; cin >> n >> m >> o; FOR(i,0,n){ ll a,b; cin >> a >> b; idk.insert({b,a}); } FOR(i,0,m){ ll a,b; cin >> a >> b; stuff.push_back({a,b}); } sort(stuff.begin(), stuff.end()); reverse(stuff.begin(), stuff.end()); vector<ll> profits; for (auto&i : stuff){ if (idk.size()){ auto it = idk.upper_bound({i[1], 0}); if (it == idk.end()) continue; ll sus = (*idk.upper_bound({i[1], 0}))[1]; profits.push_back(i[0] - sus); idk.erase(idk.upper_bound({i[1], 0})); } } sort(profits.begin(), profits.end()); reverse(profits.begin(), profits.end()); ll ans = 0; FOR(i,0,min((ll)o, (ll) profits.size())){ ans += max((ll) 0, (ll) profits[i]); } cout << ans; }
#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...