Module: Bor


Problem

9 /10


Multiset et XOR

Problem

Vous avez q requêtes et un multiensemble A qui ne contient initialement que le nombre 0. Il existe trois types de requêtes :
  • +x &mdash ; ajouter le nombre x au multiset A.
  • -x — supprimer une occurrence du nombre x du multiset A. Il est garanti qu'au moins un nombre x est présent dans le multiset à ce moment.
  •  ? x — on vous donne un nombre x, vous devez calculer le OU exclusif au niveau du bit maximum (également appelé XOR) du nombre x et d'un certain nombre y du multiset A.
Multiset — c'est un ensemble qui permet plusieurs éléments identiques.

Saisie :
La première ligne de l'entrée contient le nombre q (1 ≤ q ≤ 200000) — le nombre de demandes que Vasiliy doit traiter.

Chacune des q lignes suivantes de l'entrée contient l'un des trois caractères "+", "-" ou "?" et le nombre xi (1 ≤ xi ≤ 109). Il est garanti qu'il y a au moins une requête "?" dans l'entrée.

Notez que le chiffre 0 sera toujours présent dans le multiset.

Sortie :
Pour chaque demande comme "?" imprimer un seul entier — valeur maximale de XOR au niveau du bit pour le nombre xi et tout nombre du multiset A.

Exemple :
 
Entrée Sortie
10
+8
+9
+11
+ 6
+ 1
? 3
- 8
? 3
? 8
? 11
11
10
14
13