問題文

正整数 N,L,KN , L , K と、長さ NN の正整数列 A=(A1,A2,...,AN)A = (A_1 , A_2 ,..., A_N) が与えられます。

yuki 君は 1010010^{100} 円を持っており、無限に続く階段を登ろうとしています。

はじめ、yuki 君は 00 段目にいます。
yuki 君は、次の 22 種類の行動のうち一方を選んで行うことを繰り返します。

  • 階段を 11 段登る。
  • 階段を LL 段登る。

行動の結果、yuki 君が tt 段目に止まったとき、AtA_t 円を支払わなければなりません。

また、階段を LL 段登る行動を 33 回連続で行った場合、yuki 君は肉離れを起こします。
このとき、治療費として追加で KK 円を支払い、それ以降は階段を LL 段登る行動を選ぶことができなくなります。

yuki 君がちょうど NN 段目に止まるような移動方法のうち、支払う金額の合計の最小値を求めてください。

制約

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 2LN2 \leq L \leq N
  • 0K1090 \leq K \leq 10^9
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力はすべて整数である。

入力

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

N  L  KA1  A2  ANN\ \ L\ \ K\\ A_1\ \ A_2\ \ldots\ A_N

出力

yuki 君が支払う金額の最小値を出力せよ。

入力例1

5 2 100
10 1 10 1 10

出力例1

12

00 段目 \to 22 段目 \to 44 段目 \to 55 段目 と移動すると、支払う金額は A2+A4+A5=1+1+10=12A_2 + A_4 + A_5 = 1 + 1 + 10 = 12 円です。

1111 円以下で移動する方法は存在しないため、 1212 を出力してください。

入力例2

5 5 100
2 4 6 8 10

出力例2

10

L=NL=N なので、00 段目から 55 段目へ一度で移動できます。 このとき支払う金額は A5=10A_5=10 円です。

入力例3

8 2 10
100 1 100 1 100 1 1 1

出力例3

15

00 段目 2\to 2 段目 4\to 4 段目 6\to 6 段目 7\to 7 段目 8\to 8 段目 と移動することを考えます。

最初の 33 回の行動では、階段を L=2L=2 段ずつ登っています。 そのため、66 段目に止まった時点で肉離れを起こし、治療費として K=10K=10 円を追加で支払います。

その後は LL 段登る行動を選べなくなりますが、11 段ずつ登ることで 88 段目に到達できます。

このとき支払う金額は 1515 円で、これが最小です。

入力例4

5 2 10
1000000000 1000000000 1000000000 1000000000 1000000000

出力例4

3000000000

答えが 3232 bit 整数型に収まらない場合があることに注意してください。

提出


Go (1.21)