Lavando los Platos


Submit solution

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

Author:
Problem type
Allowed languages
Ada, BrainF***, C#, C++, Dart, Go, Java, JS, Kotlin, Pascal, Prolog, Python, Swift, VB

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 Bovinato. 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 partevsuperior 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. El 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 lave:

          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 <= C_i <= 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

Ejemplo de Entrada

5
1 3
2 2
1 2
2 3

Salida

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

Ejemplo de Salida

1
4
5
2
3

Comments


  • 0
    legion06  commented on Dec. 22, 2022, 6:49 p.m.

    que puedo hacer?


  • 0
    legion06  commented on Dec. 22, 2022, 6:48 p.m.

    cuando trabajo con una pila porque me puede dar rte la solucion?


    • 8
      linkyless  commented on Dec. 22, 2022, 9:40 p.m. edited

      La razón de tu problema es que no inicializas la variable k y haces una comprobación que la incluye. Así que la solución es simplemente iniciar la variable k en 0. \displaystyle (k = 0).