#P16178. [Ncpc2020]Hiring and Firing招聘与解雇
[Ncpc2020]Hiring and Firing招聘与解雇
题目描述
Amazin' Inc 是一家快速发展的电商公司。通过先进的预测方法,公司已经知道未来每天需要多少员工。因此每天可以通过解雇和招聘员工,把员工数量调整到当天刚好需要的人数。
为了防止员工过于稳定并组织起来,公司还会定期解雇一些员工并换成新人。例如,如果某一天比前一天多需要 名员工,公司也可能先解雇 人,再招聘 人。
但是劳动法规定,解雇员工必须遵循后进先出原则:入职时间最短的人必须最先被解雇。并且,被解雇的人在整个计划期内不能再次被雇佣。
接下来轮到 HR 部门优化自己了。每天会指定一位 HR 员工负责当天的解雇和招聘。为了减少 HR 员工的社交尴尬,公司规定:
解雇某位员工的 HR,必须不同于当初迎接该员工入职的 HR。
HR 员工不像普通员工一样可以临时增减,他们必须是固定的长期员工。请你求出最少需要多少名 HR,才能完成所有计划,并给出每天由哪位 HR 负责。
输入格式
第一行包含一个整数 ,表示未来计划的天数。
接下来 行,第 行包含两个整数 :
- :第 天解雇的员工数;
- :第 天招聘的新员工数。
保证每天要解雇的人数不会超过当前在职人数。
输出格式
第一行输出一个整数 ,表示最少需要的 HR 人数。
第二行输出 个整数,第 个整数表示第 天负责招聘和解雇的 HR 编号。HR 编号应为 到 。
如果有多种方案,输出任意一种。
数据范围
并保证
对所有 成立。
样例 #1
输入
4
0 3
1 1
2 1
2 0
输出
3
1 2 3 2
样例 #2
输入
6
0 10
0 5
2 0
0 0
0 100
50 100
输出
2
1 2 1 2 1 2