#include<bits/stdc++.h>
using namespace std;
#define fr(ii,ss,tt) for(int ii=ss;ii<=tt;ii++)
#define rf(ii,ss,tt) for(int ii=ss;ii>=tt;ii--)
#define pii pair<int,int>
#define pt printf
#define x first
#define y second
#define all(a) begin(a),end(a)
#define nn(a) a+1,a+n+1
#define pb push_back
#define eb emplace_back
#define siz(x) ((int)size(x))
#ifdef UFILE
#define file(f1,f2) (f1!=""&&freopen(f1,"r",stdin),f2!=""&&freopen(f2,"w",stdout))
#else
#define file(...) 0
#endif
typedef long long LL;
typedef double RL;
//typedef __int128 Int;
template<typename T>bool tomax(T&x,const T&y){if(x<y)return x=y,true;return false;}
template<typename T>bool tomin(T&x,const T&y){if(x>y)return x=y,true;return false;}
inline void rd(auto&x,auto&...y){char ch;bool f=0;while(!isdigit(ch=getchar()))if(ch=='-')f=1;x=0;do{x=(x<<1)+(x<<3)+(ch^48);}while(isdigit(ch=getchar()));if(f)x=-x;if constexpr(sizeof...(y))rd(y...);}
inline void wt(auto&&x,auto&&...y){cout<<x;if constexpr(sizeof...(y))cout<<' ',wt(y...);}
const int N=1e6+33;
#define int long long
int n,m,k;
struct{int c,p;}a[N];
struct{int v,d;}b[N];
int f[N];
int find(int x){return x==f[x]?x:f[x]=find(f[x]);}
signed main(){
rd(n,m,k);
iota(f+1,f+n+2,1);
fr(i,1,n){
rd(a[i].c,a[i].p);
}
fr(i,1,m){
rd(b[i].v,b[i].d);
}
sort(a+1,a+n+1,[](auto x,auto y){return x.c<y.c;});
sort(b+1,b+m+1,[](auto x,auto y){return x.v>y.v;});
multiset<int>st;
fr(j,1,m){
int i=lower_bound(a+1,a+n+1,b[j].d,[](auto x,int v){return x.p<v;})-a;
assert(a[i].p>=b[j].d);
i=find(i);
if(i<=n){
st.insert(b[j].v-a[i].c);
f[i]=i+1;
}
}
LL ans=0;
while(k--){
int u=*st.rbegin();
if(u<0)break;
st.erase(st.find(u));
ans+=u;
}
wt(ans);
return 0;
}
# | 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... |