T303996 「DPOI-1」炊事员的鸡汤
题目背景
你可以选择看一遍[《激战江南》](https://www.bilibili.com/bangumi/play/ss20249?spm_id_from=333.337.0.0),也可以选择做这道题。
老冯是一名潜伏多年的炊事员。
王大队长今天请大伙吃饭,要求炊事员老冯炖鸡汤。因为老冯是间谍,需要在鸡汤里面下毒,用毒杀害他人。
但是他需要用鸡汤和毒药配出最佳的配方,不能太明显也不能没有毒效。
题目描述
现在老冯有 $n$ 种配方瓶,其中对于**一份**第 $i$ 种配方,鸡汤和毒药分别有 $x_i, y_i$ 毫升。
现在你需要帮他调配鸡汤,具体地:
- 设 $a_i \geq 0$ 表示第 $i$ 中配方使用的份数。**老冯必须使用整数份。**
- 老冯希望 $a$ **单调不降**。
- 老冯还希望鸡汤混合毒药后的净含量为 $m$ 毫升,即 $m = \displaystyle\sum_{i = 1}^n a_i (x_i + y_i)$。
- 老冯还希望鸡汤与毒药的质量比为 $o : p$,即 $\displaystyle\sum_{i = 1}^n a_i x_i : \displaystyle\sum_{i = 1}^n a_i y_i = o : p$。
请你快速求出**有多少种满足条件的调配方案**。由于结果可能很大,你只需要求出结果对 $10^9 + 7$ 取模的值。
输入格式
**本题有多组测试数据。**
第一行,一个整数 $T$,表示数据组数。
对于每组数据:
第一行,四个整数 $n, m, o, p$;
接下来 $n$ 行,其中第 $i$ 行两个整数 $x_i, y_i$。
输出格式
对于每组数据:
一行,一个整数,表示所求的值。
说明/提示
#### 样例 #1 解释
对于第一组数据,可以证明唯一的合法方案为 $a = [1, 1]$。
对于第二组数据,可以证明没有合法方案。
#### 样例 #2 解释
该样例满足测试点 $17 \sim 20$ 的限制。
#### 数据范围
| 测试点编号 | $n, m \leq$ | 特殊条件 |
| :------: | :------: | :------: |
| $1 \sim 2$ | $10$ | 无 |
| $3 \sim 4$ | $30$ | 无 |
| $5 \sim 6$ | $50$ | 无 |
| $7 \sim 8$ | $100$ | 无 |
| $9 \sim 10$ | $300$ | 无 |
| $11 \sim 12$ | $500$ | 无 |
| $13 \sim 14$ | $10^3$ | 无 |
| $15 \sim 16$ | $2 \times 10^3$ | $x_i = y_i = 1$ |
| $17 \sim 20$ | $2 \times 10^3$ | 无 |
对于 $100\%$ 的数据,$1 \leq T \leq 5$,$1 \leq n \leq 2 \times 10^3$,$2 \leq m \leq 2 \times 10^3$,$1 \leq o, p, x_i, y_i \leq m$。