时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld
题目描述
JOI社决定将收获的N个橙子分装进一些箱子内。在JOI社的工厂中,橙子排列在输送带上,依次编号为
。橙子
的大小为
。由于分拣不方便,同一个箱子内,橙子的编号必须连续。
一个箱子内最多可以装M个橙子。在一个箱子内装一些橙子的成本为K+s×(a−b)。K是箱子本身的成本,所有箱子的成本一样。s是该箱子中橙子的数目。a是该箱子中最大橙子的大小,b是该箱子中最小橙子的大小。
求包装这N个橙子所需的最小成本。
输入描述:
第一行有三个整数N,M,K,用空格分隔。
在接下来的N行中,第i行
有一个整数
。
输入的所有数的含义见题目描述。
输出描述:
输出一个整数,表示包装这$N$个橙子所需的最小成本。
示例1
说明
用两个箱子装。第一个箱子装橙子1,2,3,第二个箱子装4,5,6,总成本为[6+3×(3−1)]+[6+3×(2−1)]=21。
示例2
输入
复制
16 4 12
3
10
13
10
19
9
12
16
11
2
19
9
13
2
13
19
说明
用11个箱子装。这些箱子依次分别装了1,3,1,1,3,1,1,2,1,1,1个橙子,箱子1装了橙子1,箱子2装了橙子2,3,4,箱子3装了橙子5,以此类推。
示例3
输入
复制
16 6 14
19
7
2
15
17
7
14
12
3
14
5
10
17
20
19
12
示例4
输入
复制
10 1 1000000000
1
1
1
1
1
1
1
1
1
1
说明
答案可能会爆
。
备注:
对于所有数据,
%2CM%20%5Cleqslant%20N)
。
CC-BY-SA,感谢LOJ分享,译文来自https://loj.ac/problem/2342