CF2242D Two Digit Strings

题目描述

给定两个仅由数字组成的字符串 $a$ 和 $b$。每次操作,你可以选择其中任意一个字符串的相邻两个字符,并将它们替换为它们之和对 $10$ 取模后的结果。例如,对字符串 $57246$,你可以通过一次操作得到如下字符串: - $ \mathbf{57}246 \rightarrow 2246 $; - $ 5\mathbf{72}46 \rightarrow 5946 $; - $ 57\mathbf{24}6 \rightarrow 5766 $; - $ 572\mathbf{46} \rightarrow 5720 $; 注意,每进行一次这样的操作,字符串的长度都会减少 $1$。 你可以进行任意多次这样的操作(也可以不操作)。你的目标是将两个字符串变得相同(即 $|a| = |b|$ 并且对于所有 $i$,$a_i = b_i$)。请计算最终可以得到的相同字符串的最大长度。

输入格式

第一行为一个整数 $t$($1 \le t \le 2 \cdot 10^3$),表示测试用例的数量。 每个测试用例包含两行: 第一行为字符串 $a$($1 \le |a| \le 5 \cdot 10^3$),仅包含数字。 第二行为字符串 $b$($1 \le |b| \le 5 \cdot 10^3$),仅包含数字。 额外限制:所有测试用例中 $\sum (|a| + |b|) \le 10^4$。

输出格式

对于每个测试用例,输出一个整数,表示最终可以得到的相同字符串的最大长度。如果无法使字符串相同,输出 $-1$。

说明/提示

在第一个样例中,最大可以得到长度为 $2$ 的相同字符串: - $ \mathbf{51}47 \rightarrow 6\mathbf{47} \rightarrow 61 $; - $ \mathbf{44}441 \rightarrow \mathbf{84}41 \rightarrow \mathbf{24}1 \rightarrow 61 $。 在第二个样例中,无法让 $a$ 和 $b$ 相同,因此输出 $-1$。 在第三个样例中,最大可以得到长度为 $5$ 的相同字符串: - $ 1234\mathbf{50} \rightarrow 12345 $; - $ \mathbf{01}2345 \rightarrow 12345 $。 由 ChatGPT 5 翻译