编程题
### 问题描述
小王是一个爱好算法的程序员,他正在设计一个游戏的核心功能,该功能需要在游戏角色的属性之间进行匹配,使得玩家可以获取到最佳的游戏体验。具体来说,在游戏中,每个角色都有多个属性,如攻击力、防御力、速度等等。为了让玩家在游戏中有更好的战斗体验,小王希望通过一种算法,找出所有属性之间满足一定条件的最佳组合方案。其中一个条件就是,任意两个属性之间的差的绝对值不超过 $d$。
现在,小王需要你的帮助设计这个算法。具体来说,给定一个长度为 $n$ 的正整数数组,你需要从中找出若干个数组成一个子集,使得子集中任意两个数的差的绝对值不超过 $d$,最后输出最长子集的长度。解决这个问题对小王开发游戏来说非常重要,因为它会直接影响到玩家的游戏体验。
### 输入格式
第一行为两个正整数 $n$ 和 $d$,表示数组的长度和两个元素的差值。
第二行为 $n$ 个用空格隔开的正整数 $a_i$,表示数组的元素。
### 输出格式
输出一个整数,表示最长子集的长度。
### 样例输入
```text
5 1
1 2 3 2 1
```
### 样例输出
```text
4
```
### 评测数据规模
对于所有测评数据,$0\lt n \le 10^5$,$0\le d \le 10^2$,$0\le a_i \le 10^5$。