수열과 쿼리 37

면접 대비

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

요약
배열에서 한 원소를 바꾸는 갱신과 구간에 짝수 또는 홀수가 몇 개인지 세는 질의를 처리한다.
난이도

쉬움10점 중 3점

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

문제

길이가 NN인 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 있다. 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • 1 i x: AiA_i를 xx로 바꾼다.
  • 2 l r: l≤i≤rl \le i \le r인 모든 AiA_i 중에서 짝수의 개수를 출력한다.
  • 3 l r: l≤i≤rl \le i \le r인 모든 AiA_i 중에서 홀수의 개수를 출력한다.

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

입력

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

둘째 줄에는 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. (1≤Ai≤1091 \le A_i \le 10^9)

셋째 줄에는 쿼리의 개수 MM (1≤M≤100 0001 \le M \le 100\,000)이 주어진다.

넷째 줄부터 MM개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. (1≤i≤N1 \le i \le N, 1≤l≤r≤N1 \le l \le r \le N, 1≤x≤1091 \le x \le 10^9)

출력

2, 3번 쿼리의 정답을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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