#include #include int main() { int N, M; scanf("%d %d",&N, &M); int** dp = (int**)malloc(sizeof(int*)*(N+1)); for(int i=0; i<=N; i++) dp[i] = (int*)malloc(sizeof(int)*(N+1)); for(int x=0; x<=N; x++) { for(int y=0; y<=N; y++) { if (x==0 || y==0) { dp[x][y] = 0; continue; } int num; scanf("%d",&num); dp[x][y] = dp[x-1][y] + dp[x][y-1] - dp[x-1][y-1] + num; } } while(M--) { int x1, y1, x2, y2; scanf("%d %d %d %d", &x1, &y1, &x2, &y2); printf("%d\n",dp[x2][y2] - dp[x2][y1-1] - dp[x1-1][y2] + dp[x1-1][y1-1]); } for(int i=0; i<=N; i++) free(dp[i]); free(dp); return 0; }