选数字
题号:NC25660
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述


给一个长为 n 的序列 ,从中等概率选出 k 个下标不同的数字,求最小值的期望值。 
不难发现期望值乘以之后是一个整数,你只需要输出这个整数对 1000000007 取模后的结果。 
这里表示从 n 个数中无序选出 k 个数的方案数,也就是组合数。



输入描述:

第一行是一个正整数,表示测试数据的组数,
对于每组测试数据, 
第一行是两个正整数 ,分别表示序列长度以及选出的数字个数。  
第二行包含n个整数


输出描述:

对于每组测试数据,输出一行,包含一个整数,表示期望值乘以之后对 1000000007 取模的结果。  
示例1

输入

复制
1 
5 2 
1 2 3 4 5

输出

复制
20