#include <vector> #include <iostream> #include <algorithm> using namespace std; struct point { int x, y; point(int _x,int _y):x(_x),y(_y){} };
int main() { int n, m, q; scanf("%d%d%d",&n,&m,&q); vector<point> v; int x1, y1,x2,y2; for (int i = 0;i < q;i++) { scanf("%d%d%d%d", &x1, &y1, &x2,&y2); point p1(x1, y1); point p2(x2, y2); v.push_back(p1); v.push_back(p2); } //创建一个n行m列的矩阵 //int arr[][] = new int[n][m]; vector<vector<int> > arr(n,vector<int>(m)); int i, j,k,temp; for (i = 0;i < n;i++) { for (j = 0;j < m;j++) { scanf("%d", &temp); arr[i][j] = temp; } } int sum; for (i = 0;i < q;i++) { sum = 0; point p1 = v[2*i]; point p2 = v[2*i+1]; int startx = min(p1.x,p2.x); int endx = max(p1.x, p2.x); int starty = min(p1.y, p2.y); int endy = max(p1.y, p2.y); for (j = startx - 1;j <= endx - 1;j++) { for (k = starty - 1;k <= endy - 1;k++) { sum += arr[j][k]; } } printf("%d\n",sum); }