Escribe un programa que mantenga una secuencia de enteros i una posición dentro de la secuencia. Inicialmente, la secuencia está vacía y la posición está al final (es decir, detrás del último elemento, no se encuentra sobre ningún elemento).
El programa debe leer y ejecutar una secuencia de comandos. Los comandos posibles son:
ins x: Inserta el entero
justo delante de la posición actual. Después, la posición apunta al
nuevo elemento insertado.
del: Si la secuencia está vacía o la posición está
al final, no hace nada. En caso contrario, borra el elemento apuntado
por la posición y la posición pasa a apuntar al que era el siguiente
elemento (o al final, si el elemento borrado era el último).
++: Si la posición no está al final, avanza al
siguiente elemento. En caso contrario, no hace nada.
--: Si la secuencia está vacía o la posición está en
el primer elemento, no hace nada. En caso contrario, retrocede al
elemento anterior.
Por ejemplo, partiendo de la secuencia vacía, ins 3
inserta el 3 y la posición lo apunta. Luego, ins 1 inserta
el 1 justo delante del 3 y la posición apunta al 1. Con ++
la posición avanza hasta el 3. Finalmente, ins 2 inserta el
2 justo delante del 3 y la posición lo apunta. La secuencia resultante
es 1 [2] 3 (los corchetes indican la posición).
Después de ejecutar todos los comandos, el programa debe escribir la secuencia resultante con la posición marcada.
La eficiencia del programa es importante: hay que elegir el contenedor adecuado para que las operaciones de inserción y borrado se hagan en tiempo constante. De lo contrario, el programa no pasará los juegos de pruebas de eficiencia.
La entrada consiste en una secuencia de comandos, uno por línea. Cada
comando puede ser ins (seguido de un espacio y un entero),
del, ++ o --.
La salida es una línea con los elementos de la secuencia separados
por espacios. El elemento apuntado por la posición se muestra entre
corchetes (por ejemplo, [5]). Si la posición está al final,
se escribe [] al final (con un espacio de separación si la
secuencia no está vacía). Si la secuencia está vacía, se escribe
únicamente [].
Input
ins 3 ins 1 ++ ins 2
Output
1 [2] 3
Input
ins 1 ins 2 ins 3 del ++ ins 4 ++ ++
Output
2 4 1 []