제출 #1321147

#제출 시각아이디문제언어결과실행 시간메모리
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...