#4585. [USACO25FEB] Transforming Pairs P

    ID: 4585 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>NOI/NOI+/CTSC数学最大公约数 gcd分类讨论USACO2025

[USACO25FEB] Transforming Pairs P

题目描述

回答 QQ(1≤Q≤1051\le Q\le 10^5)个独立查询,每个查询的形式如下:

给定四个整数 aa,bb,cc,dd(−1018≤a,b,c,d≤1018-10^{18}\le a,b,c,d\le 10^{18})。在一次操作中,你可以执行 a+=ba\mathrel{+}=b,或 b+=ab\mathrel{+}=a。求将 (a,b)(a,b) 转变为 (c,d)(c,d) 所需要的最小操作次数,或者如果不可能完成,输出 −1-1。

输入格式

输入的第一行包含 QQ。

以下 QQ 行,每行包含四个整数 aa,bb,cc,dd。

输出格式

每行输出一个查询的答案。

输入输出样例 #1

输入 #1

4
5 -3 -1 -3
5 3 5 2
5 3 8 19
5 3 5 3

输出 #1

2
-1
3
0

说明/提示

样例 1 解释:

第一个查询:(5,−3)→(2,−3)→(−1,−3)(5,-3)\to (2,-3)\to (-1,-3)。

第二个查询:不可能。

第三个查询:(5,3)→(8,3)→(8,11)→(8,19)(5,3) \to (8, 3) \to (8, 11) \to (8, 19)。

第四个查询:不需要任何操作。

  • 测试点 22:∣a∣,∣b∣,∣c∣,∣d∣≤10|a|, |b|, |c|,|d|\le 10。
  • 测试点 33:a,b≥0a,b\ge 0。
  • 测试点 44:a≥0≥ba \geq 0 \geq b。
  • 测试点 55:a≤0≤ba \leq 0 \leq b。
  • 测试点 66:a,b≤0a,b\le 0。
  • 测试点 77:c,d≥0c,d\ge 0。
  • 测试点 88:c≥0≥dc \geq 0 \geq d。
  • 测试点 99:c≤0≤dc \leq 0 \leq d。
  • 测试点 1010:c,d≤0c,d\le 0。
  • 测试点 11∼1411\sim 14:Q≤103Q \leq 10^3。
  • 测试点 15∼1915\sim 19:没有额外限制。