This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/*
ID: samikgo1
TASK:
LANG: C++
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pll;
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
//#define f first
//#define s second
//#define x first
//#define y second
const int INF = INT32_MAX;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
// freopen("measurement.in","r",stdin);
// freopen("measurement.out","w",stdout);
ll n,m,o;
cin >> n >> m >> o;
vector<pll> offers(m);
multiset<pll> roomss;
for (int i = 0; i < n; i++) {
ll a,b;
cin >> a >> b;
roomss.emplace(b,a);
}
for(pll&i:offers)cin>>i.first>>i.second;
sort(allr(offers));
vector<ll> ans;
for (pll &i: offers) {
// i.first is rate
// i.second is requirement
auto room = roomss.lower_bound({i.second,(ll)0});
if(room==roomss.end()){ continue;}
ll a = i.first-room->second;
roomss.erase(room);
if(a>0) {ans.emplace_back(a);};
}
sort(allr(ans));
ll anss = 0;
for (ll i = 0; i < min(o,(ll)ans.size()); i++) {
anss += ans[i];
}
cout << anss;
}
# | 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... |