定义一个序列的权值和为这个序列中元素的总和。现在给你一个序列 a ,请从中选出一个子数组 b ,使得该子数组权值和最大。
但这个求解问题太简单了,我们决定添加两个条件:
1:定义奖励数组为:你选出的子数组中,应该有至少 k 个连续的数对 x, y,满足 x >= y 。形式上说,在你选出的子数组 b 中,应该有至少 k 个下标 i ,满足 bi >= bi+1(1 <= i < |b|)。
2:定义惩罚值为:你选出的子数组的长度。
给你一个长度为 n 的序列 a ,请从中选出一个子数组 b,在满足其为奖励数组的前提下,最小化惩罚值(你不需要最大化子数组权值和)。
注:子数组是指在原序列开头或结尾删除一段连续数组,得到剩余的连续数组。