#abc175f. [abc175_f]Making Palindrome
[abc175_f]Making Palindrome
Problem Statement
We have strings of lowercase English letters: .
Takahashi wants to make a string that is a palindrome by choosing one or more of these strings - the same string can be chosen more than once - and concatenating them in some order of his choice.
The cost of using the string once is , and the cost of using it multiple times is multiplied by that number of times.
Find the minimum total cost needed to choose strings so that Takahashi can make a palindrome.
If there is no choice of strings in which he can make a palindrome, print .
Constraints
- consists of lowercase English letters.
Input
Input is given from Standard Input in the following format:
Output
Print the minimum total cost needed to choose strings so that Takahashi can make a palindrome, or if there is no such choice.
Sample Input 1
3
ba 3
abc 4
cbaa 5
Sample Output 1
7
We have ba
, abc
, and cbaa
.
For example, we can use ba
once and abc
once for a cost of , then concatenate them in the order abc
, ba
to make a palindrome. Also, we can use abc
once and cbaa
once for a cost of , then concatenate them in the order cbaa
, abc
to make a palindrome.
We cannot make a palindrome for a cost less than , so we should print .
Sample Input 2
2
abcab 5
cba 3
Sample Output 2
11
We can choose abcab
once and cba
twice, then concatenate them in the order abcab
, cba
, cba
to make a palindrome for a cost of .
Sample Input 3
4
ab 5
cba 3
a 12
ab 10
Sample Output 3
8
We can choose a
once, which is already a palindrome, but it is cheaper to concatenate ab
and cba
.
Sample Input 4
2
abc 1
ab 2
Sample Output 4
-1
We cannot make a palindrome, so we should print .