問題一覧 > 通常問題

No.1117 数列分割

レベル : / 実行時間制限 : 1ケース 3.000秒 / メモリ制限 : 256 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 65
作問者 : first_vil / テスター : shinchan
13 ProblemId : 4450 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-05-15 16:12:01

注意

この問題は実行時間制限が厳しいので高速な言語を使用することを勧めます。(writer解はPython3ではTLE、PyPy3ではACすることを確認しています。)

問題文

長さ NN の数列 AA があります。この数列を以下の条件を満たすように KK 個の連続部分列 B1,B2,,BKB_1,B_2,\dots,B_K に分割することを考えます。

  • B1,B2,,BKB_1,B_2,\dots,B_K はいずれも AA の空でない長さ MM 以下の連続部分列である。
  • B1,B2,,BKB_1,B_2,\dots,B_K をこの順序で連結すると AA となる。

ある分割のスコアは i=1Kj=1LiBi,j\displaystyle \sum_{i=1}^{K}|\sum_{j=1}^{L_i}B_{i,j}| と定義されます。ここで LiL_iBiB_i の長さです。

スコアの最大値を求めてください。

入力

N K MN\ K\ M
A1 A2  ANA_1\ A_2\ \dots\ A_N

  • 入力は全て整数
  • 1N30001 \le N \le 3000
  • 1K,MN1 \le K,M \le N
  • NM×KN \le M \times K
  • Ai109|A_i| \le 10^9

出力

スコアの最大値を出力し、最後に改行してください。

サンプル

サンプル1
入力
5 2 4
-7 -7 17 3 -20
出力
26

例えば (7,7),(17,3,20)(-7,-7),(17,3,-20) と分割した場合のスコアは、77+17+320=14+0=14+0=14|-7-7|+|17+3-20|=|-14|+|0|=14+0=14 となります。

ここでは (7,7,17,3),(20)(-7,-7,17,3),(-20) という分割が最適で、スコアの最大値は 2626 です。

サンプル2
入力
3 2 2
-6 -15 13
出力
34
サンプル3
入力
9 5 3
17 11 9 -10 -20 5 19 -3 -3
出力
97

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。