Задача №113767. Новое --- это хорошо забытое старое
Московские библиотеки имеют электронный сервис, с помощью которого можно бесплатно получить издание, несколько лет не востребованное читателями. Андрея заинтересовала красочная энциклопедия, правда изданная в прошлом веке на неизвестном ему языке.
Получив желаемое издание, он стал его изучать, открывая в произвольных местах. На одной из открытых страниц было всего две статьи, название первой из них можно было легко прочитать, так как оно было записано английскими буквами, а буквы в названии второй из них оказались практически затертыми. Легко определить было только что остались следы от k букв. Очевидно также, что второе название стоит в алфавитном порядке позже, чем первое. Это означает, что либо первая не совпадающая в написании двух слов буква в первом слове стоит в алфавите раньше, чем соответствующая буква второго слова, либо начало второго слова полностью совпадает с первым словом, но при этом второе слово длиннее первого (содержит еще какие то буквы).
Андрей не знает язык, на котором написана энциклопедия, поэтому он предположил, что второе слово состоит из тех же букв, что и первое. Чтобы проверить свое предположение, он собирается искать предполагаемое слово в интернете.
Помогите Андрею найти первое следующее в алфавитном порядке слово, состоящее из тех же букв, что и заданное слово, и состоящее ровно из k букв. Гарантируется, что такое слово существует.
В первой строке задано целое число n ( 1 ≤ n ≤ 100 000 ) — количество букв в первом слове.
Во второй строке задано слово, состоящее из n строчных букв английского алфавита.
В третьей строке задано целое число k ( 1 ≤ k ≤ 100 000 ) — количество букв в искомом слове.
Выведите искомое слово, состоящее из k букв, входящих в первое слово.
В первом тестовом примере требуемое слово должно состоять из букв a , b и c . Следующим после abc в алфавитном порядке будет слово abca , но оно состоит из 4 букв, а не из 3. Следующим после abc в алфавитном порядке состоящим из букв a , b и c и имеющим длину 3 будет слово aca .
В данной задаче 50 тестов, помимо тестов из условия, каждый из них оценивается в 2 балла. Результаты работы ваших решений на первых 30 тестах будут доступны во время соревнования. Результаты работы на остальных 20 будут доступны после окончания соревнования.
Не менее чем в 15 тестах первое слово будет состоять только из букв abc , причем каждая из трех букв будет встречаться. Результат не менее чем на 10 из этих тестов будет доступен во время соревнования.
Решения, работающие при 1 ≤ n , k ≤ 3 будут набирать не менее 10 баллов.
Решения, работающие при 1 ≤ n , k ≤ 10 будут набирать не менее 30 баллов.
Решения, работающие при 1 ≤ n , k ≤ 5 000 будут набирать не менее 60 баллов.
3 abc 3
aca
3 abc 2
ac
3 ayy 3
yaa
2 ba 3
baa