【MX-X4-T3】「Jason-1」数对变换
题目描述
对于一个**正整数**数对 $(x, y)$,定义一次变换为:选择其中一个数 $a$,记另一个数为 $b$,同时选择一个正整数 $k \leq a$,然后将 $a$ 除以 $k$ 向下取整,同时将 $b$ 乘以 $k$。
形式化地说,对于数对 $(x,y)$,你可以执行以下两种变换:
- 类型 1:取 $1 \le k \le x$,令 $(x,y) \gets (\lfloor \frac{x}{k} \rfloor, y \cdot k)$。
- 类型 2:取 $1 \le k \le y$,令 $(x,y) \gets (x \cdot k, \lfloor \frac{y}{k} \rfloor)$。
显然,变换后的数对仍然是正整数数对。
给出两组正整数数对 $(a, b)$ 与 $(c, d)$,你需要执行**不超过 $\bm{65}$ 次**变换将 $(a, b)$ 变为 $(c, d)$,或者报告无解。**注意:你不需要最小化执行变换的次数**。
需要注意数对是有序的,即若 $x \neq y$,则 $(x,y) \neq (y,x)$。
本题使用**自定义校验器**检验你的答案是否正确,因此若有多种满足条件的方案,你只需要输出**任意一种**。
输入输出格式
输入格式
**本题输入包含多组数据。**
第一行,一个正整数 $T$,表示数据组数。对于每组数据:
- 仅一行,四个正整数 $a, b, c, d$,表示两组数对。
输出格式
对于每组数据:
- 若无解,
- 仅一行一个字符串 `-1`。
- 否则,
- 第一行,一个非负整数 $m$,表示你执行变换的次数。**你需要保证 $\bm{0 \le m \le 65}$,但不需要最小化 $\bm m$**。
- 接下来 $m$ 行,第 $i$ 行两个整数 $\mathit{op}, k$,表示你执行的第 $i$ 次变换。其中 $\mathit{op} \in \{1, 2\}$ 表示变换类型,$k$ 即为本次变换中选择的 $k$。
本题使用**自定义校验器**检验你的答案是否正确,因此若有多种满足条件的方案,你只需要输出**任意一种**。
输入输出样例
输入样例 #1
7
1 1 1 1
1 2 1 1
2 2 1 2
10 10 2 50
5 5 4 10
80 43 52 64
987654321 123456789 313814116 388538872
输出样例 #1
0
-1
3
1 2
2 3
1 2
1
1 5
-1
2
1 3
2 2
2
1 31415
2 9982
说明
**【样例解释】**
对于第 1 组数据,不需要进行任何操作,因为初始时 $a = c$ 且 $b = d$。
对于第 2 组数据,可以证明无解。
对于第 3 组数据,第一次变换后 $(a,b)=(1,4)$,第二次变换后 $(a,b)=(3,1)$,第三次变换后 $(a,b)=(1,2)$。
对于第 4 组数据,一次变换即可使 $a = c$ 且 $b = d$。
对于第 5 组数据,可以证明无解。
对于第 6 组数据,第一次变换后 $(a,b)=(26,129)$,第二次变换后 $(a,b)=(52,64)$。
对于第 7 组数据,第一次变换后 $(a,b)=(31438,3878395026435)$,第二次变换后 $(a,b)=(313814116,388538872)$。
**【数据范围】**
**本题采用捆绑测试。**
令 $n=\max(a,b,c,d)$。
| 子任务 | $n\le$| 特殊性质 | 分值 |
| :--------------: | :-----: |:-----:| :--------: |
| 1 | $6$ | 无 | $7$ |
| 2 | $10^5$ | A | $11$ |
| 3 | $10^5$ | C | $13$ |
| 4 | $10^6$ | B | $23$ |
| 5 | $10^9$ | C | $19$ |
| 6 | $10^9$ | 无 | $27$ |
- 特殊性质 A:保证 $\dfrac{a}{c}=\dfrac{d}{b}$。
- 特殊性质 B:保证 $a=b$ 且 $c=d$。
- 特殊性质 C:保证 $a,b,c,d$ 在值域内独立均匀随机生成。
对于 $100\%$ 的数据,$1 \le T \le 10^4$,$1 \le a,b,c,d \le 10^9$。