样例全过,但0了,求大佬改改
查看原帖
样例全过,但0了,求大佬改改
362254
lxm12345楼主2021/10/26 23:03
#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int n,m1,m2,sta1,sta2,num1,num2,ans;
int sum[100005];
struct node{
	int begin;
	int end;
}a[100005],b[100005];
bool cmp(node x,node y){
	if(x.begin>y.begin) return x.begin<y.begin;
}
int main()
{
	//freopen("airport.in","r",stdin);
	//freopen("airport.out","w",stdout);
	cin>>n>>m1>>m2;
	for(int i=1;i<=m1;i++)cin>>a[i].begin>>a[i].end;
	for(int i=1;i<=m2;i++)cin>>b[i].begin>>b[i].end;
	sort(a+1,a+m1+1,cmp);
	sort(b+1,b+m2+1,cmp);
	//for(int i=1;i<=m1;i++)cout<<a[i].begin<<" "<<a[i].end<<endl;
	for(int i=0;i<=n;i++)
	{
		memset(sum,0,sizeof(sum));
		num1=0,num2=0;
		sta1=0+i;
		sta2=n-i;
		for(int j=1;j<=m1;j++)
		{
			for(int k=sta1;k>=1;k--)
			{
				if(a[j].begin>=sum[k])
				{
					num1++;
					sum[k]=a[j].end;
					break;
				}
			}
		} 
		memset(sum,0,sizeof(sum));
		for(int j=1;j<=m2;j++)
		{
			for(int k=sta2;k>=1;k--)
			{
				if(b[j].begin>=sum[k])
				{
					num2++;
					sum[k]=b[j].end;
					break;
				}
			}
		} 
		//cout<<num1<<" "<<num2<<" "<<i<<endl;
		ans=max(ans,num1+num2);
	}
	cout<<ans<<" ";
	return 0;
}
/*
4 3 5
2 34
43 78
3 4
11 22
21 22
24 90
1 3
25

*/
2021/10/26 23:03
加载中...