페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3592

배열과 쿼리 7 3s 1024MB

문제

길이가 0인 배열 A가 있다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.

  1. v : 배열 A의 끝에 v를 추가한다.

  2. x y v : v^Ax, v^Ax+1, …, v^Ay 중 가장 큰 값을 출력한다. (^은 xor 연산이다.)

  3. k : 배열 A의 마지막 k개를 제거한다. (단, 배열이 비어있다면 제거하지 않는다.)


입력

첫째 줄에 쿼리의 개수 q (1 ≤ q ≤ 500,000)가 주어진다. 

다음 q개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. (1 ≤ x ≤ y ≤ n, 0 ≤ v ≤ 500,000, 1 ≤ k ≤ n, n은 현재 A의 길이)


출력

2번 쿼리가 주어질 때 마다 정답을 한 줄에 하나씩 출력한다.


예제

10

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

5
5
0
4
7
로그인해야 코드를 작성할 수 있어요.