Lavando los Platos


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal

Bessie y Canmuu están trabajando en equipo para lavar la gran pila de N (1 \leq N \leq 10 000) de platos sucios dejados después del Festival Bovino. Bessie está lavando los platos; Canmuu los secará.

Cada plato tiene un número serial único en el rango 1...N. Al comienzo, los platos están apilados en orden con el #1 en la parte superior y el #N en la parte inferior.

Bessie primero lava algún número de platos D_i tomando uno de la parte superior de la pila de entrada, lavándolo, y luego apilándolo en el otro lado del fregadero (esto invierte el orden de esos platos).

Una vez que ella ha terminado de lavar esos platos, o lava otro conjunto de platos o Canmmu vuelve a secar D_i platos mientras Bessie se va a tomar su refrigerio bien ganado. Él toma esos platos, uno por uno, de la pila que Bessie le dejó, seca los platos, y los apilas (nuevamente en orden inverso) en la pila de 'lavados'.

Canmu entonces o toma otro conjunto de platos para secar o se va a tomar un refrigerio mientras Bessie vuelve a lavar. Ellos repiten estas operaciones hasta que todos los platos estén lavados y secados.

¿Cuál es el orden final (de arriba hacia abajo) en el cual son apilados los platos limpios y secos?

Para ilustrar, supongamos que Bessie tiene una pila de 5 platos para lavar:

1 <-- arriba
2
3
4
5 <-- abajo

D_1 es 3, por lo tanto Bessie toma tres platos de la parte superior de la pila, uno por uno, los lava, y los apila al otro lado del fregadero para que Canmuu los seque:

          Sin lavar
          | Lavados pero no secados
          | | Lavados y secados
          | | |
ARRIBA    1             
          2          2   
          3      ->  3      ->  3      ->    3   
          4          4          4 2        4 2 
ABAJO     5 - -      5 1 -      5 1 -      5 1 -
       Inicial      Plato 1    Plato 2    Plato 3

Canmuu seca dos de estos, uno por uno, y los coloca en la pila limpia:

ARRIBA         3                 
             4 2    ->  4 2   ->  4   2
ABAJO        5 1 -      5 1 3     5 1 3

Bessie lava los dos platos finales:

ARRIBA                           5
          4   2  ->    4 2 ->    4 2
ABAJO     5 1 3      5 1 3     - 1 3

Finalmente, Canmmu seca los últimos tres platos, apilándolos en el orden resultante mostrado a continuación:

ARRIBA                                       1
                                  4          4
          5    ->      5  ->      5  ->      5
          4 2        4 2          2          2
ABAJO   - 1 3      - 1 3      - 1 3      - - 3

Entonces el orden final es: 1, 4, 5, 2, 3.

Cada una de las líneas principales de la entrada contiene ambos un comando, C_i (1 \leq C_i \leq 2) donde 1 indica que Bessie lava y 2 indica que Canmuu seca, y el número de platos D_i (1 \leq D_i \leq N) a ser lavados o secados.

Entrada

• Línea 1: Un solo entero indicando el número de platos a lavar y a secar: N.

• Líneas 2…??: Cada línea contiene un comando de platos a procesar: C_i y D_i.

Salida

• Líneas 1…N: La línea i contiene el i-ésimo plato lavado y secado comenzando desde arriba.

Ejemplo de Entrada

5
1 3
2 2
1 2
2 3

Ejemplo de Salida

1
4
5
2
3

Comments


  • 1
    Mauricio  commented on Dec. 23, 2023, 5:56 p.m.

    Lindo problema