logo AlgoBeat OnlineJudge
登录 注册

#214882. [CCPC 2024 哈尔滨站] 弹珠赛跑

内存限制:1024 MiB 时间限制:5000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

弹珠赛跑是一种非常有趣的玩弹珠的方式,你今天也想尝试一下。

轴负半轴有 个起跑点位,第 个点位的坐标为 。总共有 个弹珠,其中 是奇数,第 个弹珠的移动速度为 。在一场比赛中,每一个弹珠都会等概率地随机选择一个起跑点位,不同的弹珠可以选到相同的点位。比赛开始时,所有弹珠同时出发,向 正半轴方向一直移动。令 为第 个弹珠选择的起跑点位编号,不难得出在时间为 时第 个弹珠的坐标为

你是个独特的弹珠爱好者,并不在乎哪个弹珠最快。你只想知道这 个弹珠的所有坐标的中位数恰好在原点(即 )的时间点。一个长度为奇数 的序列的中位数是从小到大排序后下标为 的数(下标从 开始)。由于赛跑还没开始,弹珠的起跑点位还没有确定,所以你想知道这个答案的数学期望。为了避免实数误差,你只需要输出这个答案在 模意义下的结果(详情见输出格式)。

输入格式

第一行两个正整数 (,且 为奇数),表示起跑点位个数和弹珠的个数。

第二行 个整数 (),表示每个起跑点位的坐标。保证所有 互不相同。

第三行 个整数 (),表示每个弹珠的移动速度。

输出格式

输出一行一个整数,表示答案的数学期望对 取模后的结果。

。可以证明,答案能够表示为最简分数 ,其中 是正整数且 。则你需要输出 表示 在模 意义下的乘法逆元。换句话说,输出满足 的整数 。可以证明,符合条件的 是唯一的。

样例

样例输入 1

2 3
-4 -5
1 2 3

样例输出 1

250000004

样例输入 2

3 3
-4 -5 -6
1 2 3

样例输出 2

500000006

样例输入 3

5 5
-4 -5 -6 -10 -2
1 2 3 2 4

样例输出 3

434986672

数据范围与提示

对于第一个样例,三个弹珠的速度分别为 ,考虑三个弹珠分别的初始坐标:

  • 的时候,三个弹珠的坐标分别为 ,中位数恰好在原点。
  • 的时候,三个弹珠的坐标分别为 ,中位数恰好在原点。
  • 的时候,三个弹珠的坐标分别为 ,中位数恰好在原点。
  • , , , , 的时候同理,中位数恰好在原点的时间分别为 , , , ,

综上,期望时间为 ,因此你需要输出