Problem1330--PIPI的乐高积木

1330: PIPI的乐高积木

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 396  Solved: 217
[Submit] [Status] [Web Board] [Creator:]

Description

PIPI有一堆乐高小积木,小积木刚好是1x1x1的立方体,POPO把这些立方体垒起来组成了N根柱子。
POPO搭的柱子高度参差不齐,PIPI认为这并不美观,PIPI将N根柱子的美观度定义为最高柱子和最矮柱子的差,这个值越小越美观。
PIPI为了让柱子变得美观,他每次可以从某根柱子上拿下一个乐高积木放到另一根柱子上(两根柱子不能是同一根)。PIPI可以进行不超过k次的移动操作,请问这N根柱子能够达到的最小美观度是多少?

Input

第一行输入两个数N,k (2<=N<=1e5, 0<=k<=5000) 表示柱子的数量以及PIPI最多进行的移动次数。
第二行输入N根柱子的初始高度(1<=hi<=1e4)。

Output

第一行输出两个数字 a b。代表最小美观度和到达该美观度最少的移动次数。
接下来b行,每行两个数x和y,代表将x柱子上的立方体放到y上。
若x有多种选择,那么选择编号尽可能大的x,若y有多种选择,那么选择编号尽可能小的y(柱子编号从1~N)。

Sample Input

3 2
5 8 5

Sample Output

0 2
2 1
2 3

Source/Category

中等 STL