蛋糕
(cake.cpp)
【问题描述】
ljz 是个吃货,她想要吃蛋糕。
ljz 一共有 n 个蛋糕,它们从左到右依次摆在一张桌子上,每个蛋糕有一个能量值。
因为 ljz 有强迫症,所以她想按从左到右的顺序吃蛋糕,并且一次只能吃连续的一段蛋糕。这 n 个蛋糕要全部吃完。
因为 ljz 的饭量是有限的,所以她一次只能吃下能量值总和不超过 K 的蛋糕。
因为 ljz 很怕自己长胖,所以她自欺欺人地认为,在吃下一段蛋糕后,这段蛋糕中,只有能量值最高的那个蛋糕的能量会被摄取。如果有多个蛋糕的能量值最大,也只会摄取其中一个蛋糕的能量。吃完 n 个蛋糕后摄取的总能量,就是吃每段蛋糕摄取的能量值。
那么,ljz 应当如何吃蛋糕,才能使摄取的总能量最小呢(按照 她认为的计算方式 )?求出这个最小值即可。
【输入格式】
第 1 行,2 个整数\(n,K\),表示共有\(n\)个蛋糕,且一次只能吃下能量值总和不超过\(K\)的蛋糕。
第 2 行,共\(n\)个整数,表示每个蛋糕的能量值\(w[i]\)。
【输出格式】
输出文件共 1 行,表示答案。
【输入输出样例 1】
cake.in
8 17
2 2 2 8 1 8 2 1
cake.out
12
【数据规模与约定】
对于 5%的数据,\(1≤n≤20\)。
对于 40%的数据,\(1≤n≤5000\)。
另有 5%的数据,\(K\)大于等于所有蛋糕的能量值总和。
另有 10%的数据,所有蛋糕的能量值相等。
对于 100%的数据,\(1≤n≤100000,0≤w[i]≤1000000,K≤10^{11}\),且\(K\)大于等于任意一个蛋糕的能量值。
信息
- ID
- 1077
- 难度
- 10
- 分类
- (无)
- 标签
- (无)
- 递交数
- 6
- 已通过
- 0
- 通过率
- 0%
- 上传者