Module: Bor


Problem

9 /10


Multiset e XOR

Problem

Hai q query e un multiset A che inizialmente contiene solo il numero 0. Esistono tre tipi di query:
  • +x — aggiungi il numero x al multiinsieme A.
  • -x — rimuovere un'occorrenza del numero x dal multiinsieme A. È garantito che almeno un numero x sia presente nel multiinsieme in questo momento.
  • ? x — ti viene dato un numero x, devi calcolare l'OR esclusivo bit per bit massimo (noto anche come XOR) del numero x e un certo numero y dal multiinsieme A.
Multiinsieme — questo è un set che consente più elementi identici.

Inserimento:
La prima riga dell'input contiene il numero q (1 ≤ q ≤ 200000) — il numero di richieste che Vasiliy deve elaborare.

Ognuna delle seguenti q righe dell'input contiene uno dei tre caratteri "+", "-" O "?" e il numero xi (1 ≤ xi ≤ 109). È garantito che ci sia almeno una query "?" nell'input.

Si noti che il numero 0 sarà sempre presente nel multiset.

Uscita:
Per ogni richiesta come "?" stampa un singolo numero intero — il valore massimo dell'XOR bit a bit per il numero xi e qualsiasi numero dal multiset A.

Esempio:
 
Input Uscita
10
+8
+9
+11
+ 6
+ 1
? 3
- 8
? 3
? 8
? 11
11
10
14
13