CF551B ZgukistringZ
题目描述
GukiZ 教授不接受原样的字符串。他喜欢通过交换字符串中的一些字母来获得一个新的字符串。
GukiZ 有字符串 $a$、$b$ 和 $c$。他希望通过交换 $a$ 中的一些字母,使得得到的新字符串 $k$ 中包含尽可能多的不重叠子串,这些子串要么等于 $b$,要么等于 $c$。字符串 $x$ 的子串是由 $x$ 中连续的一段字符构成的字符串。如果有两个子串在 $x$ 的某个位置 $i$ 上重叠,则称这两个子串是重叠的。
GukiZ 感到失望,因为没有一个学生能够解决这个问题。你能帮他们找到一种可能的字符串 $k$ 吗?
输入格式
第一行包含字符串 $a$,第二行包含字符串 $b$,第三行包含字符串 $c$($1 \le |a|, |b|, |c| \le 10^{5}$,其中 $|s|$ 表示字符串 $s$ 的长度)。
这三个字符串都只包含小写英文字母。
可能存在 $b$ 和 $c$ 完全相同的情况。
输出格式
输出任意一个满足条件的字符串 $k$。如果存在多种答案,输出其中任意一个即可。
说明/提示
在第三个样例中,最优解在第 $1$-$2$ 位($ab$)、第 $3$-$4$ 位($ab$)、第 $5$-$7$ 位($aca$)分别出现了三个不重叠的子串等于 $b$ 或 $c$。在这个样例中,也有许多其他最优解,其中之一是 $acaababbcc$。
由 ChatGPT 5 翻译