关于莫名的编译失败
查看原帖
关于莫名的编译失败
323105
CLRLSP楼主2021/10/24 17:45

开了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;
}
2021/10/24 17:45
加载中...