Đa tập của Vasiliy
Đề bài
Mô tả
Cho một đa tập (multiset) các số nguyên không âm. Ban đầu chỉ chứa đúng một phần tử là số . Đa tập là tập hợp cho phép các phần tử trùng nhau, nên một giá trị có thể xuất hiện nhiều lần trong .
Bạn cần xử lý truy vấn, mỗi truy vấn thuộc một trong ba loại:
+ x— thêm số nguyên vào .- x— xoá một bản sao của số nguyên khỏi . Dữ liệu đảm bảo trước truy vấn này trong có ít nhất một số .? x— in ra giá trị lớn nhất của với là một phần tử bất kỳ của , trong đó là phép XOR (hoặc loại trừ) trên bit.
Lưu ý rằng số ban đầu không bao giờ bị xoá, nên luôn khác rỗng.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số truy vấn.
- dòng tiếp theo, mỗi dòng chứa một ký tự
+,-hoặc?và một số nguyên , cách nhau bởi dấu cách.
Dữ liệu đảm bảo có ít nhất một truy vấn loại ?.
Dữ liệu ra
Với mỗi truy vấn loại ?, in ra trên một dòng giá trị XOR lớn nhất tìm được.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 10 + 8 + 9 + 11 + 6 + 1 ? 3 - 8 ? 3 ? 8 ? 11 |
11 10 14 13 |
Sau 5 thao tác đầu, . Truy vấn ? 3 cho là lớn nhất. Sau khi xoá , đáp án cho ? 3 giảm còn . |
| 12 + 4 + 4 + 5 ? 3 - 4 ? 3 - 4 ? 3 ? 3 - 5 + 10 ? 1 |
7 7 6 6 11 |
Số được thêm hai lần nên sau lệnh - 4 đầu tiên vẫn còn một số trong , đáp án ? 3 vẫn là . Chỉ sau lệnh - 4 thứ hai đáp án mới giảm xuống . Cuối cùng và . |
Bình luận