Truy vấn Phép toán XOR

Xem dưới dạng PDF

Gửi bài giải

Điểm: 50
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Trong một giải đấu khoa học máy tính, bạn được giao nhiệm vụ quản lý một tập hợp các số nguyên bằng cách thực hiện các thao tác truy vấn phức tạp. Ban đầu, bạn được cung cấp một tập hợp \(S\) rỗng và phải thực hiện các thao tác sau để quản lý nó:

  • \((1, x)\): Thêm số nguyên \(x\) vào tập hợp \(S\). Chú ý rằng trong tập hợp có thể có nhiều phần tử giống nhau.
  • \((2, x)\): Xóa một phần tử có giá trị \(x\) khỏi tập hợp \(S\).
  • \((3, x)\): Thực hiện phép toán \(XOR\) giữa mỗi phần tử trong \(S\) với số \(x\). Sau thao tác này, mỗi phần tử \(p\) trong \(S\) sẽ được thay thế bằng giá trị mới là \(p \oplus x\).
  • \((4, k)\): Tìm phần tử thứ \(k\) của tập hợp \(S\) nếu các phần tử được sắp xếp theo thứ tự không giảm (tăng dần). Đảm bảo rằng \(k\) luôn nhỏ hơn hoặc bằng kích thước hiện tại của \(S\).

Yêu cầu

  • Với mỗi truy vấn loại \(4\), bạn cần tìm ra phần tử thứ \(k\) sau khi tập hợp \(S\) đã được sắp xếp.

Dữ liệu vào

  • Dòng đầu tiên gồm số nguyên \(q\)
  • \(q\) dòng tiếp theo, mỗi dòng gồm hai số nguyên, một truy vấn.

Dữ liệu ra

  • In ra đáp án cho mỗi truy vấn loại \(4\)

Giới hạn

  • \(1 \le q \le 10^5\)
  • \(1 \le x \le 10^5\)
  • \(1 \le k\)

Input 1

5
1 1
2 1
1 4
1 5
4 2

Output 1

5

Nhận xét

Không có ý kiến tại thời điểm này.