1.5 KiB
1.5 KiB
跳跳乐
by 陈宇豪
时间限制: 2000 ms 内存限制: 1500 KB
问题描述
有一系列相邻的台阶,每级台阶具有不同的高度,台阶间的水平距离相等,如图所示
有一只青蛙在不同台阶之间跳跃,设青蛙可以跳跃的最长水平距离为K个台阶,最大的垂直距离为H(需要注意的是,为简化问题,垂直距离只需考虑跳跃起点和终点的高度差,不需要考虑途中经过的台阶高度和起点的高度差),以上图为例,若K=5,H=2,则青蛙可以从当前位置跳跃到编号为{0, 3, 6}的三个台阶,因为这三个台阶与当前台阶的水平距离均不大于5,且垂直距离的绝对值分别为{2, 1, 1},均不大于2。
现在总共有M个连续台阶,并给定每个台阶的高度,试求青蛙一共可能在多少对台阶间跳跃?
输入格式
输入为两行
第一行为三个整数,分别为台阶数量M,青蛙可以跳跃的最长水平距离K,可以跳跃的最大垂直距离H
第二行为M个整数,依次为各个台阶的高度
输出格式
输出为一个整数,为青蛙可以跳跃的台阶对数
输入样例
9 5 2
6 8 5 7 4 3 9 2 10
输出样例
14
// 可跳跃的台阶对编号分别为(0, 1), (0, 2), (0, 3), (0, 4), (1, 3), (1, 6), (2, 3), (2, 4), (2, 5), (3, 6), (4, 5), (4, 7), (5, 7), (6, 8)
提示
输入数据范围:
M<1×10^5,K<5×10^4,H<2^31,每级台阶的高度也小于2^31
相邻两个台阶间的水平距离均相等且值为1,任意两个台阶的高度均不相等