#CF1809G. 比赛结果预测

比赛结果预测

比赛结果预测

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

有 nn 名参赛者,第 ii 名参赛者的评分为 aia_i。组织者会把参赛者按某个排列 p1,p2,…,pnp_1,p_2,\ldots,p_n 编号,然后依次比赛:第一场由 p1p_1 与 p2p_2 进行,此后每场由上一场的胜者与下一名参赛者比赛。

当双方评分分别为 x,yx,y 且 ∣x−y∣>k|x-y|>k 时,评分较高者一定获胜;当 ∣x−y∣≤k|x-y|\le k 时,双方都有可能获胜。

在全部 n!n! 个参赛者排列中,求能在赛前确定每一场比赛胜者的排列数量。答案对 998244353998244353 取模。

输入格式

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

第二行 nn 个非降排列的整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

输出一个整数,表示合法排列数对 998244353998244353 取模的结果。

样例输入 1

4 3
7 12 17 21

样例输出 1

24

样例输入 2

3 7
4 9 28

样例输出 2

4

数据范围

2≤n≤1062\le n\le 10^6,0≤k≤1090\le k\le 10^9,0≤a1≤a2≤⋯≤an≤1090\le a_1\le a_2\le\cdots\le a_n\le 10^9。

子任务编号 分值 特殊限制
1 30 n≤9n\le 9
2 n≤5000n\le 5000
3 40 无特殊限制

每个测试点独立计分。