[BOJ 14245] XOR
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
4
Time limit:
2.0s
Memory limit:
512M
Problem types
Allowed languages
문제가 길면 출제자도 수강생도 힘들다. 따라서 이 문제는 너무 친절하게도 짧다.</p>
수열이 주어 졌을 때 두 가지 연산을 할 수 있다.
- 특정 구간 [a, b]에 c를 xor한다.
- a번째 원소의 값을 출력한다.
초기 수열과 연산의 정보가 주어졌을 때, 그에 맞게 출력하라.
입력 형식
첫 번째 줄에 수열의 크기 n (0 < n ≤ 500,000)이 주어진다.</p>
두 번째 줄에 수열의 원소가 0번부터 n - 1번까지 차례대로 주어진다. 수열의 원소는 100,000보다 크지 않은 음이 아닌 정수이다.
세 번째 줄에 여러분이 수행할 쿼리의 개수 m (0 < m ≤ 500,000)이 주어진다.
그 다음 m개의 줄에는 t로 시작하는 쿼리가 주어진다. t가 1이면 a, b, c를 입력받아 구간 [a, b]의 각 원소에 c를 xor한다.(0 ≤ a ≤ b < n, 0 ≤ c ≤ 100,000) t가 2 이면 a를 입력받아 a번째 원소의 값을 출력한다. (0 ≤ a < n)
출력 형식
쿼리가 2가 들어올 때마다, a번째 원소를 출력하라.
예제 입력
5
1 2 3 4 5
6
1 0 4 9
2 0
2 1
2 2
2 3
2 4
예제 출력
8
11
10
13
12
Comments