题目翻译
Monocarp 最近找到了一份工作。他的工作日恰好持续 m 分钟。在工作期间,Monocarp 想在一些特定的时间点喝咖啡:他在 n 个分钟 a1, a2, ..., an 时有喝咖啡的需求(每次咖啡休息正好持续一分钟)。
然而,Monocarp 的老板不喜欢他频繁地休息。因此,对于在 ai 分钟的每个咖啡休息,Monocarp 必须选择一个工作日进行,以确保每一天内的任意两次咖啡休息至少相隔 d 分钟。此外,Monocarp 也希望用尽量少的工作日来完成这些 n 次咖啡休息(他不计算非工作日,不在非工作日休息)。且每个工作日结束后的休息时间大于 d 分钟,因此相邻工作日不受间隔的限制。
对于给定的 n 个分钟数,确定每个时间点安排的工作日,以最小化总的工作天数。
输入格式
第一行包含三个整数 n、m、d:
n:Monocarp 想要的咖啡休息次数。
m:每天的分钟数。
d:每一天内两次咖啡休息的最小间隔时间。
第二行包含 n 个不重复的整数 a1, a2, ..., an,表示 Monocarp 在这些时间点希望喝咖啡。
输出格式
第一行输出最少需要的工作天数。
第二行输出 n 个空格分隔的整数,第 i 个整数表示第 i 次咖啡休息分配的工作日编号。