#abc151e. [abc151_e]Max-Min Sums

[abc151_e]Max-Min Sums

题目描述

对于一个由整数构成的有限集合 XX,定义 f(X)=maxXminXf(X)=\\max X - \\min X

给定 NN 个整数 A1,...,ANA_1,...,A_N

我们将选择其中的 KK 个整数,并将选中的整数构成一个集合 SS。即使两个整数的值相同,只要它们的索引不同,我们也将区分它们。从而,这个选择有 NCK{}_N C_K 种可能。求所有这些可能中 f(S)f(S) 的和。

由于答案可能非常大,将其打印为 bmod(109+7)\\bmod (10^9+7) 的结果。

约束条件

  • 1leqNleq1051 \\leq N \\leq 10^5
  • 1leqKleqN1 \\leq K \\leq N
  • Aileq109|A_i| \\leq 10^9

输入

从标准输入读入数据,格式如下:

NN KK A1A_1 ...... ANA_N

输出

打印出 bmod(109+7)\\bmod (10^9+7) 后的答案。


示例输入 1

4 2
1 1 3 4

示例输出 1

11

选择 SS 有六种可能:$\\{1,1\\},\\{1,3\\},\\{1,4\\},\\{1,3\\},\\{1,4\\}, \\{3,4\\}$(我们区分了两个 11)。这些选择对应的 f(S)f(S) 的值分别为 0,2,3,2,3,10,2,3,2,3,1,因此答案为 1111


示例输入 2

6 3
10 10 10 -10 -10 -10

示例输出 2

360

选择 SS2020 种可能。其中 1818 种情况下 f(S)=20f(S)=20,而另外 22 种情况下 f(S)=0f(S)=0


示例输入 3

3 1
1 1 1

示例输出 3

0

示例输入 4

10 6
1000000000 1000000000 1000000000 1000000000 1000000000 0 0 0 0 0

示例输出 4

999998537

将结果打印为 bmod(109+7)\\bmod (10^9+7)