atcoder#ABC267D. [ABC267D] Index × A(Not Continuous ver.)

[ABC267D] Index × A(Not Continuous ver.)

配点 : 400400

問題文

長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\dots,A_N) が与えられます。

長さ MMAA の部分列(連続でなくてもよい) B=(B1,B2,,BM)B=(B_1,B_2,\dots,B_M) に対する、i=1Mi×Bi\displaystyle \sum_{i=1}^{M} i \times B_i の最大値を求めてください。

注記

数列の部分列とは、数列から 00 個以上の要素を取り除いた後、残りの要素を元の順序で連結して得られる数列のことをいいます。

例えば、(10,30)(10,30)(10,20,30)(10,20,30) の部分列ですが、(20,10)(20,10)(10,20,30)(10,20,30) の部分列ではありません。

制約

  • 1MN20001 \le M \le N \le 2000
  • 2×105Ai2×105- 2 \times 10^5 \le A_i \le 2 \times 10^5
  • 入力は全て整数。

入力

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

NN MM

A1A_1 A2A_2 \dots ANA_N

出力

答えを出力せよ。

4 2
5 4 -1 8
21

B=(A1,A4)B=(A_1,A_4) とした場合、$\displaystyle \sum_{i=1}^{M} i \times B_i = 1 \times 5 + 2 \times 8 = 21$ となります。2222 以上の値を達成することはできないため、解は 2121 です。

10 4
-3 1 -4 1 -5 9 -2 6 -5 3
54