Игорь Дмитриев
Игорь Дмитриев

Помогите решить задачу на нахождение палиндромов.

Овладев Изумрудным городом, Урфин Джюс долго думал над тем как ему именоваться и в конце концов остановился на титуле, который выглядел так: Урфин Первый, могущественный король Изумрудного города и сопредельных стран, владыка, сапоги которого попирают Вселенную.

А еще Урфин Джюс возомнил себя волшебником, и теперь пытается убедить в этом жителей изумрудного города. Все волшебные заклинания, которые необходимо произносить Урфину Первому, должны быть палиндромами. Палиндром — это последовательность символов, которая читается слева направо и справа налево одинаково. Например, neveroddoreven, deleveled, level, madam. И вот теперь мудрый филин Гуамоко должен придумывать палиндромы для своего хозяина Урфина Джюса.

Для того, чтобы получить палиндром, Гуамоко решил поступить следующим образом — взять какое-нибудь слово и стереть в нем некоторые буквы так, чтобы в результате получился палиндром. Конечно же, Гуамоко хочет стирать как можно меньше букв, ведь мудрому филину не хочется много работать.

Вам необходимо найти минимально возможное количество букв, которое должен стереть Гуамоко в заданном слове, чтобы получился палиндром, а также сам получившийся палиндром.
Формат входного файла palin.dat

Текстовый файл palin.dat содержит единственную строку, состоящую только из маленьких букв латинского алфавита. Строка содержит не менее 1 и не более 300 символов.
Формат выходного файла palin.sol

Текстовый файл palin.sol должен содержать две строки.

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

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

Евгений Бардюк
Евгений Бардюк

Идете справа-слева по строке, пока она удовлетворяет палиндромности.
Если что-то не так - пытаемся удалить левую-правую букву по очереди и проверяем дальше в рекурсии палиндромность.
Но за счет рекурсии получается возможность большого количества вариантов.
Их надо отсекать - проверять возможность существования, превышения уже достигнутой возможной длины (может найдем короче палиндром) и все в этом духе.

Похожие вопросы
Помогите решить задачу по С# :-)
помогите решить задачу на с++
Помогите решить задачу по С++))))))
Помогите решить задачу по сопромату на нахождение площади сечения.
Помогите решить задачу. После нахождения радиуса не получается дальше решить.
Помогите решить задачу по химии на нахождение массы.
Помогите решить задачу по информатике. Дана строка символов определить является ли она палиндромом.
Помогите решить задачу нахождение объема видеопамяти
Помогите решить задачу по нахождению площади и периметра!
Помогите решить задачи на нахождение количества информации.