为什么全RE啊……(崩溃)
查看原帖
为什么全RE啊……(崩溃)
309320
懵逼小蒟蒻楼主2021/10/26 22:06

考场原码(只是把文件操作给注释了)(本地测题目中大数据和自己造的大数据答案都是正确的?):

//21!9-324@emb
//什么阴间题目( 
#include<iostream>
#include<cstdio>
#include<algorithm> 
using namespace std;
int n,m1,m2,k1=1,k2=1,ans = 0;
struct ljsybs{
	int s,e;int flag;
};
ljsybs a[100005],b[100005];
int aas[100005]={},bbs[100005]={};
bool cmp(ljsybs aa,ljsybs bb){
	return aa.s<bb.s;
}
int bsta(int aa){
	int l = 1,r = m1;int mid;
	while(l!=r){
		mid = (l+r)/2;
		if(aa<=a[mid].s)r = mid;
		else l = mid+1;
	}
	while(a[l].s<=aa||!a[l].flag)l++;
	return l;
}
int bstb(int aa){
	int l = 1,r = m1;int mid;
	while(l!=r){
		mid = (l+r)/2;
		if(aa<=b[mid].s)r = mid;
		else l = mid+1;
	}
	while(b[l].s<=aa||!b[l].flag)l++;
	return l;
}
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].s,&a[i].e);a[i].flag = 1;
	}
	for(int i = 1;i<=m2;i++){
		scanf("%d%d",&b[i].s,&b[i].e);b[i].flag = 1;
	}
	sort(a+1,a+m1+1,cmp);sort(b+1,b+m2+1,cmp);
	int now=1,nnw=1;
	while(now<=m1){
		nnw=now;
		while(nnw<=m1){
			aas[k1]++;
			a[nnw].flag = 0;
			nnw = bsta(a[nnw].e);
		}
		while(!a[now].flag)now++;
		aas[k1]+=aas[k1-1];
		k1++;
	}
	now=1,nnw=1;
	while(now<=m2){
		nnw=now;
		while(nnw<=m2){
			bbs[k2]++;
			b[nnw].flag = 0;
			nnw = bstb(b[nnw].e);
		}
		while(!b[now].flag)now++;
		bbs[k2]+=bbs[k2-1];
		k2++;
	}
	for(int i = 0;i<=min(k1,n);i++){
		if(ans<aas[i]+bbs[min(n-i,k2)]){
			ans = aas[i]+bbs[min(n-i,k2)];
		}
	}
	printf("%d",ans);
// 	fclose(stdin);
// 	fclose(stdout) ;
	return 0;
}
/*
3 5 4
1 5
3 8
6 10
9 14
13 18
2 11
4 15
7 17
12 16
*/
/*
 2 4 6  20 30  40 50  21 22
 41 42  1 19  2 18  3 4  5 6  7 8  9 10
 */
2021/10/26 22:06
加载中...