D. [R43D]序列(Hard ver.)

    Type: Default 1000ms 512MiB

[R43D]序列(Hard ver.)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

时空限制

1S/512M

题目描述

给定一个长度为 mm 的序列 bb,我们称 bb 是“好序列”,当且仅当序列的极差不超过一个常数 kk,即:

maxi=1mbimini=1mbik\max_{i=1}^m b_i - \min_{i=1}^m b_i \le k

其中,符号 maxi=1mbi\max_{i=1}^m b_i 表示序列 bbmm 个元素的最大值,mini=1mbi\min_{i=1}^m b_i 表示序列 bbmm 个元素的最小值。

现在给定一个长度为 nn 的序列 aa,你需要求出 aa 有多少个非空子序列是“好序列”。

由于答案可能很大,请你对 998244353998244353 取模后输出。

注:一个序列 xx 是另一个序列 yy 的子序列,当且仅当 xx 可以通过 yy 删除零个或若干个元素(保持剩余元素相对顺序不变)得到。

格式

输入格式

第一行包含两个整数 n,kn, k,分别表示序列的长度和题目描述中的常数 kk

第二行包含 nn 个整数,第 ii 个数表示 aia_i

输出格式

输出一行一个整数,表示“好序列”子序列的数量模 998244353998244353 的结果。

样例

样例输入 #1

4 3
4 2 6 8

样例输出 #1

7

样例解释 #1

原序列为 {4,2,6,8}\{4, 2, 6, 8\},满足条件的子序列如下:

  • 长度为 11{4},{2},{6},{8}\{4\}, \{2\}, \{6\}, \{8\}(极差均为 00),共 44 个。
  • 长度为 22
    • {4,2}\{4, 2\}:极差 42=23|4-2|=2 \le 3,合法。
    • {4,6}\{4, 6\}:极差 46=23|4-6|=2 \le 3,合法。
    • {6,8}\{6, 8\}:极差 68=23|6-8|=2 \le 3,合法。
    • 其他如 {2,8}\{2, 8\} 极差为 66{2,6} \{2, 6\} 极差为 44 等均不合法。
  • 长度 3\ge 3:无合法子序列。 总计 4+3=74 + 3 = 7 个。

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 nn\le 特殊限制
11 2020 2020
22 2020 400400 k,ai400k, a_i \le 400
33 2020 50005000
44 4040 10610^6

对于 100%100\% 的数据,1n1061 \le n \le 10^61k,ai1091 \le k, a_i \le 10^9

代码源挑战赛 Round 43

Not Attended
Status
Done
Rule
DMY
Start at
2025-12-26 20:00
End at
2025-12-26 21:30
Duration
1.5 hour(s)
Host
Partic.
407