atcoder#ABC175F. [ABC175F] Making Palindrome
[ABC175F] Making Palindrome
配点 : 点
問題文
英小文字から成る 個の文字列 があります。
高橋君はまずこれらの文字列から重複を許して合計 個以上選んだ後、選んだ文字列を好きな順番で連結することで、回文であるような文字列を作ろうとしています。
文字列 を 個使うにはコストが かかり、同じ文字列であっても使った個数の分だけコストがかかります。
上述の方法で回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を求めてください。
また、どのように選んでも回文を作ることが不可能である場合は を出力してください。
制約
- は英小文字から成る
入力
入力は以下の形式で標準入力から与えられる。
出力
回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を出力せよ。不可能である場合は を出力せよ。
3
ba 3
abc 4
cbaa 5
7
ba
, abc
, cbaa
があります。
例えば、ba
, abc
を 個ずつ使うとコストは で、abc
, ba
の順で連結すると回文になります。
また、abc
, cbaa
を 個ずつ使うとコストは で、cbaa
, abc
の順で連結すると回文になります。
コスト 未満で回文を作ることはできないので、 を出力してください。
2
abcab 5
cba 3
11
abcab
を 個、cba
を 個選んで、abcab
, cba
, cba
の順で連結すると回文になり、コストは です。
4
ab 5
cba 3
a 12
ab 10
8
a
を 個だけ選んで回文とすることもできますが、ab
と cba
を選んで連結する方がコストが小さいです。
2
abc 1
ab 2
-1
回文を作ることが不可能であるので、 を出力してください。