#ATarc149e. [ARC149E] Sliding Window Sort

[ARC149E] Sliding Window Sort

题目描述

给定正整数 NNMMKK。考虑对正整数序列 A=(A0,,AN1)A = (A_0, \ldots, A_{N-1}) 进行如下操作:

  • 按照 k=0,1,,K1k = 0, 1, \ldots, K-1 的顺序,依次进行以下操作:
    • 将 $A\_{k\bmod N},\ A\_{(k+1)\bmod N},\ \ldots,\ A\_{(k+M-1)\bmod N}$ 升序排序。也就是说,将 $A\_{k\bmod N},\ A\_{(k+1)\bmod N},\ \ldots,\ A\_{(k+M-1)\bmod N}$ 按从小到大排列为 (x0,,xM1)(x_0, \ldots, x_{M-1}) 时,对于每个 0j<M0 \leq j < M,用 xjx_j 替换 A(k+j)modNA_{(k+j)\bmod N}

给定一个由 11NN 之间的整数构成的排列 B=(B0,,BN1)B = (B_0, \ldots, B_{N-1})。请你计算有多少个正整数序列 AA,使得经过上述操作后,AA 恰好变为 BB。请将答案对 998244353998244353 取模后输出。

输入格式

输入以如下格式从标准输入读入:

NN MM KK B0B_0 B1B_1 \ldots BN1B_{N-1}

输出格式

输出满足条件的正整数序列 AA 的个数,对 998244353998244353 取模后的结果。

样例 1

输入

6 3 5
6 4 2 3 1 5

输出

18

样例 2

输入

6 3 5
6 5 4 3 2 1

输出

0

样例 3

输入

20 20 149
13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12

输出

401576539

说明/提示

限制条件

  • 2N3×1052 \leq N \leq 3 \times 10^5
  • 2MN2 \leq M \leq N
  • 1K1091 \leq K \leq 10^9
  • 1BiN1 \leq B_i \leq N
  • 如果 iji \neq j,则 BiBjB_i \neq B_j

样例解释 1

例如 A=(4,1,5,6,2,3)A = (4,1,5,6,2,3) 满足条件。对于该 AA,操作过程如下:

  • k=0k=0 时,AA 变为 (1,4,5,6,2,3)(1,4,5,6,2,3)
  • k=1k=1 时,AA 变为 (1,4,5,6,2,3)(1,4,5,6,2,3)
  • k=2k=2 时,AA 变为 (1,4,2,5,6,3)(1,4,2,5,6,3)
  • k=3k=3 时,AA 变为 (1,4,2,3,5,6)(1,4,2,3,5,6)
  • k=4k=4 时,AA 变为 (6,4,2,3,1,5)(6,4,2,3,1,5),与 BB 一致。

样例解释 2

不存在满足条件的 AA

样例解释 3

所有由 112020 组成的排列都满足条件。

由 ChatGPT 4.1 翻译