40分程序模拟
查看原帖
40分程序模拟
461167
liuyukang楼主2021/10/24 09:31
#include<bits/stdc++.h>
using namespace std;
int n,m1,m2,p,q,s,ans,v,c[100005];
struct z{
	int a1,a2;
}a[100005];
struct t{
	int b1,b2;
}b[100005];
int x(z h,z l){
	return h.a1<l.a1||h.a1==l.a1&&h.a2<l.a2;
}
int y(t h,t l){
	return h.b1<l.b1||h.b1==l.b1&&h.b2<l.b2;
}
int main(){
	//freopen("airport.in","r",stdin);
	//freopen("airport.out","w",stdout);
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++)
	scanf("%d%d",&a[i].a1,&a[i].a2);
	for(int i=1;i<=m2;i++)
	scanf("%d%d",&b[i].b1,&b[i].b2);
	sort(a+1,a+m1+1,x);
	sort(b+1,b+m2+1,y);
	for(int i=0;i<=n;i++)
	{
		p=i,q=n-i;
		s=0;
		for(int j=1;j<=v;j++)c[j]=0;
		v=0;
		for(int j=1;j<=m1;j++)
		{
			for(int k=1;k<=v;k++)
			if(c[k]>0&&a[c[k]].a2<=a[j].a1)
			c[k]=0,p++;
			if(p>0)s++,p--,c[++v]=j;
		}
		for(int j=1;j<=v;j++)c[j]=0;
		v=0;
		for(int j=1;j<=m2;j++)
		{
			for(int k=1;k<=v;k++)
			if(c[k]>0&&b[c[k]].b2<=b[j].b1)
			c[k]=0,q++;
			if(q>0)s++,q--,c[++v]=j;
		}
		ans=max(s,ans);
	}
	cout<<ans;
	return 0;
}
2021/10/24 09:31
加载中...