#arc139d. [arc139_d]Priority Queue 2

[arc139_d]Priority Queue 2

题目描述

给定一个包含NN个元素的多重集合:A=lbraceA1,A2,...,ANrbraceA=\\lbrace A_1,A_2,...,A_N \\rbrace。保证AA中的每个元素都在11MM之间(包括11MM)。

我们将重复进行以下操作KK次。

  • 11MM(包括11MM)中选择一个整数,并将其添加到AA中。然后,删除AA中第XX小的值。

这里,AA中第XX小的值是AA中元素按非递减顺序排列后,从前往后的第XX个值。

在选择出的整数方式中,有MKM^K种方法进行KK次选择。假设我们已经找到了与这些选择对应的操作后AA中元素之和的总和。求计算的MKM^K个值对998244353998244353取模后的和。

约束条件

  • 1N,M,K20001 \le N,M,K \le 2000
  • 1XN+11 \le X \le N+1
  • 1AiM1 \le A_i \le M
  • 输入中的所有值都是整数。

输入

输入以标准格式给出,格式如下:

NN MM KK XX

A1A_1 A2A_2 \dots ANA_N

输出

输出答案。

示例输入1

2 4 2 1
1 3

示例输出1

99

我们从A=1,3A=\\{1,3\\}开始。以下是操作的一个示例。

  • 44添加到AA中,使得A=1,3,4A=\\{1,3,4\\}。然后,删除第11个最小值,使得A=3,4A=\\{3,4\\}

  • 33添加到AA中,使得A=3,3,4A=\\{3,3,4\\}。然后,删除第11个最小值,使得A=3,4A=\\{3,4\\}

在这种情况下,操作后AA中元素的和为3+4=73+4=7

示例输入2

5 9 6 3
3 7 1 9 9

示例输出2

15411789