아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Mascot Song

면접 대비

시간 제한1초메모리 제한32 MB

요약
원소를 바꾸거나 전체를 왼쪽으로 회전시킨 뒤 엄격히 증가하는 구간의 개수를 매 쿼리마다 구합니다.
난이도

보통10점 중 6점

유형
배열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Fuleco는 길이 nn인 정수열 A1,…,AnA_1, \ldots, A_n로 곡을 씁니다. 연속 부분 Ai,…,AjA_i, \ldots, A_j (1≤i≤j≤n1 \le i \le j \le n)가 아래를 모두 만족하면 블록입니다.

  • i=1i=1이거나 Ai≤Ai−1A_i \le A_{i-1}
  • j=nj=n이거나 Aj≥Aj+1A_j \ge A_{j+1}
  • Ai<Ai+1<⋯<AjA_i < A_{i+1} < \cdots < A_j

모든 원소는 정확히 하나의 블록에 속합니다.

시작 수열과 qq개의 쿼리가 주어집니다.

  • 1 x y: Ax←yA_x \leftarrow y
  • 2 z: 수열을 왼쪽으로 zz칸 순환 이동 (맨 앞 원소는 맨 뒤로)

각 쿼리 직후 블록 개수를 출력하세요.

입력

첫째 줄: nn.

둘째 줄: A1,…,AnA_1, \ldots, A_n.

셋째 줄: qq.

다음 qq줄: 쿼리 (1 x y 또는 2 z).

출력

각 쿼리마다 블록 개수를 한 줄에 하나씩, 입력 순서대로 출력한다.

제한

2≤n≤200 0002 \le n \le 200\,000, 1≤Ai≤1091 \le A_i \le 10^9, 1≤q≤200 0001 \le q \le 200\,000.

예제6

  1. 예제 1

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

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

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

    입력
    4
    10 1 10 1
    2
    1 2 10
    2 3
    
    예상 출력
    4
    3
    
  5. 예제 5

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

    입력
    8
    1 3 2 4 5 1 6 7
    3
    2 4
    1 5 9
    2 2
    
    예상 출력
    4
    4
    4