#s1004. 二维差分

二维差分

二维矩阵区间加操作

题目描述

给定一个 n × m 的二维整数矩阵 a,有 q 个操作。每个操作指定一个矩形区域,该区域由左上角坐标 (x1, y1) 和右下角坐标 (x2, y2) 确定,以及一个整数值 v。对于每个操作,你需要将该矩形区域内的所有元素都加上 v

在所有操作执行完成后,请输出最终的矩阵。

注意:矩阵的行和列索引从 1 开始。

输入格式

第一行包含三个整数 n, m, q,分别表示矩阵的行数、列数和操作数量。

接下来 n 行,每行包含 m 个整数,表示初始矩阵 a 的元素。

接下来 q 行,每行包含五个整数 x1, y1, x2, y2, v,表示一个操作。

输出格式

输出 n 行,每行 m 个整数,表示所有操作执行完成后的最终矩阵。

数据范围

  • 1 ≤ n ≤ 1000
  • 1 ≤ m ≤ 1000
  • 1 ≤ q ≤ 10000
  • 1 ≤ x1 ≤ x2 ≤ n
  • 1 ≤ y1 ≤ y2 ≤ m
  • 0 ≤ a[i][j] ≤ 1000
  • 0 ≤ v ≤ 1000

样例输入

3 3 2
1 1 1
1 1 1
1 1 1
1 1 2 2 1
2 2 3 3 2

样例输出

2 2 1
2 4 3
1 3 3