Submission #1321147

#TimeUsernameProblemLanguageResultExecution timeMemory
1321147nathako9nHotel (CEOI11_hot)C++20
10 / 100
659 ms51568 KiB
#include <bits/stdc++.h> #define ll long long #define endl '\n' #define f first #define s second #define tii tuple<int,int> #define time timee using namespace std; const int N = 500005; pair<ll,ll> of[N+2], rm[N+2]; multiset<pair<ll, ll>> st; int n,m,o; vector<ll> bs; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin>>n>>m>>o; ll ans = 0; for(int i=1;i<=n;i++){ ll x,y; cin>>x>>y; rm[i]={x,y}; st.insert({y, x}); } for(int i=1;i<=m;i++){ ll x,y; cin>>x>>y; of[i]={x,y}; } sort(of+1,of+m+1,greater<pair<ll,ll>>()); for(int i=1;i<=m;i++){ auto[x,y]=of[i]; auto it = st.lower_bound({y, -2000000000}); if(it != st.end()){ ll upkeep = it->second; if(x > upkeep) { bs.push_back(x - upkeep); ans+=x - upkeep; st.erase(it); } } } sort(bs.rbegin(), bs.rend()); // for(int i=0; i < (int)bs.size() && i < o; i++){ // ans += bs[i]; // } cout<<ans; return 0; } /* 3 2 2 150 2 400 3 100 2 200 1 700 3 */
#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...