P0721

积木

积木

搭积木是小 X 最喜欢的游戏之一。她有 nn 块高度不同的积木,并将它们排成一列。

小 X 希望这些积木看起来尽可能整齐。她将所有相邻积木高度差的绝对值之和乘以系数 cc,定义为积木序列的混乱值。混乱值越小,积木序列越整齐。

小 X 可以通过增加积木的高度来降低混乱值。对于任意自然数 tt,她可以花费 t2t^2 的代价,在某块积木上再搭一块高度为 tt 的积木。每块积木上至多进行一次这样的操作。

请计算积木序列的混乱值与增加高度所需代价之和的最小值。

输入格式

第一行包含两个整数 n,cn,c,分别表示积木的数量和混乱值系数。

接下来 nn 行,第 ii 行包含一个整数 hih_i,表示第 ii 块积木的初始高度。

输出格式

输出一个整数,表示混乱值与增加高度所需代价之和的最小值。

样例输入

4 1
1
2
1
3

样例输出

3

数据范围

  • 对于 20%20\% 的数据,n,hi≤100n,h_i\le 100;
  • 对于 40%40\% 的数据,n,hi≤1000n,h_i\le 1000;
  • 对于 60%60\% 的数据,n≤1000n\le 1000;
  • 对于 80%80\% 的数据,n≤105n\le 10^5;
  • 对于全部数据,1≤n,hi,c≤1061\le n,h_i,c\le 10^6。

来源与许可

本题题面与测试数据整理自 BZOJ 2650。

样例 1

输入

4 1
1
2
1
3

输出

3