CF940C Phone Numbers
题目描述
电话号码在哪里?
给定一个由小写英文字母组成的字符串 $s$ 和一个整数 $k$。请你找到一个长度为 $k$ 的字典序最小的字符串 $t$,满足 $t$ 的字母集合是 $s$ 的字母集合的子集,并且 $s$ 的字典序小于 $t$。
保证一定存在满足条件的答案。
注意,字母集合是集合而不是多重集。例如,abadaba 的字母集合为 $\{a, b, d\}$。
如果字符串 $p$ 是字符串 $q$ 的前缀且 $p \neq q$,或者存在某个 $i$ 使得 $p_i < q_i$ 且对于所有 $j < i$ 都有 $p_j = q_j$,那么字符串 $p$ 的字典序小于字符串 $q$。例如,abc 的字典序小于 abcd,abd 的字典序小于 abec,afa 的字典序不小于 ab,a 的字典序不小于 a。
输入格式
输入的第一行包含两个用空格分隔的整数 $n$ 和 $k$($1 \leq n, k \leq 100000$),分别表示 $s$ 的长度和 $t$ 的要求长度。
输入的第二行包含一个长度为 $n$ 的仅由小写英文字母组成的字符串 $s$。
输出格式
输出满足要求的字符串 $t$。
保证一定存在满足条件的答案。
说明/提示
在第一个样例中,所有长度为 3,且字母集合是 $s$ 的字母集合的子集的字符串 $t$ 有:aaa,aab,aac,aba,abb,abc,aca,acb,……。其中,字典序大于 abc 的有:aca,acb,……。这些字符串中字典序最小的是 aca。
由 ChatGPT 4.1 翻译