#637. 围栏巡检:边界和

围栏巡检:边界和

围栏巡检:边界和

故事背景

农场的地块四周有围栏,巡检员只需关注每块矩形地的“边界”产量是否异常。为此,他希望快速得到任意矩形区域边界上所有格子的产量之和。

题目描述

给定一个 n×m 的整数矩阵 a,有 q 次询问。每次给出矩形 (x1, y1) 到 (x2, y2)(1 基,x1 ≤ x2,y1 ≤ y2)。

请输出该矩形“边界”上所有格子的元素之和。若矩形只有一行或一列,则边界即为整个矩形。

输入格式

  • 第一行包含三个整数 n、m、q。
  • 接下来 n 行,每行 m 个整数,表示矩阵 a。
  • 接下来 q 行,每行四个整数 x1、y1、x2、y2。

输出格式

输出 q 行,每行一个整数,表示对应矩形的边界和。

输入输出样例 #1

输入 #1

3 4 3
1 2 3 4
5 6 7 8
9 10 11 12
1 1 3 4
2 2 3 3
2 1 2 4

输出 #1

65
34
26

样例解释 #1

第一问:矩形 (1,1)-(3,4) 的边界为外圈所有格子,总和为 78 减去内层 (2,2)-(2,3) 的 13,得到 65;第二问:矩形 (2,2)-(3,3) 的边界为 {6,7,10,11},和为 34,2×2 无内层,四格皆边界;第三问:第二行整行边界就是该行总和 26。

说明/提示

  • 数据范围示例:1 ≤ n,m ≤ 1000;1 ≤ q ≤ 2×10^5。
  • 提示:可先用二维前缀和计算外层矩形和,再减去内层 (x1+1,y1+1)-(x2-1,y2-1) 的和(若内层存在),得到边界和。