#P11063. 【MX-X4-T3】「Jason-1」数对变换
【MX-X4-T3】「Jason-1」数对变换
题目描述
对于一个正整数数对 ,定义一次变换为:选择其中一个数 ,记另一个数为 ,同时选择一个正整数 ,然后将 除以 向下取整,同时将 乘以 。
形式化地说,对于数对 ,你可以执行以下两种变换:
- 类型 1:取 ,令 $(x,y) \gets (\lfloor \frac{x}{k} \rfloor, y \cdot k)$。
- 类型 2:取 ,令 $(x,y) \gets (x \cdot k, \lfloor \frac{y}{k} \rfloor)$。
显然,变换后的数对仍然是正整数数对。
给出两组正整数数对 与 ,你需要执行不超过 次变换将 变为 ,或者报告无解。注意:你不需要最小化执行变换的次数。
需要注意数对是有序的,即若 ,则 。
本题使用自定义校验器检验你的答案是否正确,因此若有多种满足条件的方案,你只需要输出任意一种。
输入格式
本题输入包含多组数据。
第一行,一个正整数 ,表示数据组数。对于每组数据:
- 仅一行,四个正整数 ,表示两组数对。
输出格式
对于每组数据:
- 若无解,
- 仅一行一个字符串
-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
0
-1
3
1 2
2 3
1 2
1
1 5
-1
2
1 3
2 2
2
1 31415
2 9982
提示
【样例解释】
对于第 1 组数据,不需要进行任何操作,因为初始时 且 。
对于第 2 组数据,可以证明无解。
对于第 3 组数据,第一次变换后 ,第二次变换后 ,第三次变换后 。
对于第 4 组数据,一次变换即可使 且 。
对于第 5 组数据,可以证明无解。
对于第 6 组数据,第一次变换后 ,第二次变换后 。
对于第 7 组数据,第一次变换后 ,第二次变换后 。
【数据范围】
本题采用捆绑测试。
令 。
子任务 | 特殊性质 | 分值 | |
---|---|---|---|
1 | 无 | ||
2 | A | ||
3 | C | ||
4 | B | ||
5 | C | ||
6 | 无 |
- 特殊性质 A:保证 。
- 特殊性质 B:保证 且 。
- 特殊性质 C:保证 在值域内独立均匀随机生成。
对于 的数据,,。