만드는 중입니다

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

북극여우는 괄호를 뒤집어

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

요약
괄호 문자열에 괄호 뒤집기, 구간 뒤집기, 180도 회전 연산을 차례로 적용하고, 질의 구간에서 제거할 수 있는 올바른 괄호 쌍의 최대 개수를 구합니다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 문자열, 구현
정답자
아직 제출이 없습니다

문제

극지 연구소에서 연구하는 협이는 저번에 북극곰이 괄호를 찢는다는 특성을 알아낸 뒤로 괄호로 여러 실험을 하고 있었다. 잠시 쉬고 돌아온 협이는 실험 중이던 괄호가 바뀐 것을 알아챘다. 범인을 찾으려고 CCTV를 확인한 결과, 북극여우가 괄호들을 뒤집은 것이 드러났다. 북극에 사는 동물의 새로운 특성에 신이 난 협이는 북극여우의 습성을 관찰하려 한다. 협이는 관찰 결과로 올바른 괄호 쌍이 몇 개인지 세어 보려 한다.

올바른 괄호 쌍의 개수는 연속된 () 쌍 하나를 지우고 남은 문자열을 이어 붙이는 연산을 재귀적으로 반복할 때, () 쌍을 최대로 제거하는 횟수이다.

문자열 SS가 주어질 때, 북극여우는 다음 3가지 행동을 할 수 있다. ll, rr이 주어졌을 때, l≤i≤rl \le i \le r인 ii에 대해서

  • 11 ll rr: 모든 ii에 대해 sis_i가 '('이면 ')'으로, ')'이면 '('으로 바꾼다.
  • 22 ll rr: 모든 ii에 대해 문자 sis_i의 위치를 sr+l−is_{r+l-i}로 옮긴다.
  • 33 ll rr: 부분 문자열 sl,sl+1,⋯ ,srs_l, s_{l+1}, \cdots, s_r을 180도만큼 회전시킨다.

협이는 북극여우가 행동하는 중에 임의의 구간 [l,r][l,r]에 대해 올바른 괄호 쌍의 개수를 물어볼 수 있다.

  • 44 ll rr: 부분 문자열 sl,sl+1,⋯ ,srs_l, s_{l+1}, \cdots, s_r에서 올바른 괄호 쌍의 개수를 알려준다.

위 네 가지 질의를 순서대로 처리하면서 올바른 괄호 쌍이 몇 개인지 알려주자.

입력

첫 줄에 괄호 문자열 SS의 길이 NN과 질의의 개수 QQ가 공백으로 구분되어 주어진다. (1≤N=∣S∣≤1 000 0001 \le N = |S| \le 1\,000\,000, 1≤Q≤20 0001 \le Q \le 20\,000)

둘째 줄에 길이가 NN이고 '(' 또는 ')'로 이루어진 공백 없는 문자열 SS가 주어진다.

셋째 줄부터 QQ개의 줄에 걸쳐 질의의 정보 tt, ll, rr가 공백으로 구분되어 주어진다. (1≤t≤41 \le t \le 4, 1≤l≤r≤N1 \le l \le r \le N)

4번 질의는 하나 이상 주어지며, 입력으로 주어지는 수는 모두 정수이다.

출력

4번 질의에 대한 답을 한 줄에 하나씩 순서대로 출력한다.

예제4

  1. 예제 1

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

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

    입력
    15 20
    )()(()(()(()())
    1 3 4
    4 12 12
    4 3 15
    3 4 15
    2 5 7
    2 7 11
    3 8 15
    2 2 9
    2 7 15
    4 3 3
    3 2 12
    2 2 9
    2 4 7
    3 4 6
    4 9 12
    2 3 13
    1 11 12
    4 1 13
    2 4 13
    4 6 8
    
    예상 출력
    0
    6
    0
    1
    6
    0
    
  4. 예제 4

    입력
    1 1
    (
    4 1 1
    
    예상 출력
    0