#S01022. Marble Race

Marble Race

题目描述

弹珠比赛是一种有趣的弹珠玩法,今天你想试试吗?

在 xx 轴的负半轴上有 nn 个起点,其中 ii 个点位于 xix_i 。一共有 mm 个弹珠,其中 mm 是奇数, ii 个弹珠的速度为 viv_i 。在比赛中,每颗弹珠以相等的概率随机选择一个起点,不同的弹珠可以选择相同的起点。然后,所有弹珠同时开始向 xx 轴的正方向移动。假设 cic_i 是 ii-th弹珠选择的起点。在 tt 时刻, ii-th弹珠的坐标为 xci+vi⋅tx_{c_i} + v_i \cdot t 。

你是一个独特的弹珠竞赛爱好者,并不关心哪颗弹珠最快。相反,你想知道所有 mm 个弹珠坐标的中位数到达原点(即 x=0x = 0 )的确切时间。长度为 mm (其中 mm 为奇数)的序列的中位数定义为按升序排序时位于 m+12\frac{m+1}{2} 位置的元素(索引从 11 开始)。由于比赛尚未开始,起点也未确定,因此您感兴趣的是这一时间的预期值。为避免浮点错误,只需输出结果取模 109+710^9+7 (详见输出格式)。

输入格式

输入

第一行包含两个正整数 nn 和 mm ( 1≤n,m≤5001 \leq n, m \le 500 和 mm 为奇数),分别代表起始点数和弹珠数。

第二行包含 nn 个整数 x1,x2,…,xnx_1, x_2, \ldots, x_n ( −109≤xi≤0-10^9 \leq x_i \leq 0 ),代表每个起点的坐标。保证所有 xix_i 都是不同的。

第三行包含 mm 个整数 v1,v2,…,vmv_1, v_2, \ldots, v_m ( 1≤vi≤1091 \le v_i \le 10^9 ),表示每个弹珠的速度。

输出格式

输出

输出一个整数,表示预期时间取模 109+710^9+7 。

形式上,让 M=109+7M=10^9+7 。可以证明答案可以用不可约分数 pq\frac p q 表示,其中 pp 和 qq 是整数,而 q≢0(modM)q \not\equiv 0\pmod M 是不可约分数。输出等于 p⋅q−1(modM)p\cdot q^{-1}\pmod M 的整数,其中 q−1q^{-1} 表示 qq modulo MM 的模乘逆。换句话说,输出这样一个整数 xx 即 0≤xM0 \leq x_M 和 x⋅q≡p(modM)x\cdot q\equiv p\pmod M 。可以证明正好有一个 xx 符合条件。

2 3
-4 -5
1 2 3
250000004
3 3
-4 -5 -6
1 2 3
500000006
5 5
-4 -5 -6 -10 -2
1 2 3 2 4
434986672

解释 #1

注

在第一个例子中,三个弹珠的速度分别为 1,2,31, 2, 3 。考虑三个弹珠的初始位置:

  • −4,−4,−4-4, -4, -4 :在 t=2t=2 处,三颗弹珠的坐标为 −2,0,2-2, 0, 2 ,中值位于原点。
  • −4,−4,−5-4, -4, -5 :在 t=2t=2 处,坐标为 −2,0,1-2, 0, 1 ,中位数位于原点。
  • −4,−5,−4-4, -5, -4 :在 t=2.5t=2.5 处,坐标为 −1.5,0,3.5-1.5, 0, 3.5 ,中值位于原点。
  • 对于 (−4,−5,−5)(-4, -5, -5) 、 (−5,−4,−4)(-5, -4, -4) 、 (−5,−4,−5)(-5, -4, -5) 、 (−5,−5,−4)(-5, -5, -4) 、 (−5,−5,−5)(-5, -5, -5) ,中值分别在 t=2.5t=2.5 、 t=2t=2 、 t=2t=2 、 t=2.5t=2.5 、 t=2.5t=2.5 时位于原点。

综上所述,预计时间为 $\frac{2 + 2 + 2.5 + 2.5 + 2 + 2 + 2.5 + 2.5}{8} = \frac{9}{4}$ ,因此需要输出 9⋅4−1 mod (109+7)=2500000049 \cdot 4^{-1} \bmod (10^9+7) = 250000004 。