#P16829. [NWRRC 2022]Greatest Common Divisor
[NWRRC 2022]Greatest Common Divisor
题目描述
Gennady 正在学习用欧几里得算法计算两个正整数的最大公约数。
不幸的是,他有时会把整数除法运算符 div 与取余运算符 mod 混淆。例如:
他最近写出了下面的“欧几里得算法”:
- 输入两个正整数 ;
- 当 时:
- 令 ;
- 交换 与 ;
- 输出 。
如果把程序中的 div 换成 mod,它就是正确的欧几里得算法。但令人意外的是,即使存在这个错误,程序在某些输入上仍然会终止并输出真正的 。
给定整数 ,考虑所有满足以下条件的有序对 :
- ;
- 上述错误算法会终止;
- 算法输出恰好等于 。
按字典序排列所有合法有序对:
也就是说,对任意 ,要么 ,要么 且 。
接下来给出 个查询。对于每个查询 ,输出第 个合法有序对;若 ,则报告不存在。
输入格式
第一行包含两个整数 。
接下来 行,每行包含一个整数 。
数据范围
输出格式
对于每个查询:
- 若至少存在 个合法有序对,输出 和 ;
- 否则输出
-1 -1。
样例
10 13
1
2
3
4
5
6
7
8
9
10
11
12
13
2 2
3 3
4 2
4 4
5 5
6 6
7 7
8 8
9 3
9 9
10 4
10 10
-1 -1