Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập bitopstruyvancapxornhonhat

Truy vấn cặp XOR nhỏ nhất

Dễ Heap, Set, Map, ...

  • 100 Điểm
  • 2.0s Thời gian
  • 256M Bộ nhớ
  • 0% Tỉ lệ AC
  • 0 Số AC

Cho một dãy số nguyên, hiện tại chưa có số nào trong dãy số này. Cho \(q\) truy vấn thuộc một trong các dạng sau:

  • 1 x: Thêm số nguyên \(x\) vào dãy số này.

  • 2 x: Xóa một số \(x\) ra khỏi dãy số này, đảm bảo hiện tại có ít nhất một số \(x\) ở trong dãy số.

  • 3: Hãy in ra giá trị XOR nhỏ nhất có thể của hai số nguyên khác nhau (khác nhau về vị trí trong dãy, giá trị có thể trùng nhau) trong dãy số. Đảm bảo lúc này trong dãy số có ít nhất hai số.

Input

  • Dòng đầu tiên gồm một số nguyên \(q\) (\(1 \le q \le 3 \times 10^5\)).

  • \(q\) dòng tiếp theo, mỗi dòng gồm một truy vấn theo định dạng trên (\(0 \le x < 2^{30}\)).

Output

In ra đáp án là một số nguyên cho mỗi truy vấn loại \(3\).

Example

Input:

9
1 2
1 10
3
1 3
3
2 2
3
1 10
3

Output:

8
1
9
0

Note

Sau các truy vấn 1 2 và 1 10, dãy số hiện có là \(\{2, 10\}\). Truy vấn 3 đầu tiên in ra \(2 \oplus 10 = 8\).

Sau truy vấn 1 3, dãy số hiện có là \(\{2, 10, 3\}\). Truy vấn 3 tiếp theo in ra giá trị nhỏ nhất trong các cặp: \(2 \oplus 10 = 8\), \(2 \oplus 3 = 1\), \(10 \oplus 3 = 9\), tức là \(1\).

Sau truy vấn 2 2 (xóa số \(2\)), dãy số hiện có là \(\{10, 3\}\). Truy vấn 3 tiếp theo in ra \(10 \oplus 3 = 9\).

Sau truy vấn 1 10 (thêm thêm một số \(10\) nữa), dãy số hiện có là \(\{10, 3, 10\}\). Truy vấn 3 cuối cùng in ra giá trị nhỏ nhất trong các cặp: \(10 \oplus 3 = 9\), \(10 \oplus 10 = 0\), \(3 \oplus 10 = 9\), tức là \(0\) (hai số có giá trị \(10\) được coi là hai phần tử khác nhau trong dãy).

Bình luận

Chưa có bình luận nào.