#133. [KSC005C] 子序列

[KSC005C] 子序列

版权声明

本题版权归 Long Long OJ 所有。

题目描述

给定一个长度为 nn 的序列 a1,a2,…,ana_1,a_2,\ldots,a_n。寻找满足以下条件的 aa 的子序列 bb 的最长长度:bb 中最大值与 bb 中最小值的差小于等于给定的整数 kk。

序列 aa 的子序列指删除 aa 中若干个元素(可能是 00 个) 后重新把剩下的元素按原来的顺序排列得到的序列。一个序列有多个子序列。

输入格式

第一行两个正整数 n,kn,k。

第二行 nn 个整数 {an}\{a_n\}。

输出格式

一行一个正整数表示答案。

样例

5 12
60 10 33 46 21
2
5 100
18 -14 -114 19 -81
4

样例 1 解释

选出的最长子序列是 [10,21][10,21] 或 [21,33][21,33],长度都为 22。

样例 2 解释

选出的最长子序列是 [18,−14,19,−81][18,-14,19,-81],长度为 44。此外,aia_i 可能是负数。

数据范围

  • 对于 10%10\% 的数据,1≤n,ai≤101\le n,a_i \le 10。
  • 对于 20%20\% 的数据,1≤n≤201\le n\le 20。
  • 对于 55%55\% 的数据,1≤n≤50001\le n\le 5000。
  • 对于另外 5%5\% 的数据,ai≥1a_i\ge 1。
  • 对于 100%100\% 的数据,1≤n≤2×1051\le n\le 2\times 10^5,−109≤ai≤109-10^9 \le a_i \le 10^9,0≤k≤2×1090\le k\le 2 \times 10^9。