#codefestival2017qualcc. [code_festival_2017_qualc_c]Inserting 'x'
[code_festival_2017_qualc_c]Inserting 'x'
Problem Statement
We have a string consisting of lowercase English letters. Snuke can perform the following operation repeatedly:
- Insert a letter
x
to 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.
Sample Input 1
xabxa
Sample Output 1
2
One solution is as follows (newly inserted x
are shown in bold):
xabxa → xaxbxa → xaxbxax
Sample Input 2
ab
Sample Output 2
-1
No sequence of operations can turn into a palindrome.
Sample Input 3
a
Sample Output 3
0
is a palindrome already at the beginning.
Sample Input 4
oxxx
Sample Output 4
3
One solution is as follows:
oxxx → xoxxx → xxoxxx → xxxoxxx