求助,为什么全是RE?
查看原帖
求助,为什么全是RE?
297794
翔仔123789楼主2021/10/27 17:06
//没有什么是两个巴掌不能解决的,如果有那么就再来一个巴掌
//AC数量可以拉开你我的距离,但永远改变不了无比你帅的事实  
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<string> 
#include<algorithm>

//#include<ctime>
//#include<windows.h>

using namespace std;

int f1[10001000];
int f2[10001000];

int inx[100100];
int iny[100100];

int g1[100100];
int g2[100100];

int n;

int main(){
//	freopen("airport.in","r",stdin);
//	freopen("airport.out","w",stdout);
	int m1,m2;
	int maxn=0;
	int a,b;
	int ans=0;
	int h=0;
	cin>>n>>m1>>m2;

	for(int i=1;i<=m1;i++){
		scanf("%d %d",&a,&b);
		f1[a]=i,f1[b]=0-i;
		maxn=max(maxn,b);
	}
	a=0,b=0;
	for(int i=1;i<=maxn;i++){
		if(f1[i]>0){
			a++;
			for(int j=1;j<=a;j++){
				if(g1[j]==0){
					g1[j]=f1[i];
					h=max(h,j);
					inx[j]++;
					break;
				}
			}
		}
		if(f1[i]<0){
			for(int j=1;j<=a;j++){
				if(g1[j]==0-f1[i]){
					g1[j]=0;
					break;
				}
			}
			a--;
		}
	}

	maxn=0;
	for(int i=1;i<=m2;i++){
		scanf("%d %d",&a,&b);
		f2[a]=i,f2[b]=0-i;
		maxn=max(maxn,b);
	}
	a=0,b=0;
	for(int i=1;i<=maxn;i++){
		if(f2[i]>0){
			a++;
			for(int j=1;j<=a;j++){
				if(g2[j]==0){
					g2[j]=f2[i];
					h=max(h,j);
					iny[j]++;
					break;
				}
			}
		}
		if(f2[i]<0){
			for(int j=1;j<=a;j++){
				if(g2[j]==0-f2[i]){
					g2[j]=0;
					break;
				}
			}
			a--;
		}
	}

	for(int i=1;i<=h;i++){
		iny[i]+=iny[i-1];
		inx[i]+=inx[i-1];
	}
	for(int i=0;i<=n;i++){
		int sum=inx[i]+iny[n-i];
		ans=max(ans,sum);
	}
	cout<<ans;
/*	cout<<endl;
	for(int i=0;i<m1;i++){
		cout<<inx[i]<<" ";
	}
	cout<<endl;
	for(int i=0;i<m2;i++){
		cout<<iny[i]<<" ";
	}*/
//	fclose(stdin);
//	fclose(stdout);
	return 0;
}
2021/10/27 17:06
加载中...