#asaporod. [asaporo_d]Struck Out

[asaporo_d]Struck Out

题目描述

高桥的房子里有 NN 个按顺序排列的面板,编号从 11NN。第 ii 个面板上有一个数字 AiA_i。高桥正在玩一个游戏,他要往这些面板上投掷球。

高桥共投掷了 KK 次球。假设第 ii 次投掷击中了面板 pip_i,他将第 ii 次投掷的得分设为 i×Apii \times A_{p_i}

他准备计算自己的投掷得分总和,但他忘记了每次投掷击中的面板 p1,p2,...,pKp_1, p_2, ..., p_K。他唯一记得的是对于每个 ii (1iK1)(1 ≤ i ≤ K-1),都满足 1pi+1piM1 ≤ p_{i+1}-p_i ≤ M。基于这个事实,找出他的投掷得分的最大可能总和。

约束条件

  • 1MN100,0001 ≤ M ≤ N ≤ 100,000
  • 1Kmin(300,N)1 ≤ K ≤ min(300,N)
  • 1Ai1091 ≤ A_i ≤ 10^{9}

部分分数

  • 在价值为 100100 分的测试集中,M=NM = N
  • 在价值为另外 200200 分的测试集中,N300N ≤ 300K30K ≤ 30
  • 在价值为另外 300300 分的测试集中,K30K ≤ 30

输入

输入以以下格式从标准输入给出:

NN MM KK A1A_1 A2A_2ANA_N

输出

输出高桥投掷得分的最大可能总和。


示例输入 1

5 2 3
10 2 8 10 2

示例输出 1

56

在面板 1,31,344 以这个顺序被击中时,得分总和最大。


示例输入 2

5 5 2
5 2 10 5 9

示例输出 2

28

该示例满足部分得分的额外约束条件 M=NM = N


示例输入 3

10 3 5
3 7 2 6 9 4 8 5 1 1000000000

示例输出 3

5000000078