时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小D想和你玩个游戏,游戏规则如下:
给出

个高度为

的柱子,每个柱子的每一单位长度上有一定的分数

表示在第

个柱子上的第

个单位长度上的分数,玩家可以选择从任意一个柱子上单位长度为

处开始,有以下两种操作:
(1)向上跳
个单位长度,高度由
变为
,且不能跳到其他的柱子上并且得不到该位置分数;
(2)向上跳

个单位长度,高度由

变为

,且可以跳到任意柱子上
并获得该位置上的分数;
(3)当以上两种操作都无法进行时,游戏结束并结算得分。
玩家初始时在单位长度
处,且初始位置分数可以直接获得。请你求出最高能获得多少分。
输入描述:
第一行包含三个整数

分别表示柱子的高度,数量,和跳跃的距离。
从第二行到第

行每行

个整数

表示第

根柱子上高度为

的分数
输出描述:
一个整数表示可以取得的分数的最大值