rt
第一个点woderful answer
不理解
#include<bits/stdc++.h>
using namespace std;
const int N=500009;
set<pair<int,int> > a,b;
pair<int,int> t;
int sa[N],sb[N];
int n,m1,m2;
int a_(){
int res=0,now=0;
while(1){
auto t=a.lower_bound(make_pair(now,now));
if(t==a.end()) break;
res++;
now=t->second;
a.erase(t);
}
return res;
}
int b_(){
int res=0,now=0;
while(1){
auto t=b.lower_bound(make_pair(now,now));
if(t==b.end()) break;
now=t->second;
res++;
b.erase(t);
}
return res;
}
int main(){
// freopen("1.in","r",stdin);
scanf("%d%d%d",&n,&m1,&m2);
for(int i=1;i<=m1;i++){
scanf("%d%d",&t.first,&t.second);
a.insert(t);
}
for(int i=1;i<=m2;i++){
scanf("%d%d",&t.first,&t.second);
b.insert(t);
}
for(int i=1;i<=n;i++){
sa[i]=sa[i-1]+a_();
}
for(int i=1;i<=n;i++){
sb[i]=sb[i-1]+b_();
}
int ans=-1e9;
for(int i=1;i<=n;i++){
ans=max(ans,sa[i]+sb[n-i]);
}
cout<<ans<<endl;
return 0;
}