#CF380C. Sereja 与括号序列
Sereja 与括号序列
C. Sereja 与括号序列
每次测试的时间限制: 秒
内存限制: 兆字节
Sereja 有一个括号序列 ,换句话说,一个长度为 的字符串 ,由字符 "(" 和 ")" 组成。
Sereja 需要回答 个查询,每个查询由两个整数 描述()。第 个查询的答案是序列 的 最长正确括号子序列 的长度。请帮助 Sereja 回答所有查询。
有关子序列和正确括号序列的定义,请参见提示。
输入
第一行包含一个字符序列 (),没有空格。每个字符是 "(" 或 ")"。
第二行包含整数 ()——查询的数量。
接下来的 行,每行包含一对整数。第 行包含整数 ()——第 个查询的描述。
输出
对每个查询,在一行中输出答案。按照输入中的顺序输出答案。
示例
输入:
())(())(())(
7
1 1
2 3
1 2
1 12
8 12
5 11
2 10
输出:
0
0
2
10
4
6
6
提示
- 字符串 (其中 是字符串长度)的一个长度为 的子序列是字符串 ()。
- 正确括号序列是一个可以通过在字符串字符之间插入数字 和运算符 转换为正确算术表达式的括号序列。例如,括号序列
"()()"、"(())"是正确的(得到的表达式是"(1)+(1)"、"((1+1)+1)"),而")("和"("是不正确的。
对于第三个查询,所需的序列是 "()"。
对于第四个查询,所需的序列是 "()(())(())"。