P0792

[Usaco2008 Nov]mixup2 混乱的奶牛

[Usaco2008 Nov]mixup2 混乱的奶牛

(Don Piele,20072007)

Farmer John 有 NN 头奶牛,每头奶牛都有一个互不相同的编号 SiS_i。奶牛们为自己的编号感到骄傲,因此每头奶牛都将编号刻在金牌上,并把金牌挂在脖子上。

奶牛们不喜欢在挤奶时排成普通的队伍。如果队伍中任意两头相邻奶牛的编号之差的绝对值都超过 KK,那么这个队伍就称为“混乱”的队伍。

例如,当 N=6N=6、K=1K=1 时,排列 1,3,5,2,6,41,3,5,2,6,4 是一个“混乱”的队伍,而排列 1,3,6,5,2,41,3,6,5,2,4 不是,因为编号 55 和 66 只相差 11。

请计算将所有奶牛排成“混乱”队伍的方案数。

输入格式

第一行包含两个用空格分隔的整数 NN 和 KK。

接下来的 NN 行中,第 ii 行包含一个整数 SiS_i,表示第 ii 头奶牛的编号。

输出格式

输出一个整数,表示将所有奶牛排成“混乱”队伍的方案数。

答案保证在 6464 位整数的表示范围内。

样例输入

4 1
3
4
2
1

样例输出

2

样例解释

两种符合要求的排列分别为:

  • 3,1,4,23,1,4,2;
  • 2,4,1,32,4,1,3。

数据范围

  • 4≤N≤164\le N\le 16;
  • 1≤K≤34001\le K\le 3400;
  • 1≤Si≤2.5×1041\le S_i\le 2.5\times 10^4;
  • 所有奶牛的编号 SiS_i 互不相同。

来源与许可

本题为 USACO 2008 November 试题「混乱的奶牛」,题面与测试数据整理自 BZOJ。

样例 1

输入

4 1
3
4
2
1

输出

2