该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

余料成段(seam)

题目描述

工作台上有两根长度分别为 aa 和 bb 的带子。Y 同学准备选定一个正整数 dd,将每根带子分别剪成尽可能多的长度为 dd 的完整段。每根带子最后剩下的部分称为余料;余料长度可以为 00,但一定小于 dd。

他希望两根带子的余料都非空,并且能将这两份余料首尾相接,恰好得到一段长度为 dd 的带子。连接时不损失长度,也不能再次裁剪余料。原带子可以一段完整段都剪不出来。

给定允许的长度区间 [L,R][L,R],求有多少个整数 dd 能满足上述要求。两种方案不同,当且仅当所选的 dd 不同。

输入格式

第一行包含一个整数 TT,表示测试用例数量。

接下来 TT 行,每行包含四个整数 a,b,L,Ra,b,L,R,依次表示两根带子的长度和允许的完整段长度区间。

输出格式

对于每组测试用例,输出一行一个整数,表示满足要求的 dd 的数量。

样例

样例输入 #1

3
6 6 1 12
5 7 3 6
4 5 1 3

样例输出 #1

2
3
1

样例输入 #2

1
3 6 10 10

样例输出 #2

0

样例输入 #3

1
9 7 1 16

样例输出 #3

4

样例解释

第一组样例的第一组测试用例中,可以选择 d=4d=4:两根带子各剪出一段,余料长度均为 22。也可以选择 d=12d=12:两根原带子都作为余料,连接后长度为 1212。

选择 d=3d=3 时,两根带子的余料长度均为 00,不符合“余料都非空”的要求。

数据范围与约定

对于所有数据,保证 1≤T≤101\le T\le10,1≤a,b≤1091\le a,b\le10^9,1≤L≤R≤2×1091\le L\le R\le2\times10^9。

每个测试点 55 分,分档如下:

测试点 分值 范围 特殊性质
1∼21\sim2 1010 T≤10T\le10,a,b≤30a,b\le30,R≤60R\le60 无
3∼43\sim4 T≤10T\le10,a,b≤104a,b\le10^4,R≤2×104R\le2\times10^4
5∼85\sim8 2020 T≤10T\le10,a,b≤109a,b\le10^9,R≤2×109R\le2\times10^9 A
9∼129\sim12 B
13∼1613\sim16 T≤10T\le10,a,b≤107a,b\le10^7,R≤2×107R\le2\times10^7 无
17∼2017\sim20 T≤10T\le10,a,b≤109a,b\le10^9,R≤2×109R\le2\times10^9

特殊性质 A:每组测试用例均满足 a=ba=b。

特殊性质 B:每组测试用例的 a+ba+b 均为 22 的整数次幂。