#include<bits/stdc++.h>
using namespace std;
struct p
{
int x,y;
}a[100001],b[100001];
int n,m1,m2,i,j,k,tmp,ans,mint=100000001,maxt;
bool bl[2][100001];
bool cmp(p a,p b)
{
return a.x<b.x;
}
int main()
{
// freopen("airport.in","r",stdin);
// freopen("airport.out","w",stdout);
cin>>n>>m1>>m2;
for(i=1;i<=m1;i++)
scanf("%d %d",&a[i].x,&a[i].y),maxt=max(maxt,a[i].y),mint=min(mint,a[i].x);
for(i=1;i<=m2;i++)
scanf("%d %d",&b[i].x,&b[i].y),maxt=max(maxt,b[i].y),mint=min(mint,b[i].x);
sort(a+1,a+m1+1,cmp);
sort(b+1,b+m2+1,cmp);
for(i=1;i<=n;i++)
{
tmp=0;
int lq[2]={i,n-i};
for(j=mint;j<=maxt;j++)
{
for(k=1;k<=m1;k++)
{
if(a[k].x==j&&lq[0])
lq[0]--,tmp++,bl[0][k]=1;
if(a[k].y==j&&bl[0][k])
lq[0]++,bl[0][k]=0;
}
for(k=1;k<=m2;k++)
{
if(a[k].x==j&&lq[1])
lq[1]--,tmp++,bl[1][k]=1;
if(a[k].y==j&&bl[1][k])
lq[1]++,bl[1][k]=0;
}
}
ans=max(ans,tmp);
}
cout<<ans;
return 0;
}
样例1 2本地跑完全没问题 就到洛谷上20个tle啥情况。。。