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 翻译