printКомбинаторика

printЛексикографический порядок

Ограничения: время – 2s/4s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Имеется алфавит, состоящий из `N` (`1\ ≤\ N\ ≤\ 12`) различных символов. Множество всех `N`-буквенных слов, содержащих все символы алфавита, упорядочено лексикографически, в соответствии с заданным алфавитом. Задано конкретное слово из этого множества и целое число `K` (`1\ ≤\ K\ <\ 12!`). Требуется найти `K`-ое слово этого множества, следующее за данным словом или сообщить, что найти такое слово невозможно.
Входной файл состоит из трех строк. Первая строка содержит алфавит, записанный без пробелов в порядке номеров символов. Вторая строка содержит исходную перестановку символов алфавита. Третья строка число `K`.
Выходной файл состоит из одной строки, содержащей искомую перестановку символов алфавита или слово "IMPOSSIBLE".

Пример ввода 1

CBA
CBA
2

Пример вывода 1

BCA

Пример ввода 2

ABC
CBA
1

Пример вывода 2

IMPOSSIBLE
Источник: VII межвузовская олимпиада по программированию Вологда, 2004
loading