Base de datos basada en prefijos

Comienzas con una base de datos vacía y necesitas procesar una serie de consultas. Hay dos tipos de consultas: "Add (Agregar)" y "Search (Buscar)". La consulta "Add" agrega un nombre a la base de datos, mientras que la consulta "Search" te pide que muestres todos los nombres de la base de datos que empiecen con un prefijo específico, en orden lexicográfico. Sin embargo, si hay más de 20 nombres que coinciden con ese prefijo, solo debes mostrar los primeros 20.

Entrada

La entrada comienza con un número entero q (1 ≤ q ≤ 200 000) en la primera línea, que representa la cantidad de consultas. Las siguientes q líneas contienen las consultas en el siguiente formato:
  • Para las consultas de tipo "Add (Agregar)": add s (donde s es el nombre que se añade a la base de datos).
  • Para las consultas de tipo "Search (Buscar)": search p (donde p es el prefijo que se busca).
La longitud de las cadenas de las consultas no excede los 20 caracteres.

Salida

Para cada consulta "Search (Buscar)", muestra los nombres de la base de datos que comienzan con el prefijo especificado, separados por un espacio. Si hay más de 20 nombres que coinciden con el prefijo, muestra únicamente los primeros 20.

Ejemplos

Entrada
Salida
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