#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 time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |