离谱的是下载了数据测试是对的
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y;
}a[100005],b[100005];
int n,m1,m2;
int qz1[100005],qz2[100005];
bool cmp(node a,node b){
return a.x<b.x;
}
int lqfp(node* t,int m,int* qz){
priority_queue<pair<int,int> ,vector<pair<int,int> >,greater<pair<int,int> > >lll;
priority_queue<int,vector<int>,greater<int> >free;
for(int i=1;i<=n;i++) free.push(i);
for(int i=1;i<=m;i++){
while(!lll.empty() && t[i].x>=lll.top().first) {
free.push(lll.top().second);
lll.pop();
}
if(!free.empty()){
int dest = free.top();
free.pop();
qz[dest]++;
lll.push(make_pair(t[i].y, dest));
}
}
for(int i=1;i<=n;i++) qz[i]+=qz[i-1];
}
int main(){
cin>>n>>m1>>m2;
for(int i=1;i<=m1;i++){
cin>>a[i].x>>a[i].y;
}
for(int i=1;i<=m2;i++){
cin>>b[i].x>>b[i].y;
}
sort(a+1,a+m1+1,cmp);
sort(b+1,b+m2+1,cmp);
lqfp(a,m1,qz1);
lqfp(b,m2,qz2);
int ans=0;
for(int i=0;i<=n;i++) ans=max(ans,qz1[i]+qz2[n-i]);
cout<<ans<<" ";
return 0;
}