AT_stpc2025_2_b Heavy Rotation
题目描述
有 $N$ 个编号为 $1,2,\ldots,N$ 的行李从左到右排成一列。最初,第 $i$ 个行李放在从左数第 $i$ 个位置。每个行李都有一个重量,第 $i$ 个行李的重量为 $A_i$。
你可以对这排行李进行如下操作,操作次数可以是 $0$ 次或任意多次:
1. 任选一组整数 $(L, R)$ 满足 $1 \leq L < R \leq N$,且从左到右第 $L$ 至第 $R$ 个行李的重量和不少于 $K$。
2. 将从左到右第 $L$ 到第 $R$ 个行李做一次向左的循环移位。即,原本在第 $L$ 个位置的行李会移动到第 $R$ 个位置,原本在第 $L+1, \ldots, R$ 个位置的行李分别依次移到第 $L, \ldots, R-1$ 个位置。
请输出所有操作结束后可能得到的行李排列的数量,对 $998244353$ 取模。
输入格式
输入格式如下:
> $N$ $K$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
请输出答案。
说明/提示
### 样例解释 1
最初,从左到右第 $2, 3, 4$ 个行李重量之和为 $2+2+3=7 \geq K=7$,因此可以将 $(L,R)=(2,4)$ 作为第一次操作。操作后,行李编号从左到右依次为 $1,3,4,2$。
所有操作结束后,可能得到的排列有 $12$ 种。
注意:即使行李重量相同,编号不同的行李也被视为不同的行李。在本例中,编号依次为 $1,2,3,4$ 和 $1,3,2,4$ 的排列被认为是两种不同的排列。
### 样例解释 2
有时可能一次操作都无法进行。
### 样例解释 3
请输出对 $998244353$ 取模的答案。
### 数据范围
- 所有输入均为整数
- $2 \leq N \leq 2 \times 10^5$
- $1 \leq K \leq 10^{14}$
- $1 \leq A_i \leq 10^8$
由 ChatGPT 5 翻译