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 翻译