#P1116. 圆环配对代价

圆环配对代价

题目描述

剧场的圆形舞台边缘依次摆放着 nn 盏信标灯,第 ii 盏灯写着一个小写字母 sis_i,并记录了一个能量值 aia_i

现在要把这些信标灯两两连接。只有字母相同的两盏灯才能连接,连接第 ii 盏和第 jj 盏灯的花费为 ai×aja_i\times a_j

所有连接线都会画在圆形舞台内部。为了避免线路冲突,任意两条连接线不能在圆内部相交,但允许在端点处相接。

请判断是否能够把所有信标灯全部配对;如果可以,输出最小总花费;如果不可以,输出 1-1

输入格式

第一行输入整数 TT,表示测试组数。

每组数据第一行输入整数 nn

第二行输入长度为 nn 的字符串 ss,其中 sis_i 表示第 ii 盏信标灯上的字母。

第三行输入 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示每盏信标灯的能量值。

输出格式

对每组数据输出一行一个整数。若可以完成所有配对,输出最小总花费;否则输出 1-1

样例

3
2
aa
5 7
4
abba
1 2 3 4
4
abab
1 10 2 20
35
10
-1

样例说明

第一组只能连接两盏 a 灯,花费为 5×7=355\times7=35

第二组可以连接第 11 盏和第 44 盏、第 22 盏和第 33 盏,总花费为 1×4+2×3=101\times4+2\times3=10

第三组若连接相同字母,则两条线段会相交,因此无解。

数据范围

子任务 分数 限制
11 3030 每种字母最多出现 22
22 字符串只包含一种字母
33 4040 1T1\le T,所有测试组的 nn 之和不超过 5005001n5001\le n\le 5001ai1061\le a_i\le 10^6ss 只包含小写英文字母