33OJ
登录 注册

#CF2174A. 大海捞针 / Needle in a Haystack

大海捞针 / Needle in a Haystack

题目描述

你有幸得知世间所有重要问题的答案,这一次,答案是仅由小写英文字母构成的字符串 ss。你想要把这个字符串隐藏起来。

你另有一个同样只由小写英文字母组成的字符串 tt。你需要重排 tt 的全部字符,使得重排后的字符串中,ss 至少作为一个子序列出现一次。在所有满足条件的重排结果中,找出字典序最小的那一个。

※^{\text{※}}序列 aa 是 bb 的子序列的含义:可以从 bb 中删除若干个(可以删 0 个或者全部)任意位置的字符得到 aa。

※^{\text{※}}字符串 aa 字典序小于字符串 bb,当且仅当满足下面二者之一:

  • aa 是 bb 的前缀,且 a≠ba \ne b;
  • 在 aa、bb 第一个不相同的位置上,aa 的字符在字母表中比 bb 对应位置的字符更小。

输入格式

多组测试用例。第一行一个整数 TT(1≤T≤1041 \le T \le 10^4),代表测试用例数量。

每组测试用例第一行输入字符串 ss(1≤∣s∣≤1051 \le |s| \le 10^5),∣s∣|s| 代表字符串 ss 的长度。

第二行输入字符串 tt(∣s∣≤∣t∣≤105|s| \le |t| \le 10^5)。

两个字符串均只包含小写英文字母。

保证所有测试用例的 ∣t∣|t| 之和不超过 10510^5。

输出格式

对每组测试用例输出一个字符串:重排 tt 的字符后,满足 ss 是其子序列的字典序最小字符串。如果不存在合法重排,输出 Impossible。

3
dcbe
bedbaecfc
babadab
abacabadabacaba
babaisyou
flagiswin
abcdcbeef
aaaaabababccdab
Impossible

说明

第一个测试样例,abc dcbe ef\mathtt{abc}\,\mathtt{dcbe}\,\mathtt{ef} 中包含子序列 dcbe\mathtt{dcbe}。

第二个测试样例,$\mathtt{aaaaa}\,\mathtt{baba}\,\mathtt{bcc}\,\mathtt{dab}$ 同样包含子序列 babadab\mathtt{babadab}。 可以证明,这两个就是满足条件的字典序最小字符串。

第三个测试样例,无论怎样重排 tt,都无法得到包含 ss 的字符串。

原题链接

原题链接