#CF2174A. 大海捞针 / Needle in a Haystack
大海捞针 / Needle in a Haystack
题目描述
你有幸得知世间所有重要问题的答案,这一次,答案是仅由小写英文字母构成的字符串 。你想要把这个字符串隐藏起来。
你另有一个同样只由小写英文字母组成的字符串 。你需要重排 的全部字符,使得重排后的字符串中, 至少作为一个子序列出现一次。在所有满足条件的重排结果中,找出字典序最小的那一个。
序列 是 的子序列的含义:可以从 中删除若干个(可以删 0 个或者全部)任意位置的字符得到 。
字符串 字典序小于字符串 ,当且仅当满足下面二者之一:
- 是 的前缀,且 ;
- 在 、 第一个不相同的位置上, 的字符在字母表中比 对应位置的字符更小。
输入格式
多组测试用例。第一行一个整数 (),代表测试用例数量。
每组测试用例第一行输入字符串 (), 代表字符串 的长度。
第二行输入字符串 ()。
两个字符串均只包含小写英文字母。
保证所有测试用例的 之和不超过 。
输出格式
对每组测试用例输出一个字符串:重排 的字符后,满足 是其子序列的字典序最小字符串。如果不存在合法重排,输出 Impossible。
3
dcbe
bedbaecfc
babadab
abacabadabacaba
babaisyou
flagiswin
abcdcbeef
aaaaabababccdab
Impossible
说明
第一个测试样例, 中包含子序列 。
第二个测试样例,$\mathtt{aaaaa}\,\mathtt{baba}\,\mathtt{bcc}\,\mathtt{dab}$ 同样包含子序列 。 可以证明,这两个就是满足条件的字典序最小字符串。
第三个测试样例,无论怎样重排 ,都无法得到包含 的字符串。