Thiết bị đặc biệt

Xem PDF

Điểm: 2300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Thuận có một thiết bị đặc biệt và một tập hợp \(S\). Thiết bị của Thuận có thể thực hiện các phép toán sau đây:

  • Thêm một số nguyên không âm \(x\) vào một tập hợp \(S\).
  • Xóa một số nguyên không âm \(x\) khỏi tập hợp \(S\) (nếu nó tồn tại trong tập hợp \(S\)).
  • Đếm số lượng các số \(y\) trong tập hợp \(S\) sao cho \(x \oplus y < k\), với \(x\) là một số nguyên không âm cho trước và \(k\) là một hằng số không âm cho trước. Ở đây, \(\oplus\) đại diện cho phép toán XOR bitwise.

Ban đầu, tập hợp \(S\) là rỗng. Bạn cần xử lý \(q\) truy vấn trên thiết bị này.

Input

  • Dòng đầu tiên chứa số nguyên \(q\) \((1 \leq q \leq 10^{5})\) - số lượng truy vấn.
  • \(q\) dòng tiếp theo, mỗi dòng thể hiện \(1\) truy vấn thuộc một trong ba dạng sau:
    • \(+\) \(x\): thêm \(x\) vào tập hợp \(S\) \((0 \leq x \leq 10^{8})\).
    • \(-\) \(x\): xóa \(x\) khỏi tập hợp \(S\) \((0 \leq x \leq 10^{8})\).
    • \(?\) \(x\) \(k\): đếm số lượng các số \(y\) trong \(S\) sao cho \(x \oplus y < k\) \((0 \leq x, k \leq 10^{8})\).

Output

  • Đối với truy vấn dạng \texttt{?} \(x\) \(k\), in ra trên một dòng số lượng các số \(y\) thỏa mãn điều kiện đã cho.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(q \leq 1000\).
  • Subtask \(2\) (\(20\%\) số điểm): \(x\) có dạng \(2^{k}\).
  • Subtask \(3\) (\(60\%\) số điểm): Không ràng buộc gì thêm.

Example

Test 1
Input
5

+ 3
+ 4
? 6 3
- 4
? 6 3
Output
1
0
Note
 Tập $S = \{3 , 4\}$ sau $2$ truy vấn đầu tiên. Ở truy vấn $3$ cho $x = 6$ và $k = 3$, chỉ có một phần tử $y$ thỏa mãn đó là $y = 4$ (vì $x \oplus y = 2 < 3$) nên kết quả in ra là $1$.

Bình luận

Sắp xếp theo
Tải bình luận...

Không có bình luận nào.