atcoder#ABC175F. [ABC175F] Making Palindrome

[ABC175F] Making Palindrome

配点 : 600600

問題文

英小文字から成る NN 個の文字列 S1,S2,,SNS_1, S_2, \cdots, S_N があります。

高橋君はまずこれらの文字列から重複を許して合計 11 個以上選んだ後、選んだ文字列を好きな順番で連結することで、回文であるような文字列を作ろうとしています。

文字列 SiS_i11 個使うにはコストが CiC_i かかり、同じ文字列であっても使った個数の分だけコストがかかります。

上述の方法で回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を求めてください。

また、どのように選んでも回文を作ることが不可能である場合は 1-1 を出力してください。

制約

  • 1N501 \leq N \leq 50
  • 1Si201 \leq |S_i| \leq 20
  • SiS_i は英小文字から成る
  • 1Ci1091 \leq C_i \leq 10^9

入力

入力は以下の形式で標準入力から与えられる。

NN

S1S_1 C1C_1

S2S_2 C2C_2

::

SNS_N CNC_N

出力

回文を作ることのできるように文字列を選ぶ方法のうち、コストの和としてありうる値の最小値を出力せよ。不可能である場合は 1-1 を出力せよ。

3
ba 3
abc 4
cbaa 5
7

ba, abc, cbaa があります。

例えば、ba, abc11 個ずつ使うとコストは 77 で、abc, ba の順で連結すると回文になります。 また、abc, cbaa11 個ずつ使うとコストは 99 で、cbaa, abc の順で連結すると回文になります。

コスト 77 未満で回文を作ることはできないので、77 を出力してください。

2
abcab 5
cba 3
11

abcab11 個、cba22 個選んで、abcab, cba, cba の順で連結すると回文になり、コストは 1111 です。

4
ab 5
cba 3
a 12
ab 10
8

a11 個だけ選んで回文とすることもできますが、abcba を選んで連結する方がコストが小さいです。

2
abc 1
ab 2
-1

回文を作ることが不可能であるので、1-1 を出力してください。