luogu#P11063. 【MX-X4-T3】「Jason-1」数对变换

【MX-X4-T3】「Jason-1」数对变换

题目描述

对于一个正整数数对 (x,y)(x, y),定义一次变换为:选择其中一个数 aa,记另一个数为 bb,同时选择一个正整数 kak \leq a,然后将 aa 除以 kk 向下取整,同时将 bb 乘以 kk

形式化地说,对于数对 (x,y)(x,y),你可以执行以下两种变换:

  • 类型 1:取 1kx1 \le k \le x,令 $(x,y) \gets (\lfloor \frac{x}{k} \rfloor, y \cdot k)$。
  • 类型 2:取 1ky1 \le k \le y,令 $(x,y) \gets (x \cdot k, \lfloor \frac{y}{k} \rfloor)$。

显然,变换后的数对仍然是正整数数对。

给出两组正整数数对 (a,b)(a, b)(c,d)(c, d),你需要执行不超过 65\bm{65}变换将 (a,b)(a, b) 变为 (c,d)(c, d),或者报告无解。注意:你不需要最小化执行变换的次数

需要注意数对是有序的,即若 xyx \neq y,则 (x,y)(y,x)(x,y) \neq (y,x)

本题使用自定义校验器检验你的答案是否正确,因此若有多种满足条件的方案,你只需要输出任意一种

输入格式

本题输入包含多组数据。

第一行,一个正整数 TT,表示数据组数。对于每组数据:

  • 仅一行,四个正整数 a,b,c,da, b, c, d,表示两组数对。

输出格式

对于每组数据:

  • 若无解,
    • 仅一行一个字符串 -1
  • 否则,
    • 第一行,一个非负整数 mm,表示你执行变换的次数。你需要保证 0m65\bm{0 \le m \le 65},但不需要最小化 m\bm m
    • 接下来 mm 行,第 ii 行两个整数 op,k\mathit{op}, k,表示你执行的第 ii 次变换。其中 op{1,2}\mathit{op} \in \{1, 2\} 表示变换类型,kk 即为本次变换中选择的 kk

本题使用自定义校验器检验你的答案是否正确,因此若有多种满足条件的方案,你只需要输出任意一种

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

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=ca = cb=db = d

对于第 2 组数据,可以证明无解。

对于第 3 组数据,第一次变换后 (a,b)=(1,4)(a,b)=(1,4),第二次变换后 (a,b)=(3,1)(a,b)=(3,1),第三次变换后 (a,b)=(1,2)(a,b)=(1,2)

对于第 4 组数据,一次变换即可使 a=ca = cb=db = d

对于第 5 组数据,可以证明无解。

对于第 6 组数据,第一次变换后 (a,b)=(26,129)(a,b)=(26,129),第二次变换后 (a,b)=(52,64)(a,b)=(52,64)

对于第 7 组数据,第一次变换后 (a,b)=(31438,3878395026435)(a,b)=(31438,3878395026435),第二次变换后 (a,b)=(313814116,388538872)(a,b)=(313814116,388538872)

【数据范围】

本题采用捆绑测试。

n=max(a,b,c,d)n=\max(a,b,c,d)

子任务 nn\le 特殊性质 分值
1 66 77
2 10510^5 A 1111
3 C 1313
4 10610^6 B 2323
5 10910^9 C 1919
6 2727
  • 特殊性质 A:保证 ac=db\dfrac{a}{c}=\dfrac{d}{b}
  • 特殊性质 B:保证 a=ba=bc=dc=d
  • 特殊性质 C:保证 a,b,c,da,b,c,d 在值域内独立均匀随机生成。

对于 100%100\% 的数据,1T1041 \le T \le 10^41a,b,c,d1091 \le a,b,c,d \le 10^9