#193. 立定跳远

立定跳远

题目描述

在运动会上,小明从数轴的原点开始向正方向立定跳远。项目设置了 nn 个检查点 a1,a2,,ana_1, a_2, \cdots , a_naiai1>0a_i \ge a_{i−1} > 0。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时,小明可以自行再增加 mm 个检查点让自己跳得更轻松。

在运动会前,小明制定训练计划让自己单次跳跃的最远距离达到 LL,并且学会一个爆发技能可以在运动会时使用一次,使用时可以在该次跳跃时的最远距离变为 2L2L。小明想知道,LL 的最小值是多少可以完成这个项目?

输入格式

输入共 22 行。

第一行为两个正整数 n,mn,m

第二行为 nn 个由空格分开的正整数 a1,a2,,ana_1, a_2, \cdots, a_n

输出格式

输出共 11 行,一个整数表示答案。

样例

5 3
1 3 5 16 21
3

提示

【样例说明】

增加检查点 10,13,1910, 13, 19,因此每次跳跃距离为 1,2,2,5,3,3,3,21,2, 2, 5, 3, 3, 3, 2,在第三次跳跃时使用技能即可。

【评测用例规模与约定】

对于 20%20\% 的评测用例,保证 n102n \le 10^2m103m \le 10^3ai103a_i \le 10^3。 对于 100%100\% 的评测用例,保证 2n1052 \le n \le 10^5m108m \le 10^80<ai1080 < a_i \le 10^8