题目描述
回答 Q(1≤Q≤105)个独立查询,每个查询的形式如下:
给定四个整数 a,b,c,d(−1018≤a,b,c,d≤1018)。在一次操作中,你可以执行 a+=b,或 b+=a。求将 (a,b) 转变为 (c,d) 所需要的最小操作次数,或者如果不可能完成,输出 −1。
输入格式
输入的第一行包含 Q。
以下 Q 行,每行包含四个整数 a,b,c,d。
输出格式
每行输出一个查询的答案。
提示
样例 1 解释:
第一个查询:(5,−3)→(2,−3)→(−1,−3)。
第二个查询:不可能。
第三个查询:(5,3)→(8,3)→(8,11)→(8,19)。
第四个查询:不需要任何操作。
- 测试点 2:∣a∣,∣b∣,∣c∣,∣d∣≤10。
- 测试点 3:a,b≥0。
- 测试点 4:a≥0≥b。
- 测试点 5:a≤0≤b。
- 测试点 6:a,b≤0。
- 测试点 7:c,d≥0。
- 测试点 8:c≥0≥d。
- 测试点 9:c≤0≤d。
- 测试点 10:c,d≤0。
- 测试点 11∼14:Q≤103。
- 测试点 15∼19:没有额外限制。