有n个人排队应聘,每个人有一个能力值,然后老板要把这些人平均分成m段,如果不能整除多出来就后面的人就不要了,然后从这m段里面选择每段的最大能力值加起来看是否能够大于老板需要的目标k,因为薪资问题,尽可能少录取人,所以找出满足条件的最小的m。
有n个人排队应聘,每个人有一个能力值,然后老板要把这些人平均分成m段,如果不能整除多出来就后面的人就不要了,然后从这m段里面选择每段的最大能力值加起来看是否能够大于老板需要的目标k,因为薪资问题,尽可能少录取人,所以找出满足条件的最小的m。
第一行包括两个数字n、k,表示招募员工的人数和目标能力值总和,n<= 200000,k<=1000000000;
第二行有n个数字,表示n个受试者的能力值(均在0~1000之间)。
输出仅一行,包含一个整数m,表示可行的最小分组数量;如果没有满足条件的m,输出-1。
11 300
7 100 7 101 100 100 9 100 100 110 110
3
对于20%的数据,保证N <=
500;
对于50%的数据,保证N <=
8000;
对于100%的数据,保证N <=
200000,K<=1000000000;