MAKEPALIN

Xem PDF

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 500M Input: bàn phím Output: màn hình

Cho \(n\) xâu \(s_1,s_2,\ldots,s_n\). Chi phí để sử dụng xâu \(s_i\)\(c_i\).
Lưu ý: Có thể sử dụng xâu \(s_i\) nhiều lần và chi phí là \(c_i\) nhân với số lần dùng.

Yêu cầu: Tìm chi phí tối thiểu để sử dụng các xâu \(s_i\) ghép lại với nhau thành xâu đối xứng.

Input

  • Dòng đầu chứa duy nhất một số nguyên dương \(n\) (\(1\leq n \leq 50\)) là số lượng xâu.
  • Dòng thứ \(i\) trong số \(n\) dòng tiếp theo chứa xâu \(s_i\) và số nguyên \(c_i\) là xâu thứ i và chi phí để sử dụng (1 \(\leq |s_i| \leq 20; 1\leq c_i \leq 10^9\)).

Output

  • In ra chi phí tối thiểu, in \(-1\) nếu không tạo được xâu đối xứng.

Example

Test 1

Input
3
ba 3
abc 4
cbaa 5
Output
7

Test 2

Input
2
abcab 5
cba 3
Output
11

Test 3

Input
2
abc 1
ab 2
Output
-1

Bình luận