atcoder#CODEFESTIVAL2017QUALCC. Inserting 'x';
Inserting 'x';
Score : points
Problem Statement
We have a string consisting of lowercase English letters. Snuke can perform the following operation repeatedly:
- Insert a letter
xto any position in of his choice, including the beginning and end of .
Snuke's objective is to turn into a palindrome. Determine whether the objective is achievable. If it is achievable, find the minimum number of operations required.
Notes
A palindrome is a string that reads the same forward and backward.
For example, a, aa, abba and abcba are palindromes, while ab, abab and abcda are not.
Constraints
- consists of lowercase English letters.
Input
Input is given from Standard Input in the following format:
Output
If the objective is achievable, print the number of operations required.
If it is not, print -1 instead.
xabxa
2
One solution is as follows (newly inserted x are shown in bold):
xabxa → xaxbxa → xaxbxax
ab
-1
No sequence of operations can turn into a palindrome.
a
0
is a palindrome already at the beginning.
oxxx
3
One solution is as follows:
oxxx → xoxxx → xxoxxx → xxxoxxx