SOJ ONLINE JUDGE

희소한 수열

난이도: Platinum I 출제자: rlatjwls7882 시간 제한: 1000 ms 메모리 제한: 512 MB
세그먼트 트리

$A_0,A_1,\ldots,A_{2^{30}-1}$이 모두 0인 수열 $A$가 있다. $Q$개의 쿼리를 순서대로 처리하라.

처음에 $ans=0$이다. 쿼리는 다음 중 하나이다.

  • 1 a b x: $l=a \oplus ans$, $r=b \oplus ans$로 정한다. 만약 $l>r$이면 두 값을 바꾼 뒤 $A_l,A_{l+1},\ldots,A_r$에 $x$를 더한다. $(0 \leq a,b < 2^{30},\ 1 \leq x \leq 1\,000)$
  • 2 a b: $l=a \oplus ans$, $r=b \oplus ans$로 정한다. 만약 $l>r$이면 두 값을 바꾼 뒤 $A_l,A_{l+1},\ldots,A_r$의 최댓값을 출력한다. $(0 \leq a,b < 2^{30})$

2 a b 쿼리에서 출력한 값이 다음 쿼리의 $ans$가 된다.

입력

첫 번째 줄에 쿼리의 개수 $Q$가 주어진다. $(1 \leq Q \leq 200\,000)$

두 번째 줄부터 $Q$개의 줄에 걸쳐 쿼리가 하나씩 주어진다.

출력

2 a b 쿼리마다 구간의 최댓값을 한 줄에 하나씩 출력한다.

예제 입력 1

7
1 2 5 3
2 0 10
1 0 2 4
2 1 6
1 7 7 2
2 7 7
2 0 3

예제 출력 1

3
7
2
7

제출