괄호 문자열을 다음과 같이 정의한다.
- 빈 문자열은 괄호 문자열이다.
- S가 괄호 문자열이면 (S)도 괄호 문자열이다.
- S와 T가 괄호 문자열이면 ST도 괄호 문자열이다.
- 괄호 문자열은 위 세 규칙으로만 만들 수 있다.
'('와 ')'로 이루어진 문자열 S=s1s2…sN과 쿼리 M개가 주어진다. 각 쿼리는 두 정수 li, ri (1≤li≤ri≤N)로 이루어진다.
각 쿼리마다 부분 문자열 slisli+1…sri의 부분 수열 중에서 괄호 문자열이면서 가장 긴 것의 길이를 구한다.
문자열 S=s1s2…sN의 길이가 ∣x∣인 부분 수열은 1≤k1<k2<⋯<k∣x∣≤N을 만족하는 문자열 x=sk1sk2…sk∣x∣을 뜻한다.