E1. Again Counting Arrays (Easy Version) 再次统计数组(简单版)
时间限制:5 秒
内存限制:512 兆字节
这是该题的简单版本。两个版本的区别在于对 n,m,b0 的限制以及时间限制。只有当两个版本都通过时,你才能进行 hack 操作。
小 R 之前统计过许多集合,现在她决定来统计数组。
小 R 认为一个由非负整数构成的数组 b0,…,bn 是连续的,当且仅当对于每个满足 1≤i≤n 的 i,都满足 ∣bi−bi−1∣=1。她喜欢连续性,所以她只想生成连续数组。
如果给小 R 一个 b0 和数组 a1,…,an,她会尝试生成一个非负的连续数组 b,并且这个数组 b 与 a 没有任何相似之处。形式化地说,对于所有 1≤i≤n,都满足 ai=bi。
然而,小 R 并没有数组 a。相反,她给了你 n,m,b0。
她想要统计不同的数组 a1,…,an 的数量,满足以下条件:
- 1≤ai≤m;
- 至少存在一个非负的连续数组 b0,…,bn 可以被生成。
注意:bi≥0,但是 bi 可以任意大。
由于答案可能非常大,请将答案对 998244353 取模后输出。
输入格式
每个测试包含多组数据。
第一行包含测试用例数 t(1≤t≤104)。
每组测试用例仅一行,包含三个整数 n,m,b0:
- 1≤n≤2⋅105:数组 a1,…,an 的长度。
- 1≤m≤2⋅105:数组 a 中元素的最大值。
- 0≤b0≤2⋅105:数组 b 的初始值。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
对于每组测试用例,输出一行一个整数,表示合法数组 a1,…,an 的数量,对 998244353 取模。
样例输入
6
3 2 1
5 5 3
13 4 1
100 6 7
100 11 3
1000 424 132
样例输出
6
3120
59982228
943484039
644081522
501350342
样例说明
在第一个测试用例中:
- 例如,当 a=[1,2,1] 时,我们可以取 b=[1,0,1,0]。
- 例如,当 a=[1,1,2] 时,我们可以取 b=[1,2,3,4]。
总共有 6 个合法的 a 数组。事实上,可以证明只有 a=[2,1,1] 和 a=[2,1,2] 这两个数组无法构造出合法的非负连续数组 b,所以答案是 23−2=6。