atcoder#AGC027B. [AGC027B] Garbage Collector

[AGC027B] Garbage Collector

配点 : 700700

問題文

すぬけ君は掃除ロボットを使って部屋を掃除することにしました。

数直線上に NN 個のゴミが落ちています。 左から ii 番目のゴミは位置 xix_i にあります。 これらのゴミを位置 00 にあるゴミ箱に入れたいです。

ゴミの位置に関して、0<x1<x2<...<xN1090 < x_1 < x_2 < ... < x_{N} \leq 10^{9} が成立します。

掃除ロボットははじめ位置 00 にいます。ロボットは数直線上を自由に動くことができ、ゴミのある位置にいくとゴミを拾うことができます。 ゴミは同時に何個でも運ぶことでき、ゴミ箱の位置に行くとゴミをゴミ箱に入れることができます。ゴミをゴミ箱以外の場所に置くことは許されません。

ロボットがゴミを拾う、あるいは(11 個以上の)ゴミをゴミ箱に入れるとき XX だけエネルギーを消費します。ゴミをゴミ箱に入れるときに消費するエネルギーはゴミの個数にかかわらず XX です。 また、ロボットが kk 個のゴミを運んでいるとき、距離 11 だけ移動するのに (k+1)2(k+1)^{2} だけエネルギーを消費します。

NN 個のゴミを全てゴミ箱に入れるために必要なエネルギーの最小値を求めてください。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^{5}
  • 0<x1<...<xN1090 < x_1 < ... < x_N \leq 10^9
  • 1X1091 \leq X \leq 10^9
  • 与えられる入力は全て整数

部分点

  • N2000N \leq 2000 を満たすデータセットに正解した場合、400400 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

NN XX

x1x_1 x2x_2 ...... xNx_{N}

出力

答えを出力せよ。

2 100
1 10
355
  • 1010 のエネルギーを消費して、位置 1010 に移動する
  • 100100 のエネルギーを消費して、ゴミを取る
  • 3636 のエネルギーを消費して、位置 11 に移動する
  • 100100 のエネルギーを消費して、ゴミを取る
  • 99 のエネルギーを消費して、位置 00 に移動する
  • 100100 のエネルギーを消費して、22 つのゴミをゴミ箱に入れる

このように行動したとき、消費したエネルギーは 10+100+36+100+9+100=35510+100+36+100+9+100=355 となります。

5 1
1 999999997 999999998 999999999 1000000000
19999999983
10 8851025
38 87 668 3175 22601 65499 90236 790604 4290609 4894746
150710136
16 10
1 7 12 27 52 75 731 13856 395504 534840 1276551 2356789 9384806 19108104 82684732 535447408
3256017715