시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1.5 초 256 MB 524 67 51 21.250%

문제

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

  • 1 l r x : 모든 l ≤ i ≤ r에 대해, Ai를 Ai ∨ x로 바꾼다. (단, ∨는 bitwise OR 연산이다.)

  • 2 l r : Ai = K를 만족하는 l ≤ i ≤ r의 개수를 출력한다.

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

입력

첫째 줄에 수열의 크기 N (1 ≤ N ≤ 250,000), K (0 ≤ K < 230)가 주어진다.

둘째 줄에는 A1, A2, ..., AN이 주어진다. (0 ≤ Ai < 230)

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

넷째 줄부터 M개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. 2번 쿼리는 하나 이상 주어진다. (1 ≤ l ≤ r ≤ N, 0 ≤ x < 230)

출력

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

예제 입력 1

5 3
1 2 3 4 5
3
2 1 5
1 1 3 2
2 1 5

예제 출력 1

1
2

예제 입력 2

7 7
7 4 2 5 7 5 4
5
2 1 7
1 2 4 7
2 1 7
1 6 7 3
2 1 7

예제 출력 2

2
5
7

예제 입력 3

6 5
4 2 1 5 3 1
7
2 1 3
2 1 6
1 5 6 4
2 1 6
2 3 5
1 1 6 8
2 1 6

예제 출력 3

0
1
2
1
0

출처

High School > 서울과학고등학교 > 2020 SciOI #1 A번