#include <bits/stdc++.h>
using namespace std;
#define ld long double
#define ll long long
#define eb emplace_back
const int inf = 1e9;
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, m, o;
cin >> n >> m >> o;
vector<array<int,2>>a(n), b(m);
for(auto &i : a){
cin >> i[1] >> i[0];
}
for(auto &i : b){
cin >> i[1] >> i[0];
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
priority_queue<int>q;
vector<int>dd;
for(int i = 0, j = 0; i < n; ++i){
while(j < m && b[j][0] <= a[i][0]){
q.push(b[j][1]);
++j;
}
if(!q.empty() && q.top() > a[i][1]){
dd.push_back(q.top() - a[i][1]);
q.pop();
}
}
sort(dd.rbegin(), dd.rend());
cout << accumulate(dd.begin(), dd.begin() + min((int)dd.size(), o), 0LL) << endl;
}
# | 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... |