Cameron 和 Jamie 即将迎来他们的第二个孩子。他们作为父母在育儿方面已经配合得非常默契,但现在他们对一件至关重要的事情产生了分歧!Cameron 想给孩子取一个名字(字符串 $\mathbf{C}$),而 Jamie 想给孩子取另一个名字(字符串 $\mathbf{J}$)。
你需要帮助他们找到一个折中名字,使其尽可能地接近他们各自的期望。你认为可以使用编辑距离的概念来解决这个问题。两个字符串 $S_1$ 和 $S_2$ 之间的编辑距离是将 $S_1$ 转换为 $S_2$ 所需的最少操作次数,允许的操作如下:
- 在字符串的任意位置插入一个字符。
- 删除字符串中任意位置的一个字符。
- 将字符串中的一个字符更改为任何其他字符。
例如,CAMERON 和 JAMIE 之间的编辑距离为 5。实现这种转换的一种 5 步方法如下:CAMERON 变为 JAMERON(更改),变为 JAMIERON(插入),变为 JAMIEON(删除),变为 JAMIEN(删除),变为 JAMIE(删除)。任何将 CAMERON 转换为 JAMIE 的转换至少需要这么多操作。
为了使折中名字 $N$ 尽可能接近父母最初的期望,你希望 $N$ 是一个非空字符串,使得 $\mathbf{C}$ 与 $N$ 之间的编辑距离以及 $\mathbf{J}$ 与 $N$ 之间的编辑距离之和尽可能小。在所有满足该条件的 $N$ 的选择中,为了确保折中方案是公平的,你必须选择一个 $N$,使得这两个编辑距离之间的差值也尽可能小。请为 Cameron 和 Jamie 找到一个折中名字。
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例由一行组成,包含两个字符串 $\mathbf{C}$ 和 $\mathbf{J}$:分别是 Cameron 和 Jamie 为孩子提议的名字。这些名字中的每一个都由大写英文字母组成。
输出格式
对于每个测试用例,输出一行包含 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是满足题目所述要求的一个名字。注意,$y$ 必须仅包含大写英文字母。
数据范围
时间限制:每个测试集 20 秒。 内存限制:1GB。 $1 \le T \le 100$。 $\mathbf{C} \neq \mathbf{J}$。
测试集 1(可见判定)
$1 \le \text{length of } \mathbf{C} \le 6$。 $1 \le \text{length of } \mathbf{J} \le 6$。 $\mathbf{C}$ 的第 $i$ 个字母是大写的 X、Y 或 Z。 $\mathbf{J}$ 的第 $i$ 个字母是大写的 X、Y 或 Z。
测试集 2(隐藏判定)
$1 \le \text{length of } \mathbf{C} \le 60$。 $1 \le \text{length of } \mathbf{J} \le 60$。 $\mathbf{C}$ 的第 $i$ 个字母是大写英文字母。 $\mathbf{J}$ 的第 $i$ 个字母是大写英文字母。
样例
样例输入 1
4 XYZZY ZZYZX Y Z YYXXYZ ZYYXXY XZXZXZ YZ
样例输出 1
Case #1: ZZY Case #2: Z Case #3: ZYYXXYZ Case #4: ZYZX
说明
上述样例符合测试集 1 的限制。另一个不符合这些限制的样例出现在本节末尾。
在样例 1 中,从 XYZZY 到 ZZY 的编辑距离为 2(删除前两个字母),从 ZZYZX 到 ZZY 的编辑距离为 2(删除最后两个字母)。XZZX 和 ZYYZY 也同样适用。没有可能的名称其编辑距离之和小于 4。
例如,ZY 到 $\mathbf{C}$ 和到 $\mathbf{J}$ 的编辑距离相同(均为 3)。然而,这些距离之和为 6,不是最小的,因此它不是一个可接受的答案。
XZZY 也是不可接受的。它到 $\mathbf{C}$ 和 $\mathbf{J}$ 的编辑距离分别为 1 和 3。这些编辑距离之和是最小的,但两者之间的差值($|1-3| = 2$)不是最小的,因为我们已经证明可以实现差值为 0。
在样例 2 中,Y 和 Z 是唯一可接受的答案。
在样例 3 中,请注意输入长度限制不适用于输出,因此所示答案在两个测试集中都是可接受的。另一个可能的答案是 YYXXY。
在样例 4 中,XZXZXZ 和 ZYZX 之间的编辑距离为 3,YZ 和 ZYZX 之间的编辑距离为 2。这些编辑距离之和为 5,它们的差值为 1;这些值对于此情况是最优的。
以下附加样例不会出现在测试集 1 中,但可能出现在测试集 2 中。
1 GCJ ABC
Case #1: GC 是可能的正确输出之一。