만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

괄호

시간 제한0.3초메모리 제한1024 MB

요약
균형 잡힌 괄호 부분 문자열마다 정규 괄호 수열로 만드는 데 필요한 최소 교환 횟수를 구합니다.
난이도

보통10점 중 6점

유형
누적 합, 문자열, 그리디
정답자
아직 제출이 없습니다

문제

괄호를 싫어하는 사람이 있을까?

사슈카는 2N2N개의 괄호로 이루어진 괄호 열 S=s1s2…s2NS=s_1 s_2 \dots s_{2N}을 발견했다. 여는 괄호와 닫는 괄호는 각각 NN개이다. 그녀는 괄호 열의 어지러움을, 올바른 괄호 열로 만들기 위해 필요한 원소 교환 횟수의 최솟값으로 정의한다. 올바른 괄호 열은 다음 규칙을 따른다.

  • 빈 열은 올바른 괄호 열이다.
  • 비어 있지 않은 SS는 올바른 괄호 열 AA, BB가 존재해서 S=S=(+A+)+B로 쓸 수 있을 때, 그때에만 올바른 괄호 열이다. 여기서 ++는 이어 붙이기를 뜻한다.

사슈카는 QQ개의 열 T1,T2,…,TQT_1, T_2, \dots, T_Q의 어지러움을 알고 싶어 한다. ii번째 열 Ti=sLisLi+1…sRiT_i=s_{L_i} s_{L_i+1} \dots s_{R_i}는 SS에서 위치 LiL_i부터 RiR_i까지의 모든 원소로 이루어진다. 모든 TiT_i는 여는 괄호와 닫는 괄호의 개수가 같다. QQ개의 질문에 답하는 프로그램 parentheses를 작성하라.

입력

첫 줄에 세 정수 NN, QQ, GG가 주어진다. 각각 열에 있는 여는 괄호의 개수, 질문의 개수, 이 테스트가 속한 서브태스크 번호이다. 둘째 줄에는 괄호 s1s2…s2Ns_1 s_2 \dots s_{2N}이 주어진다. 마지막 QQ개의 줄에는 ii번째 질문의 위치를 나타내는 정수 LiL_i와 RiR_i가 한 줄에 하나씩 주어진다.

출력

표준 출력에 한 줄에 하나씩 수를 출력한다. ii번째 수는 TiT_i를 올바른 괄호 열로 만드는 데 필요한 교환 횟수의 최솟값이다.

제한

  • 1≤N,Q≤2×1051 \leq N, Q \leq 2 \times 10^5
  • 1≤Li<Ri≤2×N1 \leq L_i < R_i \leq 2 \times N
  • 모든 질문은 서로 다르다.

예제2

  1. 예제 1

    입력
    3 1 1
    )())((
    1 6
    
    예상 출력
    1
    
  2. 예제 2

    입력
    5 10 1
    ()))(()(()
    2 9
    6 7
    1 10
    3 8
    7 10
    3 10
    9 10
    4 7
    4 5
    3 6
    
    예상 출력
    2
    0
    1
    1
    1
    1
    0
    1
    1
    1