#617. 闪耀的灯光

闪耀的灯光

问题描述

公园可以看作由 n×mn\times m 个矩形区域构成。每个区域都有一盏灯,初始亮度为 a[i][j]a[i][j]

小蓝可以选择一个矩形区域并按下开关一次:该区域内每盏灯的亮度减少 11,但每盏灯最多只能减少到 a[i][j]ca[i][j]-c。如果某盏灯此时亮度已为 a[i][j]ca[i][j]-c,再次按该区域的开关会使该灯的亮度恢复为 a[i][j]a[i][j](即对每盏灯而言,按开关相当于在两个状态间切换:原亮度与降低 cc 后的亮度,按一次切换一次)。

现在小蓝将进行 tt 次操作。每次操作他会选择一个矩形区域,左上角为 (x1,y1)(x_1,y_1),右下角为 (x2,y2)(x_2,y_2),然后将该区域内所有灯按下 kk 次开关。每次操作结束后,他想知道该矩形区域内所有灯的总亮度是多少。在下一次操作前,他会将公园内所有灯恢复为初始亮度。

数据保证每盏灯的亮度不会减少至负数。

输入格式

第一行包含三个正整数 n, m, cn,\ m,\ c

接下来 nn 行,每行 mm 个正整数,表示矩阵 aa 的初始亮度(第 ii 行为 a[i][1] a[i][2]  a[i][m]a[i][1]\ a[i][2]\ \dots\ a[i][m])。

n+2n+2 行包含一个正整数 tt,表示操作次数。

接下来 tt 行,每行包含 55 个正整数 x1 y1 x2 y2 kx_1\ y_1\ x_2\ y_2\ k,表示一次操作的矩形左上角 (x1,y1)(x_1,y_1)、右下角 (x2,y2)(x_2,y_2) 以及按下开关的次数 kk

输出格式

输出 tt 行,每行一个正整数,第 ii 行为第 ii 次操作结束后对应矩形区域内所有灯的总亮度。

样例输入

3 3 3
14 14 17
13 15 18
13 16 19
3
1 1 2 2 3
2 2 3 3 5
2 3 3 3 4

样例输出

44
64
37

说明

样例解释

第一次操作,矩形为 (1,1)(1,1)(2,2)(2,2),按 k=3k=3 次开关。对于矩形中每盏灯,按 33 次等价于按 3mod2=13\bmod 2=1 次(因为按两次回到初始状态)。因此矩形内亮度从初始值降低 11(但不超过 cc 的限制),矩阵变为:

11 11 17
10 12 18
13 16 19

答案为矩形内四盏灯亮度之和: 11+11+10+12=4411+11+10+12=44

第二次操作,矩形为 (2,2)(2,2)(3,3)(3,3),按 k=5k=5 次,5mod2=15\bmod 2=1 次实际生效,因此矩形中每盏灯降低 11(不超过 cc),矩阵变为:

14 14 17
13 14 17
13 15 18

答案为矩形内四盏灯亮度之和: 14+17+15+18=6414+17+15+18=64

第三次操作,矩形为 (2,3)(2,3)(3,3)(3,3),按 k=4k=4 次,4mod2=04\bmod 2=0,因此灯恢复为初始亮度,矩阵仍为初始矩阵:

14 14 17
13 15 18
13 16 19

答案为矩形内两盏灯亮度之和: 18+19=3718+19=37

数据范围

  • 1n,m3001\le n,m\le 3001c101\le c\le 10
  • 1t1051\le t\le 10^510a[i][j]10910\le a[i][j]\le 10^9
  • 1x1x2n1\le x_1\le x_2\le n1y1y2m1\le y_1\le y_2\le m
  • 1k1091\le k\le 10^9