CF1619C Wrong Addition
题目描述
Tanya 正在学习如何进行加法,但目前她的方法并不正确。她使用如下算法将两个数 $a$ 和 $b$ 相加:
1. 如果两个数的位数不同,Tanya 会在较短的数前面补零,使它们长度相同。
2. 她从右到左处理数字(即从最低位到最高位)。
3. 第一步,她将 $a$ 的最后一位与 $b$ 的最后一位相加,并将它们的和写在答案中。
4. 在接下来的每一步,她对每一对相同位置的数字执行相同的操作,并将结果写在答案的左侧。
例如,$a = 17236$,$b = 3465$,Tanya 的加法过程如下:
$$
\large{
\begin{array}{r}
+ \begin{array}{r}
17236\\
03465\\
\end{array} \\
\hline
\begin{array}{r}
1106911
\end{array}
\end{array}
}
$$
- 计算 $6 + 5 = 11$,将 $11$ 写在答案中。
- 计算 $3 + 6 = 9$,将结果写在答案左侧,得到 $911$。
- 计算 $2 + 4 = 6$,将结果写在答案左侧,得到 $6911$。
- 计算 $7 + 3 = 10$,将结果写在答案左侧,得到 $106911$。
- 计算 $1 + 0 = 1$,将结果写在答案左侧,得到 $1106911$。
最终,她得到 $1106911$。
现在,给定两个正整数 $a$ 和 $s$,请你找出一个正整数 $b$,使得按照上述 Tanya 的加法方法,将 $a$ 和 $b$ 相加后得到 $s$。如果不存在这样的 $b$,请输出 $-1$。
输入格式
输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例包含一行,包含两个正整数 $a$ 和 $s$($1 \le a < s \le 10^{18}$),用空格分隔。
输出格式
对于每个测试用例,输出一行答案。
如果存在解,输出一个正整数 $b$,答案不能有前导零。如果有多个答案,输出其中任意一个。
如果不存在合适的 $b$,输出 $-1$。
说明/提示
第一个测试用例的详细过程见题面说明。
在第三个测试用例中,无法选择满足条件的 $b$。
由 ChatGPT 4.1 翻译