U182074 排序
题目描述
梁老师家的狗豆豆,刚刚学会了使用 `sort` 函数对一个数组进行从小到大的排序。它非常高兴,于是找到了它的朋友小野和花卷,三只狗想一起玩排序的游戏。他们各自想出了 $N$ 个整数,想把大家的整数放在一起,从小到大排好,再选出前 $M$ 个。它们想考考梁老师,看看梁老师会不会,聪明的梁老师显然是不会的,于是他决定请你帮帮忙。
因为 $N$ 太大了,输入比较慢,三只狗决定各自用一个一次函数来生成数据。定义 $f(x)=ax+b$,规定 $x$ 分别取 $1,2,3,...,N$ 的时候的函数值,就作为初始输出的那个数组里面的值。当然,三只狗的 $a$ 和 $b$ 不一定是相同的。
因为 $M$ 太大了,输出比较慢,三只狗决定不需要梁老师输出排好序以后的前 $M$ 个数字,只需输出这 $M$ 个数字的和除以 $10^9+7$ 的余数即可。
输入格式
第一行输入两个整数 $N$ 和 $M$,分别表示每组有多少个数字,以及要求出排完序以后的前 $M$ 个。
接下来 $3$ 行,每行两个整数 $a$ 和 $b$,表示每只狗分别选择的一次函数的参数。
输出格式
输出把这 $3 \times N$ 个数字从小到大排序以后,前 $M$ 个数字的和除以 $10^9+7$ 的余数。
说明/提示
样例解释:
第 $1$ 只狗选择的函数是 $f(x)=1 \times x+2$,它选择的三个数字是 $f(1)=3,f(2)=4,f(3)=5$。
第 $2$ 只狗选择的函数是 $f(x)=2 \times x+1$,它选择的三个数字是 $f(1)=3,f(2)=5,f(3)=7$。
第 $3$ 只狗选择的函数是 $f(x)=3 \times x+2$,它选择的三个数字是 $f(1)=5,f(2)=8,f(3)=11$。
所有数字排序完成以后是 $3,3,4,5,5,5,7,8,11$,前四个的和是15
数据范围:
对于30%的数据:
$1 \leq N,M,a,b \leq 10^3$
对于100%的数据:
$1 \leq N,M,a,b \leq 10^7$
$M \leq N \times 3$