题号:NC265924
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
小利同学开了一家网红小吃店,专卖烙饼。
店里有

台烙饼机可以同时工作,一台烙饼机同时只能烙一个饼,而不同种类的饼烙制时长是不同的。为了节省时间,小利同学想出了一种独特的烙饼方法:
把一张饼分成若干次烙制,即一张饼的烙制过程可以是不连续的(比如一张饼需要烙

分钟,可以选择在烙饼机

中烙

分钟,接着取出,去烙制别的饼,而后再取回该饼继续在任意烙饼机上烙

分钟 )。店里的烙饼机烙制时长只能
精确到分钟,因此小利只能在每张饼刚好烙制完整数分钟后将其取出。
由于是网红店,购买订单数量常常爆满,于是小利找到你,希望你根据
个饼的订单信息制定一份包含

条烙制记录的烙饼计划,使这天完成工作
需要花费的时间最短(当然他也不希望这份计划太繁琐,因此在完成上述目标的前提下,还应该满足
)。
特殊的:小利身手敏捷,把饼放入烙饼机与从烙饼机取出饼的时间都可以忽略不计。
输入描述:
给出两个整数
)
,表示需要制作的饼的数量和烙饼机数量。
下一行为
个整数,第
个整数
表示
号饼需要烙制
分钟。
输出描述:
第一行输出一个整数

,表示烙制记录数。
下面
行,每行依次输出四个整数
,表示
号饼在
号烙饼机上烙制时间段为
。
如果存在多种可行结果,请输出任意一种。
请注意,你的输出结果必须同时满足以下所有条件才会返回答案正确:
-
- 
- 
- 
- 保证所有饼完成烙制,同时最后完成工作的烙饼机结束时间最早。
- 各饼在一台烙饼机上的烙制时间不能重叠,一张饼也不能同时在不同烙饼机上烙制。(烙制时间段边界处重合是合法的)
示例2
输出
复制
3
1 1 0 10
2 2 0 3
3 3 0 2