#AT1304. 所有子序列背包问题

所有子序列背包问题

题目描述

给定一个长度为NN的整数序列 A1,A2,..ANA_1,A_2,.. A_N 和一个正整数SS

对于一个整数对(L,R)(L,R),满足1LRN1 ≤ L≤ R≤ N,定义f(L,R)f(L,R)如下:

f(L,R)f(L,R)是满足条件Lx1<x2<...<xk<R L \leq x_1 <x_2<...<x_k <RAx1+Ax2+Ax3+...+Axk=SA_{x1}+A_{x2}+A_{x3}+...+A_{xk}=S的整数序列(x1,x2....xk)(x_1,x_2....x_k)的数量。

求所有满足1LRN1\leq L \leq R \leq N的整数对(L,R)(L,R)f(L,R)f(L,R)的总和。由于这个总和可能很大,对998244353取模后输出。

输入

第一行输入两个整数N,SN,S

第二行一个NN个整数的序列AA

输出

输出f(L,R)f(L,R)的总和,对998244353取模

输出

3 4
2 2 4
5

样例解释

f(L,R)f(L,R)的值如下,总和为5。

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

5 8
9 9 9 9 9
0
10 10
3 1 4 1 5 9 2 6 5 3
152

提示

  • 输入都是整数
  • 1  N  3000 1\ \leq\ N\ \leq\ 3000
  • 1  S  3000 1\ \leq\ S\ \leq\ 3000
  • 1  Ai  3000 1\ \leq\ A_i\ \leq\ 3000