题目描述

在魔法学院的炼金实验室里,有两条并列的宝石阶梯,每条阶梯上自顶向下共有 NN 颗宝石,每颗宝石的颜色要么是“蓝”(B),要么是“红”(R)。你可以对每一级台阶,选择是否将两条阶梯上的宝石互换位置。这样一来,所有可能的阶梯组合共有 2N2^N 种。

在这 2N2^N 种组合中,任意一对阶梯都可以看成两条长度为 NN 的颜色序列。我们希望找到一种交换方案,使得这两条序列的最长公共子序列(不要求连续)尽可能长;如果存在多种等长的公共子序列,则选取字典序最小的那一个。

输入格式

第一行包含整数 NN,表示阶梯的级数。

第二行是长度为 NN 的字符串 AA,仅由 BR 构成,表示第一条阶梯自顶向下的宝石颜色。

第三行是长度为 NN 的字符串 BB,仅由 BR 构成,表示第二条阶梯自顶向下的宝石颜色。

输出格式

输出一个由 BR 组成的字符串,表示在最佳交换方案下,两条阶梯颜色序列的最长公共子序列;若有多种等长方案,输出其中字典序最小的。若没有方案,输出 1-1

4
BRBB
RRRR
RRB
1
R
B
-1

说明/提示

数据范围

对于 5%5\% 的数据,N=1N=1 且两条阶梯宝石的颜色互不相同。

对于另 5%5\% 的数据,每条阶梯各只有一种颜色的宝石。

对于另 5%5\% 的数据,N10N \leq 10

对于 100%100\% 的数据,保证:

  • 1N501 \le N \le 50
  • A,BA, B 均为长度为 NN 的字符串,仅包含字符 BR

相关