1930: Перестановки

Переглянути як PDF

Надіслати розвʼязок

Бали: 15,00 (частково)
Ліміт часу: 2.0s
Ліміт памʼяті: 256M
Ввід: stdin
Вивід: stdout

Автор:
Типи задач

Задається рядок довжиною ~n~ символів.

Ваше завдання полягає в тому, щоб створити всі рядки, які можна отримати із символів заданого рядка.

Обмеження

~1 \le n \le 8~

Input

Єдиний вхідний рядок містить рядок довжини ~n~. Кожен символ знаходиться між a–z.

Output

Спочатку виведіть ціле число ~k~ - кількість рядків.

Потім виведіть ~k~ рядків - знайдені рядки в алфавітному порядку.

Sample Input 1

aabac

Sample Output 1

20
aaabc
aaacb
aabac
aabca
aacab
aacba
abaac
abaca
abcaa
acaab
acaba
acbaa
baaac
baaca
bacaa
bcaaa
caaab
caaba
cabaa
cbaaa

Коментарі

Будь ласка, прочитайте правила перед коментуванням.


Наразі коментарів немає.