910 2022. 01. 27 17:22:54 Babják Péter Ügyelet cpp11 Elfogadva 40/40 8ms 8328 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;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 4ms 6480 KiB
2 Elfogadva 0/0 6ms 7168 KiB
3 Elfogadva 2/2 3ms 6632 KiB
4 Elfogadva 2/2 4ms 6640 KiB
5 Elfogadva 2/2 3ms 6644 KiB
6 Elfogadva 2/2 3ms 6652 KiB
7 Elfogadva 2/2 3ms 6656 KiB
8 Elfogadva 2/2 3ms 6828 KiB
9 Elfogadva 2/2 3ms 6716 KiB
10 Elfogadva 2/2 3ms 6856 KiB
11 Elfogadva 2/2 3ms 6864 KiB
12 Elfogadva 1/1 4ms 6880 KiB
13 Elfogadva 2/2 4ms 6956 KiB
14 Elfogadva 2/2 4ms 7188 KiB
15 Elfogadva 2/2 6ms 7256 KiB
16 Elfogadva 3/3 6ms 7712 KiB
17 Elfogadva 3/3 8ms 7824 KiB
18 Elfogadva 3/3 8ms 8100 KiB
19 Elfogadva 3/3 8ms 8204 KiB
20 Elfogadva 3/3 8ms 8328 KiB