[Ceoi2012]jobs
时间限制:20s 空间限制:128MB
题目描述
在接下来的N天内,你收到了M个生产请求,每天可能受到多个请求。原则上来说,第i天收到的生产请求只能在第i天完成,但是实际中,你可以最多推迟D天完成请求,即在第i天到i + D天内完成都可以。进行生产需要使用一种机器,一台机器一天内可以完成一个生产请求。你的任务是计算出最少需要的机器台数,使得所有生产都能按要求完成
输入格式
第一行三个非负整数N, M, D (0 ≤ D < N)。
第二行M个正整数,第i个正整数表示在第几天收到了第i个请求。生产请求用正整数1..M编号。数据保证第N-D天之后不会收到生产请求。
输出格式
第一行一个正整数,表示最少需要的机器个数。下面N行给出每天完成的请求编号。每一行以0结束。如果存在多种方案,随意输出一种即可。
样例输入
8 2 12 1 2 4 2 1 3 5 6 2 3 6 4
样例输出
2 5 1 0 9 4 0 2 10 0 6 12 0 3 7 0 11 8 0 0 0
提示
对于100%的数据满足:1 ≤ N ≤ 100,000,1 ≤ M ≤ 1,000,000。
题目来源
鸣谢Oimaster,Spj程序by liutian