#P12890. 【NOIP Round #7】排列计数

【NOIP Round #7】排列计数

给定一个正整数序列 a1,a2,...,an(a1<a2<...<an)a_1,a_2,...,a_n(a_1 < a_2 < ... < a_n),序列中没有相同的元素。

求有多少个 1n1\sim n 的排列 p1,,pnp_1,\dots,p_n,满足对所有 1in11≤i≤n−1,有 apiapi+1k|a_{p_i} - a_{p_{i+1}}| \ne k,答案在模 998244353998244353 意义下输出。

输入格式

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

第二行 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

输出一行一个整数表示答案。

输入输出样例

4 1
1 2 3 4
2

样例解释 1

3,1,4,23,1,4,22,4,1,32,4,1,3 满足条件。

样例输入输出 2,3

见下发文件。

数据范围

对于所有数据,有:

  • 1n5×1031 \le n \le 5 \times 10^3
  • 1k1061 \le k \le 10^6
  • 1ai1091 \le a_i \le 10^9
子任务编号特殊性质分值
$1$$n \le 10$$20$
$2$$n \le 400$$30$
$3$$n \le 1000$$20$
$4$无特殊性质$30$

大样例