자료 구조 맞히기
시간 제한5초메모리 제한256 MB
배열에 값을 추가하고, 구간 합을 구하고, 모든 원소를 x와 XOR하고, 배열을 정렬하는 자료구조를 구현합니다.
문제
길이가 인 정수 배열 가 주어진다. 원소는 1부터 까지 연속된 번호로 매겨져 있다. 다음 네 종류의 쿼리를 개 처리하라.
- 정수 를 배열 의 끝에 추가한다.
- 값을 출력한다. ()
- 각 원소 를 로 바꾼다. 여기서 는 비트 XOR 연산이다.
- 배열 를 정렬한다.
이 쿼리들을 처리하는 자료 구조를 구현하라.
입력
첫째 줄에 초기 배열의 크기 ()이 주어진다. 둘째 줄에는 개의 정수 ()가 주어진다. 셋째 줄에는 쿼리의 개수 ()이 주어진다. 이어지는 개 줄에는 1 , 2 , 3 , 4 중 하나의 형식으로 쿼리가 한 줄에 하나씩 주어진다.
1번과 3번 쿼리에서 이다. 2번 쿼리의 와 는 배열의 범위 안에 있다. 각 테스트 케이스에는 2번 쿼리가 적어도 하나 있다.
출력
2번 쿼리마다 구한 합을 한 줄에 하나씩 출력한다.