수열과 쿼리 1.5

시간 제한1.5초메모리 제한512 MB

요약
배열에서 한 원소를 바꾸는 갱신과 구간에서 k보다 큰 원소의 개수를 세는 질의를 처리한다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 정렬, 이분 탐색, 배열
정답자
아직 제출이 없습니다

문제

길이가 N인 수열 A1, A2, ..., AN이 주어진다. 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 1 i v: Ai를 v로 바꾼다. (1 ≤ i ≤ N, 1 ≤ v ≤ 104)
  • 2 i j k: Ai, Ai+1, ..., Aj로 이루어진 부분 수열에서 k보다 큰 원소의 개수를 출력한다. (1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ 104)

수열의 인덱스는 1부터 시작한다.

입력

첫째 줄에 수열의 크기 N (1 ≤ N ≤ 100,000)이 주어진다.

둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 104)

셋째 줄에는 쿼리의 개수 M (2 ≤ M ≤ 200,000)이 주어진다.

넷째 줄부터 M개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 2번 쿼리는 하나 이상 주어진다.

출력

2번 쿼리에 대해서 정답을 한 줄에 하나씩 순서대로 출력한다.

예제1

  1. 예제 1

    입력
    5
    5 1 2 3 4
    9
    2 2 4 1
    2 4 4 4
    2 1 5 2
    1 2 5
    2 2 4 1
    1 4 5
    2 4 4 4
    1 5 1
    2 1 5 2
    
    예상 출력
    2
    0
    3
    3
    1
    3