问题2250--最小分段数(HDU3486)

2250: 最小分段数(HDU3486)

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

姚耀想聘请m个人,有n个人前来面试。姚耀决定为这项任务选择m个面试官。首先,他将面试者按到来的顺序分成m段,每段的长度都是⌊n/m⌋,这意味着他忽略了来晚的面试者。然后将每段都分配给面试官,面试官从他们中选择最好的一个作为雇员。每个面试者都有一个能力值,能力值越高越好。姚耀希望尽可能减少雇员,且员工的能力值总和大于k。请帮他找到最小的m。

输入

输入包含多个测试用例。每个测试用例的第1行都包含两个数字n和k,表示面试的人数和姚耀想聘用的员工能力值之和(n≤200000,k≤1000000000);第2行都包含n个数字v1,v2,vn(0≤vi1000),分别表示每个面试者的能力值。以两个-1结束,不处理。

输出

对每个测试用例,都单行输出可以找到的最小m。若找不到,则输出-1。

样例输入 Copy

11 300
7 100 7 101 100 100 9 100 100 110 110
-1 -1

样例输出 Copy

3

来源/分类