Submission #597186

#TimeUsernameProblemLanguageResultExecution timeMemory
597186Trisanu_DasHotel (CEOI11_hot)C++17
0 / 100
1209 ms56244 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long int
 
signed main(){
  int n, m, o; cin >> n >> m >> o;
  multiset<pair<int, int> > rooms;
  for(int i = 0; i < n; i++){
    int c, p; cin >> c >> p; rooms.insert({c, p});
  }
  pair<int, int> requests[m];
  for(int i = 0; i < m; i++) cin >> requests[i].first >> requests[i].second;
 sort(requests, requests + m, [] (pair<int, int> i, pair<int, int> j)
	{
		return i.second > j.second;
	});
  
  int ans = 0;
  vector<int> choosed;
  
  for(pair<int, int> p : requests){
    int req = p.first, price = p.second;
    auto choice = rooms.lower_bound({req, -1});
    if(choice == rooms.end()) continue;
    if(price > choice->second) choosed.push_back(price - choice->second);
  }
  sort(choosed.begin(), choosed.end(), greater<int>());
  for(int i = 0; i < o; i++) ans += choosed[i];
  cout << ans << '\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...