1639. 计数排序2(使用C/C++)

计下标从 1 开始。有 n 个取值范围在 [1, 10^9] 的整数 a_ia_i 至多有 m 种不同的取值。请将它们升序排序,设排序后数组为 b 。为避免输出过长,请输出: \left(\sum_{i=1}^ni\cdot b_i\right)\bmod (10^9+7)

输入

输入一行两个整数 n,m(1\le n\le10^7,1\le m\le100)

接下来输入一行 n 个整数 a_i(1\le a_i\le 10^9)

输出

输出一个整数代表计算结果

样例

标准输入 复制文本
10 3
1 20 300 20 20 300 300 1 300 300
标准输出 复制文本
12243

提示

注意内存限制为 8MB

登录以提交代码。
单点时限 3 秒
内存限制 8 MB
提交 137
通过 39