#P16152. [ICPC 2017 NAIPC] Unbalanced Parentheses
[ICPC 2017 NAIPC] Unbalanced Parentheses
题目描述
Barry 和 Bruce 是双胞胎兄弟。Bruce 喜欢保持他的括号序列平衡。Barry 想通过对序列进行一些操作来干扰 Bruce。每次操作是以下之一:
- 将序列中的一个 '(' 改为 ')'。
- 将序列中的一个 ')' 改为 '('。
Bruce 会尝试通过执行相同的操作来重新平衡括号序列。Bruce 不喜欢繁琐的事情,他最多会进行 次操作来使序列平衡。
平衡括号序列的定义如下:
- 空字符串
- ,其中 和 都是平衡的括号序列
- ,其中 是平衡的括号序列
Barry 希望扰乱序列,使得 Bruce 无法在 步内重新平衡该序列。改变序列中的某个位置需要付出努力,且不同位置的努力值不同。有些位置甚至令人愉悦地切换,需要负的努力值。每个位置最多只能改变一次。
Barry 讨厌付出努力,他想计算确保 Bruce 无法平衡该序列所需的最小努力值之和。
输入格式
每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。输入的第一行包含两个整数 和 ,其中 ()是序列的长度,()是 Bruce 的最大操作次数。
下一行包含一个长度为 的字符串,仅由字符 '(' 和 ')' 组成。该字符串不一定是平衡的。
接下来的 行,每行包含一个整数 (),表示按顺序改变每个括号的成本。
输出格式
输出一个整数,表示使 Bruce 无法平衡该字符串所需的最小努力值之和。如果无论 Barry 如何操作,Bruce 总能重新平衡该字符串,则输出一个问号(?)。
4 1
((()
480
617
-570
928
480
4 3
)()(
-532
870
617
905
?
提示
翻译由 DeepSeek V3.2 完成