eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Циклическая строка?

Циклическая строка?

Великий волшебник дал Алисе и Бобу циклическую строку длины 2 * n, в которой нет повторяющихся подстрок длины n. В строке цикла символ si+1 идет после si. Кроме того, s1 идет после s2n.

К сожалению, злой джин перетасовал все символы строки. Помогите Алисе и Бобу восстановить исходную строку так, чтобы выполнялось вышеуказанное условие.

Входные данные

Содержит одну строку s длины 2 * n (22 * n106), состоящую только из строчных латинских букв.

Выходные данные

Выведите "NO" в первой строке, если невозможно восстановить строку так, чтобы выполнялось условие. В противном случае в первой строке выведите "YES".

Во второй строке выведите восстановленную строку. Если ответов несколько, выведите любой.

Пояснение

В первом примере подстроками восстановленной строки являются: “abbab”, “bbabc”, “babcb”, “abcbc”, “bcbcc”, “cbccb”, “bccba”, “ccbab”, “cbabb”, “babba”.

Обратите внимание, что первый пример не содержит повторений, однако его можно переписать как еще один цикл без повторов. Таким образом, решение не единственное - данный пример также является правильным решением.

Во втором примере невозможно восстановить строку так, чтобы не было повторений.

В третьем примере ничего менять не нужно.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
cbbabcacbb
Выходные данные #1
YES
aabbbcccbb
Входные данные #2
aa
Выходные данные #2
NO
Входные данные #3
afedbc
Выходные данные #3
YES
abcfde
Источник 2019 SEERC South Eastern European Regional Programming Contest, Винница & Бухарест, Октябрь 19, Задача D