#P12182. DerrickLo's Brackets (UBC002E)

DerrickLo's Brackets (UBC002E)

题目描述

DerrickLo 有一个长度为 nn 的正整数序列 aa,以及一个长度为 nn 的仅含有 () 的字符序列 tt。他现在要根据这两个序列生成 qq 组括号序列,具体地,他会选择两个在 [1,n][1,n] 中的正整数 l,rl,rlrl\le r 并对一个初始为空的字符串 SS 进行如下操作:

  • 从小到大枚举每个在 [l,r][l,r] 之间的正整数 ii,将 aia_itit_i 加到 SS 的末尾。

他希望你能在每次他生成了一个括号序列 SS 后告诉他 SS 的最长合法匹配子串的大小。

合法匹配串的定义如下:

  • 空串是合法匹配串。
  • AA 是合法匹配串,则 (A)(A) 为合法匹配串。
  • A,BA,B 都是合法匹配串,则 ABAB 为合法匹配串。
  • 除此以外的所有字符串都不是合法匹配串。

输入格式

第一行,两个正整数 n,qn,q

第二行,nn 个正整数表示 aa

第三行,一个字符串表示 tt

接下来 qq 行,每行两个正整数表示一次生成中的 l,rl,r

输出格式

qq 行,每行一个正整数表示答案。

3 2
2 3 1
()(
1 3
2 3
4
0

提示

样例说明

第一次生成的括号序列为 (()))(,它的最长合法匹配子串为 (())

第二次生成的括号序列为 )))(,它的最长合法匹配子串为空串。

数据范围

1n,q1061\le n,q\le 10^61ai1091\le a_i\le 10^9,每次生成中的 l,rl,r 满足 1lrn1\le l\le r\le ntt 仅由 () 组成。除 tt 外所有输入数据为整数。