CF1673D Lost Arithmetic Progression
题目描述
很久以前,你想到了两个有限的 **等差数列** $A$ 和 $B$。随后你发现了另一个序列 $C$,它包含了 $A$ 和 $B$ 中所有的公共元素。不难看出,$C$ 也是一个有限的等差数列。多年之后,你忘记了 $A$ 是什么,但记得 $B$ 和 $C$。出于某种原因,你决心要找到这个丢失的等差数列。在你开始这趟永恒的探寻之前,你想知道有多少个不同的有限等差数列可能成为你丢失的等差数列 $A$。
如果两个等差数列的首项、公差或项数不同,则认为它们不同。
可能存在无穷多个这样的等差数列,在这种情况下你甚至不会试图去寻找它们!对于所有此类情况,请输出 $-1$。
即使数量有限,答案也可能非常大。因此,你只对答案模 $10^9+7$ 的结果感兴趣。
输入格式
输入的第一行包含一个整数 $t$($1\leq t\leq 100$),表示测试用例的数量。
每个测试用例的第一行包含三个整数 $b$、$q$ 和 $y$($-10^9\leq b\leq 10^9$,$1\leq q\leq 10^9$,$2\leq y\leq 10^9$),分别表示 $B$ 的首项、公差和项数。
每个测试用例的第二行包含三个整数 $c$、$r$ 和 $z$($-10^9\leq c\leq 10^9$,$1\leq r\leq 10^9$,$2\leq z\leq 10^9$),分别表示 $C$ 的首项、公差和项数。
输出格式
对于每个测试用例,输出一行一个整数。
如果存在无穷多个有限等差数列可能成为你丢失的等差数列 $A$,请输出 $-1$。
否则,请输出可能成为你丢失的等差数列 $A$ 的有限等差数列的个数对 $10^9+7$ 取模的结果。特别地,如果不存在这样的有限等差数列,请输出 $0$。
说明/提示
对于第一个测试用例,$B=\{-3,-2,-1,0,1,2,3\}$,$C=\{-1,1,3,5\}$。不存在可能等于 $A$ 的等差数列,因为 $5$ 不在 $B$ 中,而如果存在这样的 $A$,$5$ 也不应该在 $C$ 中。
对于第二个测试用例,$B=\{-9,-6,-3,0,3,6,9,12,15,18,21\}$,$C=\{0,6,12\}$。有 $10$ 个可能的等差数列可以作为 $A$:
- $\{0,6,12\}$
- $\{0,2,4,6,8,10,12\}$
- $\{0,2,4,6,8,10,12,14\}$
- $\{0,2,4,6,8,10,12,14,16\}$
- $\{-2,0,2,4,6,8,10,12\}$
- $\{-2,0,2,4,6,8,10,12,14\}$
- $\{-2,0,2,4,6,8,10,12,14,16\}$
- $\{-4,-2,0,2,4,6,8,10,12\}$
- $\{-4,-2,0,2,4,6,8,10,12,14\}$
- $\{-4,-2,0,2,4,6,8,10,12,14,16\}$
对于第三个测试用例,$B=\{2,7,12,17,22\}$,$C=\{7,12,17,22\}$。存在无穷多个等差数列可以作为 $A$,例如:
- $\{7,12,17,22\}$
- $\{7,12,17,22,27\}$
- $\{7,12,17,22,27,32\}$
- $\{7,12,17,22,27,32,37\}$
- $\{7,12,17,22,27,32,37,42\}$
- $\ldots$
翻译由 DeepSeek V3.2 完成