#4709. frog2

frog2

问题描述

N N 个石头,编号为 1,2,,N 1, 2, \ldots, N 。对于每个 i i (1iN 1 \leq i \leq N ),石头 i i 的高度是 hi h_i

最初,青蛙在石头 1 1 上。青蛙将重复以下动作,以到达石头 N N

  • 当青蛙在石头 i i 上时,可以跳到石头 i+1,i+2,,i+K i+1, i+2, \ldots, i+K 中的任意一个。此时,跳到石头 j j 的成本为 hihj |h_i - h_j|

请计算青蛙到达石头 N N 之前支付的成本总和的最小值。

约束条件

  • 输入均为整数。
  • 2N105 2 \leq N \leq 10^5
  • 1K100 1 \leq K \leq 100
  • 1hi104 1 \leq h_i \leq 10^4

输入

输入格式如下,从标准输入中给出:

N KN\space K

h1 h2  hNh_1 \ h_2\ …\ h_N

输出

输出青蛙支付的成本总和的最小值。

输入示例 1

5 3
10 30 40 50 20

输出示例 1

30

如果按照路径 125 1 \rightarrow 2 \rightarrow 5 移动,成本总和为 1030+3020=30 |10 - 30| + |30 - 20| = 30

输入示例 2

3 1
10 20 10

输出示例 2

20

如果按照路径 123 1 \rightarrow 2 \rightarrow 3 移动,成本总和为 1020+2010=20 |10 - 20| + |20 - 10| = 20

输入示例 3

2 100
10 10

输出示例 3

0

如果按照路径 12 1 \rightarrow 2 移动,成本总和为 1010=0 |10 - 10| = 0

输入示例 4

10 4
40 10 20 70 80 10 20 70 80 60

输出示例 4

40

如果按照路径 14810 1 \rightarrow 4 \rightarrow 8 \rightarrow 10 移动,成本总和为 4070+7070+7060=40 |40 - 70| + |70 - 70| + |70 - 60| = 40