Codeforces Round 675 (Div. 2) |
---|
Закончено |
Недавно в поле зрения Лёши попала одна занимательная строка $$$s$$$, состоящая из маленьких латинских букв. Лёша сразу же разработал уникальный алгоритм с этой строкой и поспешил поделиться им с вами. Суть алгоритма заключалась в следующем.
Лёша выбирал любое количество пар символов на позициях $$$(i, i + 1)$$$ так, чтобы выполнялись следующие условия:
Далее Лёша удалял все символы строки по индексам, содержащимся в выбранных парах, и завершал алгоритм.
Теперь Лёшу интересует, какую лексикографически минимальную строку можно получить после выполнения алгоритма на каждом суффиксе заданной строки.
Единственная строка ввода содержит строку $$$s$$$ ($$$1 \le |s| \le 10^5$$$) — исходную строку, состоящую из маленьких латинских букв.
В $$$|s|$$$ строках выведите длины искомых строк и сами искомые строки для всех суффиксов, начиная с наибольшего по длине. Вывод может получится слишком большим, и поэтому, если длина ответа больше $$$10$$$ символов, то вместо самого ответа выведите только первые $$$5$$$ символов, далее «...», и далее последние $$$2$$$ символа ответа.
abcdd
3 abc 2 bc 1 c 0 1 d
abbcdddeaaffdfouurtytwoo
18 abbcd...tw 17 bbcdd...tw 16 bcddd...tw 15 cddde...tw 14 dddea...tw 13 ddeaa...tw 12 deaad...tw 11 eaadf...tw 10 aadfortytw 9 adfortytw 8 dfortytw 9 fdfortytw 8 dfortytw 7 fortytw 6 ortytw 5 rtytw 6 urtytw 5 rtytw 4 tytw 3 ytw 2 tw 1 w 0 1 o
Рассмотрим первый пример.
Во втором примере для наибольшего по длине суффикса «abbcdddeaaffdfouurtytwoo» выбираем три пары $$$(11, 12)$$$, $$$(16, 17)$$$, $$$(23, 24)$$$ и получаем «abbcdddeaadfortytw»
Название |
---|