Ir al contenido (saltar navegación)

Altura final en Tetris

Tiempo máximo: 2,000 sMemoria máxima: 4096 KiB

El Tetris es un videojuego que se popularizó en los años 80. Consiste en colocar una serie de piezas con distintas formas que van cayendo en un tablero, de tal modo que queden encajadas de la forma más compacta posible.

En este problema vamos a suponer una secuencia de piezas que caen, cada una en una determinada posición y con una determinada orientación que no se pueden cambiar. Las piezas se van amontonando según caen y no se eliminan las filas completas (como ocurre en el juego original). El objetivo es determinar la altura final de cada columna del tablero después de que caigan todas las piezas.

Hay un total de 7 piezas diferentes, mostradas en la figura:

Los 7 tetraminós en el orden usado en el ejercicio (barra, J, L, cuadrado, S, T, Z)

Entrada

La entrada está formada por distintos casos de prueba, cada uno ocupando varias líneas.

La primera línea contiene dos números, el número de columnas del tablero (C) y el número de piezas que van a caer (N). A continuación hay N líneas, cada una de ellas con la descripción de una pieza.

La descripción de una pieza consta de tres números: I, RP. El primer número, I, es el identificador de la pieza (un número entre 1 y 7, en el mismo orden que en la figura). El segundo número, R, es la rotación de la pieza. Puede tomar los valores 0, 90, 180 o 270 y representa el ángulo de rotación de la pieza en el sentido contrario a las agujas del reloj. El tercer número, P, indica la posición de la pieza. Representa la columna más a la izquierda ocupada por la pieza. La numeración de las columnas empieza en 1.

Los valores mínimo y máximo para CN son 4 ≤ C ≤ 100, 1 ≤ N ≤ 100.000. A modo de ejemplo, se muestra el resultado de colocar tres fichas en un tablero de 5 columnas.

Ejemplo de tres fichas colocadas

El final de la entrada se indica con una línea con dos ceros que no se debe procesar.

Salida

Para cada caso de prueba, se escribirá una línea con la altura alcanzada en cada columna del tablero después de que caigan todas las piezas.

Entrada de ejemplo

5 3
1 0 1
4 0 1
5 90 4
8 4
6 270 4
1 180 5
1 90 6
7 0 4
0 0

Salida de ejemplo

3 3 1 3 2
0 0 0 9 9 8 3 3