#P1119. 芯片测试

芯片测试

题目描述

实验室里有 NN 个芯片,每个芯片都有一个互不相同的信号编号 SiS_i。现在需要把这些芯片排成一行进行测试。

为了避免相邻芯片之间互相干扰,任意两个相邻位置上的芯片编号差的绝对值必须严格大于 KK

请计算一共有多少种排列顺序满足这个限制。

输入格式

第一行输入两个整数 N,KN,K

第二行输入 NN 个互不相同的整数 S1,S2,,SNS_1,S_2,\ldots,S_N,表示每个芯片的编号。

输出格式

输出一个整数,表示合法排列的数量。

样例

4 2
1 4 7 10
24

样例说明

任意两个编号的差都大于 22,所以 44 个芯片的所有排列都合法,答案为 4!=244!=24

数据范围

  • 对于 50%50\% 的数据,N8N\le 8
  • 对于 100%100\% 的数据,4N164\le N\le 161K34001\le K\le 34001Si250001\le S_i\le 25000,且所有 SiS_i 两两不同。