#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int n,m1,m2;
struct Stu{
int da,li;
}a[N],b[N];
struct{
int li,ch;
}aa[N],bb[N];
bool cmp(Stu x,Stu y){
return x.da<y.da;
}
int sum1=0,sum2=0;//需要几个廊桥
int main()
{
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++) cin>>a[i].da>>a[i].li;
for(int i=1;i<=m2;i++) cin>>b[i].da>>b[i].li;
sort(a+1,a+m1+1,cmp);
sort(b+1,b+m2+1,cmp);
aa[1].li=a[1].li;
aa[1].ch=1;
sum1=1;
for(int i=2;i<=m1;i++){
int flag=1;
for(int j=1;j<=sum1;j++)
if(aa[j].li<=a[i].da){
aa[j].li=a[i].li;
flag=0;
aa[j].ch++;
break;
}
if(flag){
aa[++sum1].ch=1;
aa[sum1].li=a[i].li;
}
}
bb[1].li=b[1].li;
bb[1].ch=1;
sum2=1;
for(int i=2;i<=m2;i++){
int flag=1;
for(int j=1;j<=sum2;j++)
if(bb[j].li<=b[i].da){
bb[j].li=b[i].li;
flag=0;
bb[j].ch++;
break;
}
if(flag){
bb[++sum2].ch=1;
bb[sum2].li=b[i].li;
}
}
int ans=0;
for(int i=1;i<=n;i++)
{
aa[i].ch+=aa[i-1].ch;
bb[i].ch+=bb[i-1].ch;
ans=max(ans,aa[i].ch+bb[n-i].ch);
}
ans=max(ans,aa[n].ch);
ans=max(ans,bb[n].ch);
cout<<ans;
}
直接模拟的,#5,7,11,16,17,19都WA了。实在不会了,求大佬帮调!