编程题
### 问题描述 幼儿园小班的浩楠同学今天刚学习了合法括号序列的概念。 他有一个括号序列 $s$ ,将第 $i$ 个位置取反(即 `'('` 变为 `')'` ,`'('` 变为 `')'` )的代价为 $a_i$,他想把括号序列变成合法的,至少需要多少代价? 合法的括号序列定义如下: - $()$ 是合法的括号序列。 - 如果 $A$ 是合法的括号序列,那么 $(A)$ 是合法的括号序列。 - 如果 $A,B$ 是合法的括号序列,那么 $AB$ 是合法的括号序列。 ### 输入格式 共 $3$ 行,第一行一个偶数 $n$,表示括号序列的长度。 第二行一个字符串 $s$,表示原括号序列。 第三行 $n$ 个整数 $a_i$,表示取反第 $i$ 个位置的代价。 ### 输出格式 共一行,一个整数 $ans$ ,表示最小的代价。 ### 样例输入 ```text 4 ((() 1 2 3 1 ``` ### 样例输出 ```text 2 ``` ### 说明 将第 $2$ 个位置取反,代价为 $2$,最终括号序列为 $()()$。 ### 评测数据规模 对于 $100$% 的评测数据,$1\leq n \leq 2 \times 10^3,1 \leq a_i \leq 10^5$。
查看答案
赣ICP备20007335号-2