给定一个长度为n的序列a,定义函数f(A)为序列A在从小到大排好序后第k个值。若∣A∣<k,则f(A)=0。求原序列a中所有子序列(不要求连续)的f值之和,对998244353取模。
输入包含多组测试数据。每组输入:
给定一个长度为n的序列a,小笨想知道a中所有长度不小于k的子序列(不要求连续)的第k小值之和,请你算一算吧。
更正式的 定义f(A)为序列A在从小到大排好序后第k个值,即Ak,求a中所有子序列的f值之和。
(特别的:如果A的长度不足k,则f(A)=0)
每个测试文件均包含多组测试数据。第一行输入一个整数 T(1≦T≤100)代表数据组数,每组 测试数据描述如下:
第一行两个正整数 n,k(1≦k≦n≦2×105),分别表示序列a的长度以及k。
第二行n 个正整数ai(1≦ai≦109),表示a。
除此之外,保证单个测试文件的n之和不超过2×105
对于每组测试数据:
在单独的一行输出一个整数,表示所有子序列f值之和。
(由于结果可能很大,因此输出结果对998244353取模的值。)
输入
2
6 3
1 2 3 4 5 6
3 1
2 2 2
输出
192
14
说明
对于第二组测试数据,{2,2,2}数组共有7个非空的子序列,所有子序列的f值都是2,因此输出 2×7=14