제출 #1340177

#제출 시각아이디문제언어결과실행 시간메모리
1340177fatime_aslan_156Job Scheduling (CEOI12_jobs)C++20
0 / 100
804 ms26820 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	ll n,d,m,z=0;
	cin>>n>>d>>m;
	map<ll,ll>c;
	set<ll>e;
	vector<ll>v(m);
	vector<vector<ll>>o(n+1);
	for(int i=0; i<m; i++)
	{
		cin>>v[i];
		o[v[i]].push_back(i+1);
		e.insert(v[i]);
		c[v[i]]++;
		z=max(z,c[v[i]]);
	}
	ll l=1,r=m,k=m;
	ll w=0,p=0;
	bool q=0;
	while(l<=r)
	{
		ll mi=(l+r)>>1,er=0;
		for(int i:e)
		{
			for(int j=0; j<o[i].size(); j++)
			{
				if(i>p+1)
				{
					j--;
					p++;
					w=0;
					q=0;
				}
				else if(w==k)
				{
					q=0;
					j--;
					p++;
					w=0;
				}
				else
				{
				    er++;
					q=1;
					w++;
				}
			}
		}
		if(er==m)
		{
		    k=mi;
		    r=mi-1;
		}
		else
			l=mi+1;
	}
	cout<<k<<endl;
	w=0,p=0;
	q=0;
	for(int i:e)
	{
		for(int j=0; j<o[i].size(); j++)
		{
			if(i>p+1)
			{
				cout<<0<<endl;
				j--;
				p++;
				w=0;
				q=0;
			}
			else if(w==k)
			{
				cout<<0<<endl;
				q=0;
				j--;
				p++;
				w=0;
			}
			else
			{
				cout<<o[i][j]<<' ';
				q=1;
				w++;
			}
		}
	}
	if(q)
	{
		p++;
		cout<<0<<endl;
	}
	for(int i=p; i<n; i++)
		cout<<0<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...