atcoder#ABC151E. [ABC151E] Max-Min Sums

[ABC151E] Max-Min Sums

配点 : 500500

問題文

有限個の整数からなる集合 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) の合計を求めてください。

答えは非常に大きくなる可能性があるので、mod109+7\bmod 10^9+7 で出力してください。

制約

  • 1N1051 \leq N \leq 10^5
  • 1KN1 \leq K \leq N
  • Ai109|A_i| \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN KK

A1A_1 ...... ANA_N

出力

答えを mod109+7\bmod 10^9+7 で出力せよ。

4 2
1 1 3 4
11

SS の選び方は {1,1},{1,3},{1,4},{1,3},{1,4},{3,4}\{1,1\},\{1,3\},\{1,4\},\{1,3\},\{1,4\},\{3,4\}66 通りあり (ふたつの 11 は区別します)、f(S)f(S) はそれぞれ 0,2,3,2,3,10,2,3,2,3,1 となるので、合計は 1111 です。

6 3
10 10 10 -10 -10 -10
360

SS の選び方は 2020 通りあり、そのうち 1818 通りで f(S)=20f(S)=2022 通りで f(S)=0f(S)=0 となります。

3 1
1 1 1
0
10 6
1000000000 1000000000 1000000000 1000000000 1000000000 0 0 0 0 0
999998537

合計は mod109+7\bmod 10^9+7 で出力してください。