攀登者喜欢寻找各种地图,并尝试攀登到最高的山峰。地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素 0 代表地面。
例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5 和 8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为 3,10。
一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。
登山时会消耗登山者的体力(整数),
攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。
地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素 0 代表地面。
例如:[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0],代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5 和 8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为 3,10。
一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。
登山时会消耗登山者的体力(整数),
上山时,消耗相邻高度差两倍的体力
下山时,消耗相邻高度差一倍的体力
平地不消耗体力
登山者体力消耗到零时会有生命危险。
例如,上图所示的山峰:
从索引 0 ,走到索引 1 ,高度差为 1 ,需要消耗 2∗1=2 的体力,
从索引 2 ,走到索引 3 ,高度差为 2 ,需要消耗 2∗2=4 的体力。
从索引 3 ,走到索引 4 ,高度差为 1 ,需要消耗 1∗1=1 的体力。
攀登者想要评估一张地图内有多少座山峰可以进行攀登,且可以安全返回到地面,且无生命危险。
例如上图中的数组,有 3 个不同的山峰,登上位置在 3 的山可以从位置 0 或者位置 6 开始,从位置 0 登到山顶需要消耗体力 1∗2+1∗2+2∗2=8 ,从山顶返回到地面0需要消耗体力 2∗1+1∗1+1∗1=4 的体力,按照登山路线 0 → 3 → 0 需要消耗体力12 。攀登者至少需要 12 以上的体力(大于 12 )才能安全返回。
第一行输入为地图一维数组
第二行输入为攀登者的体力
确保可以安全返回地面,且无生命危险的情况下,地图中有多少山峰可以攀登。
输入
0,1,4,3,1,0,0,1,2,3,1,2,1,0
13
输出
3
说明
登山者只能登上位置 10 和 12 的山峰,7 → 10 → 7,14 → 12 → 14
输入
1,4,3
999
输出
0
说明
没有合适的起点和终点