Codeforces Round 620 (Div. 2) |
---|
Закончено |
Вернувшись к решению задач, Гильдонг взялся за изучение палиндромов. Он выяснил, что палиндром это строка, которая равна своему перевороту. Например, строки «pop», «noon», «x», и «kkkkkk» являются палиндромами, а строки «moon», «tv», и «abab» не являются. Пустая строка также является палиндромом.
Гильдонгу очень понравился этот концепт, так что он решил немного с ним поиграть. У него есть $$$n$$$ различных строк равной длины $$$m$$$. Он хочет удалить некоторые из этих строк (возможно, ни одну, или все) и переставить оставшиеся, чтобы их конкатенация была палиндромом. Он также хочет, чтобы палиндром был как можно длиннее. Помогите ему решить эту задачу!
В первой строке записаны два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 100$$$, $$$1 \le m \le 50$$$) — количество строк и длина каждой строки.
В следующих $$$n$$$ строках записаны строки длины $$$m$$$, состоящие только из строчных букв латинского алфавита. Все данные строки различны.
В первую строку выведите длину наибольшего палиндрома.
Во вторую строку выведите искомый палиндром. Если есть несколько возможных ответов, выведите любой. Если палиндром пуст, то можете как вывести пустую строку, так и не выводить эту строку вообще.
3 3 tab one bat
6 tabbat
4 2 oo ox xo xx
6 oxxxxo
3 5 hello codef orces
0
9 4 abab baba abcd bcde cdef defg wxyz zyxw ijji
20 ababwxyzijjizyxwbaba
В первом примере «battab» также является корректным ответом.
Во втором примере есть 4 разных возможных корректных ответа, включая ответ из примера. Мы не будем давать никаких подсказок, какими являются остальные ответы.
В третьем примере единственная возможная строка — пустая.
Название |
---|