atcoder#ABC286C. [ABC286C] Rotate and Palindrome
[ABC286C] Rotate and Palindrome
Score : points
Problem Statement
You are given a string of length . Let be the -th character of from the left.
You may perform the following two kinds of operations zero or more times in any order:
- Pay yen (the currency in Japan). Move the leftmost character of to the right end. In other words, change to .
- Pay yen. Choose an integer between and , and replace with any lowercase English letter.
How many yen do you need to pay to make a palindrome?
What is a palindrome?
A string T is a palindrome if and only if the i-th character from the left and the i-th character from the right are the same for all integers i (1 \le i \le |T|), where |T| is the length of T.Constraints
- is a string of length consisting of lowercase English letters.
- All values in the input except for are integers.
Input
The input is given from Standard Input in the following format:
Output
Print the answer as an integer.
5 1 2
rrefa
3
First, pay yen to perform the operation of the second kind once: let to replace with e
. is now rrefe
.
Then, pay yen to perform the operation of the first kind once. is now refer
, which is a palindrome.
Thus, you can make a palindrome for yen. Since you cannot make a palindrome for yen or less, is the answer.
8 1000000000 1000000000
bcdfcgaa
4000000000
Note that the answer may not fit into a -bit integer type.