Queue

La cola es una de las estructuras de datos fundamentales en muchos algoritmos. Es muy parecida a una cola en la vida real. El primer elemento que se agrega a la cola será el primero en ser “atendido” y eliminado de ella.
Imagina una fila de hormigas esperando para comprar café. La primera hormiga en la fila obtendrá su café y saldrá de la cola, luego la siguiente hormiga obtendrá su café y también saldrá, y así sucesivamente hasta que la cola quede vacía y no haya más hormigas esperando.
notion image
Declarar y usar una cola resulta muy sencillo en la mayoría de los lenguajes, ya que casi todos los lenguajes de uso general (como Python, C++, Java, etc.) incluyen la estructura de datos de cola para facilitar su uso. Aun así, podemos implementarla nosotros mismos usando una lista enlazada. ¿Se te ocurre cómo hacerlo 🤔?
from queue import Queue

q = Queue()    # Crea una nueva cola
q.put(1)       # Agrega 1 al frente de la cola
q.put(2)       # Agrega 2 después
q.put(3)       # Agrega 3 después de 2

# Elimina elementos de la cola usando get()
print(q.get()) # imprime 1
print(q.get()) # imprime 2
print(q.get()) # imprime 3

Challenge: Queue Simulation

Estás implementando un sistema para llevar un registro de los clientes en una tienda. Tu sistema debe ser capaz de hacer dos cosas: agregar un cliente a la fila de espera y eliminar al primer cliente de la fila cuando haya sido atendido. Cada vez que se elimine a un cliente, se debe imprimir su nombre.

Entrada

La primera línea de la entrada contiene un solo entero n (1 ≤ n ≤ 100 000).
Las siguientes n líneas contienen operaciones, que pueden ser add o pop:
  • La operación add va seguida de un nombre, e indica que debes agregar al cliente a la fila de espera.
  • La operación pop solo contiene el nombre de la operación y nada más.
Está garantizado que la operación pop siempre contará con al menos un cliente en la fila, de modo que las operaciones son válidas.
Los nombres no superan los 20 símbolos.

Salida

Por cada operación pop, el programa debe imprimir el nombre del cliente que se encuentre al frente de la fila.

Ejemplos

Entrada
Salida
9 add Steven add Sam pop add Sergio add Don pop add John pop pop
Steven Sam Sergio Don
4 add John Ford add Tom Ford pop pop
John Ford Tom Ford
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

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