9102022-01-27 17:22:54Babják PéterÜgyeletcpp11Accepted 40/408ms8328 KiB
#include<bits/stdc++.h>
#define MAXN 100001
#define IO ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define pi array<int,2>
using namespace std;
int n,m,A,B,a,b,stop;
bool us[MAXN];
vector<array<int,2> >tme[MAXN];
vector<int>ansa,ansb;
	
priority_queue< pi,vector<pi> >Av,Bv;
int main()
{
	IO;
	cin>>m>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a>>b;
		tme[a].push_back({b,i});
	}
	A=2;B=2;
	for(int i=0;i<tme[1].size();i++)
	{
		Av.push(tme[1][i]);
		Bv.push(tme[1][i]);
	}
	
	while(!(stop==2))
	{
		if(A<B)
		{
			array<int,2> q;
			if(Av.empty()==0) q=Av.top();
			while(Av.empty()==0 && us[q[1]]==1)
			{
				Av.pop();
				if(Av.empty()==0)q=Av.top();
			}
			if(Av.empty())
			{
				cout<<0<<endl;
				return 0;
			}
			if(q[0]==m)stop++;
			us[q[1]]=1;
			Av.pop();
			int nxt=q[0]+1;
			ansa.push_back(q[1]);
			for(;A<=m && A<=nxt;A++)
			{
				for(int i=0;i<tme[A].size();i++)
				{
					if(us[tme[A][i][1]]==0) Av.push(tme[A][i]);
				}
			}
		}
		else
		{
			array<int,2> q;
			if(Bv.empty()==0)q=Bv.top();
			while(Bv.empty()==0 && us[q[1]]==1)
			{
				Bv.pop();
				if(Bv.empty()==0) q=Bv.top();
			}
			if(Bv.empty()==1)
			{
				cout<<0<<endl;
				return 0;
			}
			Bv.pop();
			if(q[0]==m)stop++;
			int nxt=q[0]+1;
			ansb.push_back(q[1]);
			us[q[1]]=1;
			for(;B<=m && B<=nxt;B++)
			{
				for(int i=0;i<tme[B].size();i++)
				{
					if(us[tme[B][i][1]]==0) Bv.push(tme[B][i]);
				}
			}
		}
	}
	int ANS=ansa.size()+ansb.size();
	cout<<ANS<<'\n';
	for(int u:ansa)cout<<u+1<<" ";
	for(int u:ansb)cout<<u+1<<" ";
	return 0;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/04ms6480 KiB
2Accepted0/06ms7168 KiB
3Accepted2/23ms6632 KiB
4Accepted2/24ms6640 KiB
5Accepted2/23ms6644 KiB
6Accepted2/23ms6652 KiB
7Accepted2/23ms6656 KiB
8Accepted2/23ms6828 KiB
9Accepted2/23ms6716 KiB
10Accepted2/23ms6856 KiB
11Accepted2/23ms6864 KiB
12Accepted1/14ms6880 KiB
13Accepted2/24ms6956 KiB
14Accepted2/24ms7188 KiB
15Accepted2/26ms7256 KiB
16Accepted3/36ms7712 KiB
17Accepted3/38ms7824 KiB
18Accepted3/38ms8100 KiB
19Accepted3/38ms8204 KiB
20Accepted3/38ms8328 KiB