蛋糕

(cake.cpp)

【问题描述】

ljz 是个吃货,她想要吃蛋糕。
ljz 一共有 n 个蛋糕,它们从左到右依次摆在一张桌子上,每个蛋糕有一个能量值。
因为 ljz 有强迫症,所以她想按从左到右的顺序吃蛋糕,并且一次只能吃连续的一段蛋糕。这 n 个蛋糕要全部吃完。
因为 ljz 的饭量是有限的,所以她一次只能吃下能量值总和不超过 K 的蛋糕。
因为 ljz 很怕自己长胖,所以她自欺欺人地认为,在吃下一段蛋糕后,这段蛋糕中,只有能量值最高的那个蛋糕的能量会被摄取。如果有多个蛋糕的能量值最大,也只会摄取其中一个蛋糕的能量。吃完 n 个蛋糕后摄取的总能量,就是吃每段蛋糕摄取的能量值。
那么,ljz 应当如何吃蛋糕,才能使摄取的总能量最小呢(按照 她认为的计算方式 )?求出这个最小值即可。

【输入格式】

第 1 行,2 个整数n,Kn,K,表示共有nn个蛋糕,且一次只能吃下能量值总和不超过KK的蛋糕。
第 2 行,共nn个整数,表示每个蛋糕的能量值w[i]w[i]

【输出格式】

输出文件共 1 行,表示答案。

【输入输出样例 1】

cake.in

8 17
2 2 2 8 1 8 2 1 

cake.out

12

【数据规模与约定】

对于 5%的数据,1n201≤n≤20
对于 40%的数据,1n50001≤n≤5000
另有 5%的数据,KK大于等于所有蛋糕的能量值总和。
另有 10%的数据,所有蛋糕的能量值相等。
对于 100%的数据,1n100000,0w[i]1000000,K10111≤n≤100000,0≤w[i]≤1000000,K≤10^{11},且KK大于等于任意一个蛋糕的能量值。

信息

ID
1077
难度
10
分类
(无)
标签
(无)
递交数
6
已通过
0
通过率
0%
上传者