#1049. [USACO ] 混乱的奶牛

[USACO ] 混乱的奶牛

题目描述

约翰的 N(4N16)N(4≤N≤16) 头奶牛中的每一头都有一个唯一的编号 Si(1Si25000)S_i(1 ≤S_i≤25000)。奶牛为她们的编号感到骄傲,所以每一头奶牛都把她的编号刻在一个金牌上,并且把金牌挂在她们宽大的脖子上。 奶牛们对在挤奶的时候被排成一支“混乱”的队伍非常反感,如果一个队伍里任意两头相邻的奶牛的编号相差超过 K(1K3400)K(1≤K≤3400),它就被称为是混乱的,比如说,当 N=6,K=1N=6,K=1 时,(1,3,5,2,6,4)(1,3,5,2,6,4) 是一支“混乱”的队伍,但是 (1,3,6,5,2,4)(1,3,6,5,2,4) 不是(因为 5 和 6 只相差 1)。 那么,有多少种能够使奶牛排成“混乱”的队伍的方案呢?

输入输出格式

输入

第 1 行: 用空格隔开的两个整数 NNKK。 第 2 到 N+1N + 1 行:第 i+1i + 1 行包含了一个用来表示第 ii 头奶牛的编号的整数 SiS_i;

输出

只有一个整数,表示有多少种能够使奶牛排成“混乱”的队伍的方案。答案保证是一个在 64 位范围内的整数。

样例

输入1

4 1
3
4
2
1

输出1

2

解释1

两种方法分别是:(3,1,4,2),(2,4,1,3)。