Набірний принтер
Вам потрібно надрукувати N слів на наборному принтері. Набірний принтер – це такий старий принтер, у який потрібно встановлювати маленькі металеві елементи (кожен з яких містить літеру) для того, щоб сформувати слова. Після цього до них притискається аркуш паперу, щооб віддрукувати слово. Ваш принтер дозволяє викоеувати наступні операції:
Додавати літеру в кінець слова, яке набрано в принтері.
Видаляти останню літеру зі слова, яке набрано у принтері. Це можна робити лише у тому випадку, коли в принтері встановлена хоча б одна літера.
Друкувати слово, набране у принтері.
Спочатку принтер пустий: він не містить металевих елементів з літерами. По завершенню друку дозволяється залишати в принтері деякі літери. Також можна друкувати слова у довільному порядку, який вам подобається. Оскільки кожна операція займає деякий час, вы хочете мінімізувати загальну кількість операцій. Ви повинні написати програму, яка за заданими N словами знаходить мінімальну кількість операцій, необхідних для друку всіх цих слів у довільному порядку, і виводить одну з таких послідовностей операцій. 1 <= N <= 25 000 (N – Кількість слів, які потрібно надрукувати)
Вхідні дані Ваша програма повинна читати зі стандартного вводу наступні дані:
Рядок 1 містить ціле число N – кількість слів, які потрібно надрукувати.
Кожен з наступних N рядків містить слово. Кожне слово складається лише з маленьких латинських літер ('a' – 'z') і має довжину від 1 до 20 символів, включно.
Все слова різні. Вихідні дані Ваша программа повинна вивести у стандартний вивід наступні дані:
Рядок 1 повинен містити ціле число M, якое означає мінімальну кількість операцій, потрібних для друку N слів.
Кожен з наступних M рядків повинен містити по одному символу. Ці символи описують послідовність викоеуваних операцій. Кожна операція повинна бути описана наступним чином:
Додавання літери позначається самою літерою, набраною у нижньому регістрі
Видалення останньої літери позначається символом '-' (мінус, ASCII код 45)
Друк поточного слова позначається символом 'P' (велика латинська літреа P)