CF1845F Swimmers in the Pool
题目描述
有 $n$ 个游泳者在长度为 $l$ 的水池中游泳。每个游泳者从时刻 $0$ 出发且互不干涉。
每个游泳者遵循以下路线:第 $i$ 个游泳者从位置 $0$ 开始游泳,以恒定的速度 $v_i$(每个单位时刻移动 $v_i$ 个单位长度)游到位置 $l$,到达后立即以相同的速度返回到位置 $0$。回到位置 $0$ 之后,立即重复以上过程。
当水池中(可为 $0,l$ 或任意其他水池中的位置)至少有 $2$ 个游泳者在相同位置时,我们把该时刻称为“相遇时刻”。
水池会开放 $t$ 时刻。求在 $t$ 时刻内相遇时刻的数量。输出答案对 $10^9+7$ 取模的结果。
输入格式
输入文件共 $3$ 行。
输入第 $1$ 行,整数 $l,t$。
输入第 $2$ 行,整数 $n$。
输入第 $3$ 行,整数 $v_1,v_2,v_3,\dots,v_n$。保证 $v_i$ 两两不同。
输出格式
输出在 $t$ 时刻内相遇时刻的数量对 $10^9+7$ 取模的结果。
## 样例 \#1 解释
有 $3$ 个相遇时刻:
- 时刻 $6$,两个游泳者都在位置 $6$;
- 时刻 $12$,两个游泳者都在位置 $6$;
- 时刻 $18$,两个游泳者都在位置 $0$。
## 数据规模
对于 $100\%$ 的数据,$1 \le l,t \le 10^9$,$2 \le n \le 2 \times 10^5$,$1 \le v_i \le 2 \times 10^5$。其中 $i \in [1,n]$。
------------
译者:[$\color{#3498DB}{\textsf{\_Cppsteve\_}}$](https://www.luogu.com.cn/user/479296)
说明/提示
In the first example, there are three meeting moments:
- moment $ 6 $ , during which both swimmers are in the point $ 6 $ ;
- moment $ 12 $ , during which both swimmers are in the point $ 6 $ ;
- and moment $ 18 $ , during which both swimmers are in the point $ 0 $ .