#ABC159F. Knapsack for All Segments

Knapsack for All Segments

题目描述

Given are a sequence of NN integers A1A_1, A2A_2, \ldots, ANA_N and a positive integer SS.
For a pair of integers (L,R)(L, R) such that 1LRN1\leq L \leq R \leq N, let us define f(L,R)f(L, R) as follows:

  • f(L,R)f(L, R) is the number of sequences of integers (x1,x2,,xk)(x_1, x_2, \ldots , x_k) such that Lx1<x2<<xkRL \leq x_1 \lt x_2 \lt \cdots \lt x_k \leq R and Ax1+Ax2++Axk=SA_{x_1}+A_{x_2}+\cdots +A_{x_k} = S.

Find the sum of f(L,R)f(L, R) over all pairs of integers (L,R)(L, R) such that 1LRN1\leq L \leq R\leq N. Since this sum can be enormous, print it mod 998244353998244353.

给出一个由 NN 个整数 A1A_1 , A2A_2 , \ldots , ANA_N 和一个正整数 SS 组成的序列。
对于一对整数 (L,R)(L, R) ,即 1LRN1\leq L \leq R \leq N ,我们可以这样定义 f(L,R)f(L, R)

  • f(L,R)f(L, R)(x1,x2,,xk)(x_1, x_2, \ldots , x_k) 使得 Lx1<x2<<xkRL \leq x_1 \lt x_2 \lt \cdots \lt x_k \leq RAx1+Ax2++Axk=SA_{x_1}+A_{x_2}+\cdots +A_{x_k} = S 的整数序列的个数。

求所有一对整数 (L,R)(L, R)1LRN1\leq L \leq R\leq N 的总和 f(L,R)f(L, R) 。由于这个和可能很大,请打印出它的模数 998244353998244353

输入格式

输入内容按以下格式标准输入:

NN SS
A1A_1 A2A_2 ...... ANA_N

输出格式

打印 f(L,R)f(L, R) 的和,取模 998244353998244353

样例 #1

样例输入 #1

3 4
2 2 4

样例输出 #1

5

样例 #2

样例输入 #2

5 8
9 9 9 9 9

样例输出 #2

0

样例 #3

样例输入 #3

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

样例输出 #3

152

说明

数据规模与约定

  • 所有输入值均为整数。
  • 1N30001 \leq N \leq 3000
  • 1S30001 \leq S \leq 3000
  • 1Ai30001 \leq A_i \leq 3000

样例 11 解释

每一对的 f(L,R)f(L, R) 值如下,共计 55

  • f(1,1)=0f(1,1) = 0
  • f(1,2)=1f(1,2) = 1 (表示序列 (1,2)(1, 2) )。
  • f(1,3)=2f(1,3) = 2 (代表 (1,2)(1, 2)(3)(3) )。
  • f(2,2)=0f(2,2) = 0
  • f(2,3)=1f(2,3) = 1 (代表 (3)(3)
  • f(3,3)=1f(3,3) = 1 (代表 (3)(3)