물고기와 쿼리

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

요약
구간에 속한 조각의 방향을 모두 뒤집고, 매번 연속한 세 조각이 물고기 모양인 곳의 개수를 출력한다.
난이도

보통10점 중 6점

유형
세그먼트 트리, 연결 리스트
정답자
아직 제출이 없습니다

문제

다다스는 물고기를 아주 좋아해서 물고기 화석 하나를 소중히 간직하고 있다. 이 화석은 총 NN개의 조각으로 이루어져 있으며, 각 조각은 > 또는 < 중 하나의 모양을 갖는다. 모든 조각은 일렬로 나열되어 있으며, 각 조각은 왼쪽에서부터 1,2,⋯ ,N1, 2, \cdots, N번 조각이다.

모그는 다다스가 정말로 물고기를 좋아하는지를 확인해보기 위해 총 QQ번의 행동을 취한다. 각 행동은 다음 두 가지 중 하나이다:

  • 1 l r: l≤i≤rl \leq i \leq r를 만족하는 모든 정수 ii에 대해 ii번째 조각을 각각 180도 회전시킨다. 즉 >는 <로, <는 >로 바뀐다.
  • 2: 현재 화석에서 물고기의 개수를 출력한다. 물고기란, 연속된 세 조각이 ><> 또는 <>< 형태를 갖는 경우를 말한다.

다다스는 계산에 약하므로 여러분이 대신해서 모그의 행동을 처리해주어야 한다. 모그의 모든 행동에 올바르게 응답하자.

입력

첫 번째 줄에 양의 정수 NN이 주어진다. (1≤N≤3×1051\le N\le 3\times10^5)

두 번째 줄에 물고기 화석을 이루는 NN개의 조각이 공백 없이 주어진다. 각 조각은 >또는 <중 하나이다.

세 번째 줄에 양의 정수 QQ가 주어진다. (1≤Q≤3×1051\le Q\le 3\times10^5)

네 번째 줄부터 QQ개의 줄에 걸쳐 1번 또는 2번 쿼리가 주어진다. 2번 쿼리는 최소 한 개 이상 주어진다. (1≤l≤r≤N1\le l\le r\le N)

출력

2번 쿼리가 주어질 때마다 물고기 화석에서의 물고기의 개수를 출력하여라.

예제1

  1. 예제 1

    입력
    6
    ><>><>
    6
    2
    1 4 6
    2
    1 1 2
    1 2 3
    2
    
    예상 출력
    2
    4
    1