开了c++14后就编译错误
#include<bits/stdc++.h>
#define Max(x,y) (x>y? x:y)
using namespace std;
const int ma=3e5+100;
int n,m1,m2;
struct rec{
int be;
int ed;
int vis=0;
bool operator < (const rec &y)const {return be<y.be;}
}a[ma],b[ma];
struct node{
int cnt=0;
int id=214748364;
bool operator < (const node &b) const {return id<b.id;};
}p1[ma],p2[ma];
int s1[ma],s2[ma];
int ans=0;
int main(){
// freopen("airport.in","r",stdin);
// freopen("airport.out","w",stdout);
scanf("%d %d %d",&n,&m1,&m2);
for(int i=1;i<=m1;i++)scanf("%d %d",&a[i].be,&a[i].ed);
for(int i=1;i<=m2;i++)scanf("%d %d",&b[i].be,&b[i].ed);
sort(a+1,a+m1+1);
sort(b+1,b+m2+1);
for(int i=1;i<=n;i++){
int now=0,j=0;
while(j<=m1){
int l=j,r=m1;
while(l<=r){
int mid=(l+r)>>1;
if(a[mid].be>now ){
j=mid;
r=mid-1;
}
else l=mid+1;
}
for(;j<=m1;j++)
if(a[j].be>now && (!a[j].vis)){
if(now==0) p1[i].id=a[j].be;
now=a[j].ed;
a[j].vis=1;
p1[i].cnt++;
}
}
now=0;
j=1;
while(j<=m2){
int l=j,r=m2;
while(l<=r){
int mid=(l+r)>>1;
if(b[mid].be>now){
j=mid;
r=mid-1;
}
else l=mid+1;
}
for(;j<=m2;j++)
if(b[j].be>now && (!b[j].vis)){
if(now==0) p2[i].id=b[j].be;
now=b[j].ed;
b[j].vis=1;
p2[i].cnt++;
}
}
}
sort(p1+1,p1+n+1);
sort(p2+1,p2+n+1);
for(int i=1;i<=n;i++){
s1[i]=s1[i-1]+p1[i].cnt;
s2[i]=s2[i-1]+p2[i].cnt;
}
for(int i=0;i<=n;i++){
ans=Max(ans,s1[i]+s2[n-i]);
}
cout<<ans;
}