trang chủ / đề bài / xormulti

Đa tập của Vasiliy

Đề bài

Mô tả

Cho một đa tập (multiset) A các số nguyên không âm. Ban đầu A chỉ chứa đúng một phần tử là số 0. Đ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 A.

Bạn cần xử lý q truy vấn, mỗi truy vấn thuộc một trong ba loại:

  • + x — thêm số nguyên x vào A.
  • - x — xoá một bản sao của số nguyên x khỏi A. Dữ liệu đảm bảo trước truy vấn này trong A có ít nhất một số x.
  • ? x — in ra giá trị lớn nhất của x⊕y với y là một phần tử bất kỳ của A, trong đó ⊕ là phép XOR (hoặc loại trừ) trên bit.

Lưu ý rằng số 0 ban đầu không bao giờ bị xoá, nên A luôn khác rỗng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên q — số truy vấn.
  • q dòng tiếp theo, mỗi dòng chứa một ký tự +, - hoặc ? và một số nguyên xi, 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

  • 1≤q≤200000
  • 1≤xi≤109

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, A={0,8,9,11,6,1}. Truy vấn ? 3 cho 3⊕8=11 là lớn nhất. Sau khi xoá 8, đáp án cho ? 3 giảm còn 3⊕9=10.
12
+ 4
+ 4
+ 5
? 3
- 4
? 3
- 4
? 3
? 3
- 5
+ 10
? 1
7
7
6
6
11
Số 4 được thêm hai lần nên sau lệnh - 4 đầu tiên vẫn còn một số 4 trong A, đáp án ? 3 vẫn là 7. Chỉ sau lệnh - 4 thứ hai đáp án mới giảm xuống 3⊕5=6. Cuối cùng A={0,10} và 1⊕10=11.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0