#XMOJ11720. 秘制酱料
秘制酱料
说明
时间限制:1 Sec
内存限制:256 MB
输入文件:sauce.in 输出文件:sauce.out
小明是美食发明家,他正在尝试将两种不同的酱料 $A$ 和 $B$ 混合,创造一种全新的“秘制酱料”。每种酱料都可以用一个由小写字母组成的字符串来表示其配方。
小明的混合规则非常独特:他创造的“秘制酱料”字符串,必须能同时从 $A$ 的开头取一段(前缀),以及从 $B$ 的结尾取一段(后缀),将这两段拼接而成。
如果一种“秘制酱料”能用 至少两种不同的方式 拆分成一个 $A$ 的非空前缀 和一个 $B$ 的非空后缀 的组合,那么小明就认为这种酱料是“完美的”。
现在,给定酱料 $A$ 和 $B$ 的配方,小明想知道,他能调配出的 最短 的“完美秘制酱料”是什么?如果不存在,请告诉他。
举个例子:
- 酱料 $A$ = sarana,酱料 $B$ = olahraga。
酱料 saraga 是完美的,因为它可以拆成 sara ($A$ 的前缀) + ga ($B$ 的后缀),也可以拆成 sa ($A$ 的前缀) + raga ($B$ 的后缀)。
但更短的 saga 也是完美的(拆成 s+aga 或 sa+ga),所以答案是 saga。 - 酱料 $A$ = icpc,酱料 $B$ = jakarta。
无法找到任何“完美”酱料,因为 $A$ 和 $B$ 没有相同的字母可以作为连接点,输出 $-1$。
现在,给定两种酱料 $A$ 和 $B$,请你帮小明找出这个最短的“完美秘制酱料”。
输入格式
第一行,一个字符串 $A$,代表第一种酱料的配方。
第二行,一个字符串 $B$,代表第二种酱料的配方。
输出格式
如果存在“完美秘制酱料”,输出一个字符串,代表最短的那个。如果存在多个,输出其中字典序最小的那个。
如果不存在,输出 $-1$。
样例
样例 1
sarana
olahraga
saga
样例 2
berhiber
wortelhijau
belhijau
样例说明:
berhijau 也是一个有效的答案,但 belhijau 同样最短,而且字典序更小。
样例 3
icpc
icpc
icpc
样例说明:
icpc 本身就是完美的,因为它可以拆成 i+cpc 或 ic+pc。
样例 4
icpc
jakarta
-1
数据范围
令 $|A|$ 和 $|B|$ 分别表示字符串 $A$ 和 $B$ 的长度。
对 $30\%$ 的数据,满足 $1 \le |A|, |B| \le 2 \times 200$
对 $60\%$ 的数据,满足 $1 \le |A|, |B| \le 2 \times 3000$
对 $100\%$ 的数据,满足 $1 \le |A|, |B| \le 2 \times 10^5$
所有字符串仅由小写英文字母组成。
相关
在下列比赛中: