Database basato sui prefissi

All’inizio disponi di un database vuoto e devi gestire una serie di query. Esistono due tipi di query: “Add (aggiungi)” e “Search (cerca)”. La query “Add” aggiunge un nome al database, mentre la query “Search” richiede di mostrare tutti i nomi nel database che iniziano con un determinato prefisso, in ordine lessicografico. Tuttavia, se ci sono più di 20 nomi che corrispondono al prefisso, devi restituire soltanto i primi 20.

Input (Ingresso)

Il primo rigo contiene un intero q (1 ≤ q ≤ 200 000), che rappresenta il numero di query. Le q righe successive contengono le query, con il seguente formato:
  • Per le query “Add”: add s (dove s è il nome da aggiungere al database).
  • Per le query “Search”: search p (dove p è il prefisso da cercare).
La lunghezza delle stringhe nelle query non supera i 20 caratteri.

Output (Uscita)

Per ogni query “Search”, stampa i nomi del database che iniziano con il prefisso indicato, separati da uno spazio. Se i nomi corrispondenti al prefisso sono più di 20, mostrane soltanto i primi 20.

Esempi

Esempio di Input
Esempio di Output
9 add cat add code add core search co add profound add found search fo add fight search f
code core found fight found
 

Constraints

Time limit: 6 seconds

Memory limit: 512 MB

Output limit: 15 MB

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