积木
搭积木是小 X 最喜欢的游戏之一。她有 块高度不同的积木,并将它们排成一列。
小 X 希望这些积木看起来尽可能整齐。她将所有相邻积木高度差的绝对值之和乘以系数 ,定义为积木序列的混乱值。混乱值越小,积木序列越整齐。
小 X 可以通过增加积木的高度来降低混乱值。对于任意自然数 ,她可以花费 的代价,在某块积木上再搭一块高度为 的积木。每块积木上至多进行一次这样的操作。
请计算积木序列的混乱值与增加高度所需代价之和的最小值。
输入格式
第一行包含两个整数 ,分别表示积木的数量和混乱值系数。
接下来 行,第 行包含一个整数 ,表示第 块积木的初始高度。
输出格式
输出一个整数,表示混乱值与增加高度所需代价之和的最小值。
样例输入
4 1
1
2
1
3
样例输出
3
数据范围
- 对于 的数据,;
- 对于 的数据,;
- 对于 的数据,;
- 对于 的数据,;
- 对于全部数据,。
来源与许可
本题题面与测试数据整理自 BZOJ 2650。
样例 1
输入
4 1
1
2
1
3
输出
3