1501.Knapsack for All Segments

Time Limit: 1s Memory Limit: 256MB

Given are a sequence of $N$ integers $A_1, A_2, \ldots, A_N$ and a positive integer $S$.

For a pair of integers $(L,R)$ such that $1 \le L \le R \le N$, let us define $f(L,R)$ as follows:

  • $f(L, R)$ is the number of sequences of integers $(x_1, x_2, \ldots, x_k)$ such that $L \le x_1 < x_2 < \cdots < x_k \le R$ and $A_{x_1} + A_{x_2} + \cdots + A_{x_k} = S$.

Find the sum of $f(L,R)$ over all pairs of integers $(L,R)$ such that $1 \le L \le R \le N$. Since this sum can be enormous, print it modulo $998244353$.

Input Format(From the terminal/stdin)

The first line contains two integers $N$, $S$.

The second line contains $N$ integers $A_1, A_2, \ldots, A_N$.

$1 \le N, S, A_i \le 3000$.

Output Format(To the terminal/stdout)

Print the sum of $f(L,R)$, modulo $998244353$.

Sample Input

Copy
3 4
2 2 4
 · \n
 · · \n

Sample Output

Copy
5
 \n

Hints

For the first example:

The value of $f(L,R)$ for each pair is as follows, for a total of $5$.

  • $f(1,1)=0$

  • $f(1,2)=1$ (for the sequence $(1,2)$)

  • $f(1,3)=2$ (for $(1,2)$ and $(3)$)

  • $f(2,2)=0$

  • $f(2,3)=1$ (for $(3)$)

  • $f(3,3)=1$ (for $(3)$)

Source: The 2024 Hunan University Programming Contest

Submit

请先 登录

© 2025 FAQs