#P1830. Frog.2

Frog.2

题目描述

N 个石头,编号为 1, 2, ..., N。对于每个 i ( 1 <= i <= N ),石头 i 的高度为 hih_i 。最初有一只青蛙在石头 1 上。他将重复几次以下操作以到达石头 N:

如果青蛙当前在石头 i 上,则可以跳到石头 i+1 , i+2 , ... , i+k 。当青蛙从石头 i 跳到石头 j 时,需要 |hihjh_i-h_j| 的费用。

找到青蛙到达石头 N 需要的最小总费用。

输入格式

第一行输入一个数 N 。

第二行输入 N 个数,分别为第 i 个石头的高度 hih_i

数据范围

2 <= N <= 10510^5

1 <= k <= 100

1 <= hih_i <= 10410^4

输出格式

一个整数,即青蛙到达石头 N 需要的最小总费用。

样例

5 3
10 30 40 50 20
30
3 1
10 20 10
20
2 100
10 10
0
10 4
40 10 20 70 80 10 20 70 80 60
40

样例解释

样例 1 :移动的步骤为 1 -> 2 -> 5,总代价为 |10-30| + |30-20| = 30

样例 2 :移动的步骤为 1 -> 2 -> 3 ,总代价为 |10-20| + |20-10| = 20

样例 3 :移动的步骤为 1 -> 2 ,总代价为 |10-10| = 0

样例 4 :移动的步骤为 1 -> 4 -> 8 -> 10 ,总代价为 |40-70| + |70-70| + |70-60| = 40