Operazioni sul dizionario

Vi viene fornito un dizionario inizialmente vuoto e un numero n di richieste (query). Ogni richiesta può essere di uno dei seguenti due tipi:
  • Tipo 1: Inserire una stringa nel dizionario.
  • Tipo 2: Verificare se una stringa è presente nel dizionario.
Il vostro compito è implementare un programma che gestisca queste richieste in modo efficiente.
Per una query di tipo 2, se la stringa è presente, stampate Yes, altrimenti stampate No.

Input

L’input è composto da più righe. La prima riga contiene un intero, q (1 ≤ q ≤ ), che indica il numero di query.
Le successive q righe descrivono le richieste. Ogni riga inizia con un intero type (1 o 2), che ne specifica il tipo.
  • Se type = 1, dopo l’intero è presente uno spazio seguito da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da inserire nel dizionario. La stringa è composta soltanto da lettere minuscole inglesi.
  • Se type = 2, dopo l’intero è presente uno spazio seguito da una stringa s (1 ≤ |s| ≤ 1000), che rappresenta la stringa da verificare nel dizionario. La stringa è composta soltanto da lettere minuscole inglesi.
È garantito che la somma delle lunghezze di tutte le stringhe delle query non superi .

Output

Per ogni query di tipo 2, stampate Yes se la stringa è presente nel dizionario, altrimenti stampate No.

Esempi

Ingresso
Uscita
5 1 abc 1 xyz 2 cba 1 def 2 xyz
No Yes

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