#1285. 二维差分数组模版

二维差分数组模版

题目描述

给定一个 n\red {n}m\red {m} 列的整数矩阵,要求:

  • 1. 输入 p\red {p} 个操作,每个操作包含五个整数 x1,y1,x2,y2,c\red {x1,y1,x2,y2,c},其中 (x1,y1)\red {(x1,y1)}(x2,y2)\red {(x2,y2)} 表示一个子矩阵的左上角坐标和右下角坐标,每个操作都要将选中的子矩阵中的每个元素的值加上 c\red {c}
  • 2. 请你将进行完所有操作后的矩阵输出。
  • 3. 然后是个 q\red {q} 查询操作,每个操作包含四个整数 x1,y1,x2,y2\red {x1,y1,x2,y2},其中 (x1,y1)\red {(x1,y1)}(x2,y2)\red {(x2,y2)} 表示一个子矩阵的左上角坐标和右下角坐标,请给出该子矩阵中所有元素的和。

输入格式

第一行包含整数 n,m,p,q\red {n,m,p,q}

接下来 n\red {n} 行,每行包含 m\red {m} 个整数,表示整数矩阵。

接下来 p\red {p} 行,每行包含 5\red {5} 个整数 x1,y1,x2,y2,c\red {x1,y1,x2,y2,c},表示一个操作。

接下来 q\red {q} 行,每行包含 4\red {4} 个整数 x1,y1,x2,y2\red {x1,y1,x2,y2},表示一个查询操作。

输出格式

n+q\red {n+q} 行,前n行每行 m\red {m} 个整数,表示所有操作进行完毕后的最终矩阵。 后 q\red {q} 行每行每行 1\red {1} 个整数,表示对应查询操作的结果

样例

输入样例

3 4 3 2
1 2 2 1
3 2 2 1
1 1 1 1
1 1 2 2 1
1 3 2 3 2
3 1 3 4 1
1 1 2 2
2 2 3 4

输出样例

2 3 4 1
4 3 4 1
2 2 2 2
12
14

数据范围与提示

1n,m1000\red{1≤n,m≤1000},

1p,q100000\red{1≤p,q≤100000},

1x1x2n\red{1≤x1≤x2≤n},

1y1y2m\red{1≤y1≤y2≤m},

1000c1000\red{−1000≤c≤1000},

1000\red{−1000≤} 矩阵内元素的值矩阵内元素的值 1000\red{≤1000}