#dpb. [dp_b]Frog 2

[dp_b]Frog 2

题目描述

NN 块石头,编号为 1,2,,N1, 2, \ldots, N。对于每个 ii (1iN1 \leq i \leq N),第 ii 块石头的高度为 hih_i

有一只青蛙最初在石头 11 上。它将重复执行以下操作,直到达到石头 NN

  • 如果青蛙当前在石头 ii 上,它可以跳到石头 i+1,i+2,,i+Ki+1, i+2, \ldots, i+K 中的任意一个。跳跃的代价是 hihj|h_i - h_j|,其中 jj 是要跳到的石头。

找出青蛙到达石头 NN 之前可能产生的最小总代价。

约束条件

  • 输入中的所有值均为整数。
  • 2N1052 \leq N \leq 10^5
  • 1K1001 \leq K \leq 100
  • 1hi1041 \leq h_i \leq 10^4

输入

输入将从标准输入读取,并具有以下格式:

NN KK h1h_1 h2h_2 \ldots hNh_N

输出

请打印可能产生的最小总代价。


示例输入1

5 3
10 30 40 50 20

示例输出1

30

如果我们按照路径 112255,总代价为 1030+3020=30|10 - 30| + |30 - 20| = 30


示例输入2

3 1
10 20 10

示例输出2

20

如果我们按照路径 112233,总代价为 1020+2010=20|10 - 20| + |20 - 10| = 20


示例输入3

2 100
10 10

示例输出3

0

如果我们按照路径 1122,总代价为 1010=0|10 - 10| = 0


示例输入4

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

示例输出4

40

如果我们按照路径 1144881010,总代价为 4070+7070+7060=40|40 - 70| + |70 - 70| + |70 - 60| = 40