P9888 [ICPC 2018 Qingdao R] Magic Multiplication
题目描述
BaoBao 现在正在他的魔法书中学习两个正整数之间的一种新的二元运算,用 $\otimes$ 表示。这本书告诉他,这种运算的结果是通过将两个整数中每个数字的所有多个结果串联起来计算的。
形式上讲,让第一个整数为 $A=a_1a_2\dots a_n$,其中 $a_i$ 表示 $A$ 中的第 $i$ 位,第二个整数为 $B=b_1b_2\dots b_m$,其中 $b_i$ 表示 $B$ 中的第一位。我们有
$$A \otimes B = \sum\limits_{i=1}^n\sum\limits_{j=1}^m a_ib_j = a_1b_1 + a_1b_2 + \dots + a_1b_m + a_2b_1 + \dots + a_nb_m$$
请注意,$a_ib_j$ 的结果被认为是 $\textbf{string}$(也就是直接算出结果然后把它当作字符串),而不是正常整数。此外,这里的 sum 表示 $\textbf{string concatenation}$(也就是字符串拼接),而不是正常的加法运算。
例如,$23\otimes 45=8101215$。因为 $8=2\times 4$,$10=2\times 5$,$12=3\times 4$ 和 $15=3\times 5$。
BaoBao 很聪明,很快就想出了 $\otimes$ 的逆运算。现在,他给出了 $\otimes$ 运算的结果以及两个原始整数中的位数。请帮助他恢复两个原始整数 $A$ 和 $B$。
输入格式
有多个测试用例。输入的第一行包含一个整数 $T$,表示测试用例的数量。对于每个测试用例:
第一行包含两个正整数 $n$ 和 $m$($1\le n,m\le 2\times 10^5$),其中 $n$ 表示 $A$ 的长度,$m$ 表示 $B$ 的长度。这里,整数的长度是指在不带前导零的十进制记数法中写入数字时字符串的长度。
第二行只包含一个不带前导零的正整数 $C$,表示 $A\otimes B$ 的结果。$C$ 的长度不超过 $2\times 10^5$。
保证所有测试用例的 $C$ 长度总和不会超过 $2\times 10^6$。
输出格式
对于每个测试用例输出一行。
如果存在这样的 $A$ 和 $B$,$A\otimes B=C$,则输出一行,其中包含由一个空格分隔的两个整数 $A$ 与 $B$。请注意,$A$ 和 $B$ 应该是不带前导零的正整数,$A$ 的长度应该正好是 $n$,$B$ 的长度应正好是 $m$。
如果存在多个有效答案,则输出具有最小 $A$ 的答案;如果仍然有一个以上的答案,请输出其中一个最小的 $B$。
如果不存在这样的 $A$ 和 $B$,请在单行上打印 ``Impossible``(不带引号)。