1S/512M
apiadu 喜欢回文串。
现在有一个长度为 、仅由 ( 和 ) 组成的字符串 ,以及一个数组 ( 和 的下标均从 开始)。apiadu 可以对字符串 进行任意次操作:
( 变为 ),) 变为 ()。请帮 apiadu 计算将字符串 变为一个回文串所需的最少金币数量。
一个字符串是回文串,当且仅当这个字符串从左向右读和从右向左读是完全一样的。例如,字符串 racecar 和 ()( 都是回文串,而 hello 和 (()) 则不是。
第一行包含一个正整数 ,表示字符串 和代价数组 的长度。
第二行包含一个长度为 的字符串 。
第三行包含 个正整数 ,表示修改 的第 个位置需要的金币数量。
输出一个整数,表示将字符串 变为回文串的最少金币数量。
8
())((())
1 2 3 4 5 6 7 8
4
修改位置为 的字符,此时 变成了 ))(((())。需要花费 个金币。 可以证明这是最少的花费金币数。
对于 的数据,, 。字符串 仅由 ( 和 ) 组成。