魔法人偶的十进制校准
题号:NC312885
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}爱丽丝正在制作一只能够精确进行数学演算的魔法人偶。为了测试人偶的计算精度,她为人偶设定了一个特殊的任务:构造一个最简真分数 x/y,使得该分数的小数展开式中,小数点后第 a 位的数字恰好为 b
\hspace{15pt}具体而言,爱丽丝要求你找到满足以下条件的整数 x, y
\hspace{23pt}\bullet\,1 \leqq x < y \leqq 10^3
\hspace{23pt}\bullet\,xy 互质
\hspace{23pt}\bullet\,x/y 的小数表示为 0.d_1d_2d_3\cdots(按十进制长除法展开;有限小数视为末尾无限个 0),则第 a 位数字 d_a 必须等于 b

\hspace{15pt}由于爱丽丝的人偶拥有极强的计算能力,位移量 a 可能会非常大。请你为人偶提供一组符合要求的 (x, y)。我们可以证明,在给定的输入约束下,一定存在满足条件的解。

【名词解释】
\hspace{15pt}互质:多个整数的最大的共有约数(简称最大公约数,gcd)如果恰好为 1,被称为它们为互质的。例如,1230 的公约数有 1,2,3,6,其中最大的约数是 6,所以它们不是互质的;57 的公约数仅有 1,所以它们是互质的。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 100\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}在一行上输入两个整数 ab\left(1 \leqq a \leqq 10^9;\, 0 \leqq b \leqq 9\right),表示目标小数位的位置、该位应具备的数字。

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行输出两个以空格分隔的整数 xy,表示你找到的分子和分母。

\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
3
1 5
2 3
5 7

输出

复制
1 2
1 3
3 7

说明

\hspace{15pt}对于第一组测试数据,1/2 = 0.500\cdots,小数点后第 1 位是 5,符合要求。

\hspace{15pt}对于第二组测试数据,1/3 = 0.333\cdots,小数点后第 2 位是 3,符合要求。

\hspace{15pt}对于第三组测试数据,3/7 = 0.42857142\cdots,其小数部分第 1 到第 5 位分别是 4, 2, 8, 5, 7,因此第 5 位是 7,符合要求。