101595: [AtCoder]ABC159 F - Knapsack for All Segments

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $600$ points

Problem Statement

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\leq L \leq R \leq 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 \leq x_1 < x_2 < \cdots < x_k \leq 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\leq L \leq R\leq N$. Since this sum can be enormous, print it modulo $998244353$.

Constraints

  • All values in input are integers.
  • $1 \leq N \leq 3000$
  • $1 \leq S \leq 3000$
  • $1 \leq A_i \leq 3000$

Input

Input is given from Standard Input in the following format:

$N$ $S$
$A_1$ $A_2$ $...$ $A_N$

Output

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


Sample Input 1

3 4
2 2 4

Sample Output 1

5

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)$)

Sample Input 2

5 8
9 9 9 9 9

Sample Output 2

0

Sample Input 3

10 10
3 1 4 1 5 9 2 6 5 3

Sample Output 3

152

Input

题意翻译

给定一个长度为 $N$ 的正整数序列 $A$。 定义 $f(L, R)$ 表示 $A$ 从 $L$ 位置到 $R$ 位置这一子串,有多少子序列的和等于 $S$。 求所有 $f(L, R)$ 的和。

加入题单

算法标签: