问题 4771 --更改数值4771: 更改数值★★
时间限制: 1 Sec 内存限制: 128 MB
提交: 16 解决: 7
[提交][状态][命题人:]题目描述
给你一个数组a1,a2,......,an和数字k。
每一步你可以选一个数i,将ai减一;
或选两个数i,j,使ai等于aj.
若想使a1+a2+......+an<=k,请问你最少需要操作几次?
(允许出现负数)
输入
第一行包括一个数t(1<=t<=10000)为数据组数。每组数据第一行包括两个数n和k(1=<n<=200000,1=<k<=1000000000000000),分别表示a数列的大小,和最终要求a数列数字之和的上界。
每组数据第二行包括n个数a1,a2,......,an(1=<ai<=1000000000),即为数列。
保证所有数据的n之和不超过200000.
输出
每组数据使a1+a2+......+an<=k的最少操作次数。
提示
样例1中,可使a1减少10次。
样例2已经满足要求,不用改变它。
样例3:第一步,让a4=a3=1,第二步,将a4减一。
样例4:将a7减少3次使a7=-2.再使a6,a8,a9,a10等于a7,共需7步。
来源
[提交][状态]