Problem
Bạn có q truy vấn và một bộ nhiều A ban đầu chỉ chứa số 0. Có ba loại truy vấn:
- +x — thêm số x vào tập hợp A.
- -x — loại bỏ một lần xuất hiện của số x khỏi nhiều tập hợp A. Đảm bảo rằng ít nhất một số x có mặt trong nhiều tập hợp tại thời điểm này.
- ? x — bạn được cung cấp một số x, bạn cần tính OR (còn được gọi là XOR) loại trừ theo bit tối đa của số x và một số y từ tập nhiều A.
Nhiều bộ — đây là một tập hợp cho phép nhiều phần tử giống hệt nhau.
Đầu vào:
Dòng đầu tiên chứa số q (1 ≤ q ≤ 200000) — số lượng yêu cầu mà Vasiliy cần xử lý.
Mỗi q dòng sau của nội dung nhập chứa một trong ba ký tự "+", "-" hoặc "?" và số x
i (1 ≤ x
i ≤ 10
9). Đảm bảo rằng có ít nhất một truy vấn "?" trong đầu vào.
Lưu ý rằng số 0 sẽ luôn xuất hiện trong nhiều tập hợp.
Đầu ra:
Đối với mọi yêu cầu như "?" in một số nguyên duy nhất — giá trị lớn nhất của phép XOR theo bit cho số x
i và bất kỳ số nào từ tập hợp nhiều A.
Ví dụ:
Đầu vào |
Đầu ra |
10
+8
+9
+11
+ 6
+ 1
? 3
- 8
? 3
? 8
? 11 |
11
10
14
13 |