#1570. 最长波动子序列

最长波动子序列

题目描述

给定一个整数序列 a1,a2,,ana_1, a_2, \ldots, a_n 和一个整数 mm,你需要找到一个最长的子序列,使得子序列中任意两个相邻的数的差的绝对值不超过 mm,并且大于0。

输入格式

  • 第一行包含两个整数 nnmm,分别表示序列的长度和允许的最大波动值。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n,表示序列中的元素。

输出格式

  • 输出一个整数,表示最长波动子序列的长度。

样例

样例输入

8 3
1 3 7 2 6 9 6 6

样例输出

5

数据范围与提示

  • 1n50001 \leq n \leq 5000
  • 1m10001 \leq m \leq 1000
  • 5106ai5106-5*10^6 \leq a_i \leq 5*10^6

给定的序列为 [1, 3, 7, 2, 6, 9, 6, 6],允许的最大波动值为3。

序列中相邻元素的差的绝对值必须小于或等于3,且大于0。

我们需要找到最长的子序列,满足上述条件。 在这个序列中,一个可能的最长波动子序列是

[1, 3, 6, 9, 6]

其长度为5。这个子序列满足条件,因此,输出为5,表示最长的满足条件的子序列的长度。