C. 括价(brac)

    传统题 1000ms 256MiB

括价(brac)

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

括价(brac)

题目描述

Y 同学有一个长度为 nn 的字符串 ss,其中每个字符是 (、) 或 ?。

他要把每个 ? 替换成 ( 或 )。对于第 ii 个 ?:

  • 若替换成 (,需要花费 aia_i;
  • 若替换成 ),需要花费 bib_i。

请你求出使最终字符串成为合法括号序列的最小花费。若无法做到,输出 −1-1。

输入格式

第一行包含一个整数 nn。

第二行包含字符串 ss。

接下来若干行,按 ? 在字符串中从左到右出现的顺序,每行包含两个整数 ai,bia_i,b_i。

输出格式

输出一行一个整数,表示最小花费;若无解,输出 −1-1。

样例

样例输入 #1

2
??
3 5
4 1

样例输出 #1

4

数据范围与约定

对于 100%100\% 的数据,保证 1≤n≤2×1051 \le n \le 2\times 10^5,1≤ai,bi≤1091\le a_i,b_i\le 10^9。

测试点编号 分值 n≤n \le ai,bi≤a_i,b_i \le 特殊性质
1∼21 \sim 2 1010 2020 100100 无
3∼53 \sim 5 1515 2×1052\times 10^5 10910^9 特殊性质 A
6∼86 \sim 8 特殊性质 B
9∼129 \sim 12 2020 5×1045\times 10^4 无
13∼1613 \sim 16 2×1052\times 10^5 特殊性质 C
17∼2017 \sim 20 无
  • 特殊性质 A:保证 ss 中只有 ?。
  • 特殊性质 B:保证 ss 的第一个字符是 )。
  • 特殊性质 C:保证 ss 中没有 ?。