luogu#P12182. DerrickLo's Brackets (UBC002E)

DerrickLo's Brackets (UBC002E)

题目背景

The English statement is provided here. You must submit your solution only at the Chinese version.

题目描述

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 外所有输入数据为整数。