Ir al contenido (saltar navegación)

Modificación de tablas

Tiempo máximo: 2,000-4,000 sMemoria máxima: 8192 KiB
Sección de una hoja de cálculo grande

En ocasiones es necesario modificar los valores numéricos de una tabla a través de un fichero que contiene instrucciones de cómo modificar dicha tabla. Por ejemplo, una tarea a realizar de la forma anterior sería la de aumentar o disminuir el valor de un rango consecutivo de casillas que se encuentran dentro de una misma columna de la tabla.

Entrada

La entrada está formada por distintos casos de prueba, y cada caso de prueba ocupa varias líneas. La primera línea contiene tres números: el número de filas (F) y columnas (C) de la tabla, y el número de modificaciones que se van a hacer sobre ella (N).

A continuación hay N líneas, cada una de ellas con la descripción de una modificación a la tabla. Cada una de estas líneas consta de cuatro números: I, A, BM. El primer número, I, es el índice de la columna que se va a modificar. Los números A y B son los índices de la primera y la última fila a modificar. El número M es el valor a añadir a las casillas anteriores.

Se garantiza que 1 ≤ F, 1 ≤ C, F×C ≤ 1.000.000, 1 ≤ N ≤ 100.000 y −10 ≤ M ≤ 10. Los índices de las filas y las columnas empiezan en 0, y la tabla se supone inicialmente rellena de ceros.

La entrada termina con tres ceros, que no deben procesarse.

Salida

Para cada caso de prueba, se escribirá una tabla con F filas y C columnas en la cual se han realizado todas y cada una de las operaciones indicadas. Cada número dentro de una misma fila se separará mediante un espacio y al final de cada fila se insertará un salto de línea.

Entrada de ejemplo

4 5 3
2 0 3 1
0 1 2 -1
2 1 1 2
0 0 0

Salida de ejemplo

0 0 1 0 0
-1 0 3 0 0
-1 0 1 0 0
0 0 1 0 0