Wa on 1
#include<bits/stdc++.h>
#define IT set<Node>::iterator
#define ls now*2
#define rs now*2+1
using namespace std;
struct Node
{
long long c,p;
Node(long long C,long long P) : c(C),p(P) {}
bool operator < (const Node &ano) const
{
return (p==ano.p?c<ano.c:p<ano.p);
}
};
multiset<Node> s;
struct Q
{
long long v,d;
bool operator < (const Q &ano) const
{
return (v==ano.v?d<ano.d:v>ano.v);
}
} q[5000005];
int n,m,o,cnt;
long long ans[5000005],sum;
bool cmp(long long x,long long y)
{
return x>y;
}
int main()
{
cin>>n>>m>>o;
for(int i=1;i<=n;i++)
{
long long c,p;
cin>>c>>p;
s.insert(Node(c,p));
}
for(int i=1;i<=m;i++)
{
cin>>q[i].v>>q[i].d;
}
sort(q+1,q+m+1);
for(int i=1;i<=n;i++)
{
// cout<<q[i].v<<" "<<q[i].d<<"\n";
IT it=s.lower_bound(Node(-1,q[i].d));
if(it==s.end() || q[i].v<=it->c)
{
continue;
}
ans[++cnt]=q[i].v-it->c;
s.erase(it);
}
sort(ans+1,ans+cnt+1,cmp);
for(int i=1;i<=min(cnt,o);i++)
{
// cout<<ans[i]<<"\n";
sum+=ans[i];
}
cout<<sum;
return 0;
}