Erweiterte Wörterbuch-Operationen

Sie beginnen mit einem leeren Dictionary und haben q Anfragen. Jede Anfrage gehört zu einem der folgenden drei Typen:
  • Typ 1: Einen String in das Dictionary einfügen.
  • Typ 2: Prüfen, ob ein String im Dictionary vorhanden ist.
  • Typ 3: Einen String aus dem Dictionary löschen.
Ihre Aufgabe ist es, ein Programm zu erstellen, das diese Anfragen effizient verarbeitet.
Bei einer Anfrage vom Typ 2 geben Sie Yes aus, wenn der String vorhanden ist, andernfalls No.

Eingabe

Die erste Zeile der Eingabe enthält eine ganze Zahl q (1 ≤ q ≤ 100 000), die angibt, wie viele Anfragen es insgesamt gibt.
In den folgenden q Zeilen wird jede Anfrage beschrieben. Jede Zeile beginnt mit einer ganzen Zahl _type_ (1, 2 oder 3), die den Anfragetyp angibt.
  • Wenn _type_ = 1: Auf diese Zahl folgt ein Leerzeichen und ein String _s_ (1 ≤ |s| ≤ 1000). Dieser String soll in das Dictionary eingefügt werden. Der String besteht ausschließlich aus Kleinbuchstaben des englischen Alphabets.
  • Wenn _type_ = 2: Auf diese Zahl folgt ein Leerzeichen und ein String _s_ (1 ≤ |s| ≤ 1000). Dieser String soll im Dictionary überprüft werden. Der String besteht ausschließlich aus Kleinbuchstaben des englischen Alphabets.
  • Wenn _type_ = 3: Auf diese Zahl folgt ein Leerzeichen und ein String _s_ (1 ≤ |s| ≤ 1000). Dieser String soll aus dem Dictionary gelöscht werden. Der String besteht ausschließlich aus Kleinbuchstaben des englischen Alphabets.
Es wird garantiert, dass die Summe der Längen aller übergebenen Strings nicht überschreitet.

Ausgabe

Geben Sie für jeden Anfrage-Typ 2 Yes aus, wenn der String im Dictionary vorhanden ist, andernfalls No.

Beispiele

Eingabe
Ausgabe
7 1 abc 1 xyz 2 abc 3 abc 2 abc 2 xyz 2 abo
Yes No Yes No
 

Constraints

Time limit: 4 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue