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
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.
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