蒟蒻求教QAQ
查看原帖
蒟蒻求教QAQ
501199
2194555k楼主2021/10/28 20:11
#include<cstdio>
#include<string>
#include<cstdlib>
#include<iostream>
#include<cmath>
#include<vector>
#include<cstring>
#include<queue>
#include<utility>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
#define PII pair<int,int> 
int main()
{
	//freopen("1.in","r",stdin);
	//freopen("1.out","w",stdout);

	int n,inn,outn;
	cin>>n>>inn>>outn;
	priority_queue< PII,vector<PII>,greater<PII> >ii,oo;
	for(int i=0;i<inn;i++)
	{
		PII i1;
		cin>>i1.first>>i1.second;
		ii.push(i1);
	}
	for(int i=0;i<outn;i++)
	{
		PII i2;
		cin>>i2.first>>i2.second;
		oo.push(i2);
	}
	priority_queue< PII,vector<PII>,greater<PII> > pq1;
	PII tt;
	tt.first=0;
	tt.second=1;
	pq1.push(tt);
	int inx[100000]={0},s1=1;
	while(ii.size())
	{
		if(ii.top().first>pq1.top().first)
		{
			PII t1;
			t1.first=ii.top().second;
			t1.second=pq1.top().second;
			pq1.pop();
			pq1.push(t1);
			inx[t1.second]++;
			ii.pop();
		}
		else
		{
			s1++;
			PII t2;
			t2.first=ii.top().second;
			t2.second=s1;
			pq1.push(t2);
			inx[t2.second]++;
			ii.pop();
		}
	}
	priority_queue< PII,vector<PII>,greater<PII> > pq2;
	pq2.push(tt);
	int outx[100000]={0},s2=1;
	for(int i=0;i<outn;i++)
	{
		if(oo.top().first>pq2.top().first)
		{
			PII t1;
			t1.first=oo.top().second;
			t1.second=pq2.top().second;
			pq2.pop();
			pq2.push(t1);
			outx[t1.second]++;
			oo.pop();
		}
		else
		{
			s2++;
			PII t2;
			t2.first=oo.top().second;
			t2.second=s2;
			pq2.push(t2);
			outx[t2.second]++;
			oo.pop();
		}
	}
	for(int i=1;i<=n;i++)
		inx[i]+=inx[i-1];
	for(int i=1;i<=n;i++)
		outx[i]+=outx[i-1];
	int maxx=-1;
	for(int i=0;i<=n;i++)
		if(inx[i]+outx[n-i]>maxx)
			maxx=inx[i]+outx[n-i];
	cout<<maxx;
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

蒟蒻在线求教TAT

2021/10/28 20:11
加载中...