5943: 进阶2.1.3 最小分段数

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:82 解决:15

题目描述

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

输入

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

输出

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

样例输入 复制

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

样例输出 复制

3

提示

HDU3486