문제2059--구간 합 구하기2

2059: 구간 합 구하기2

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 128 MiB

문제 설명

\(N \times N\)개의 수가 \(N \times N\) 크기의 표에 채워져 있다. 표 안의 수 중 \((X_1, Y_1)\)에서 \((X_2, Y_2)\)까지의 합을 구하려 한다. \(X\)는 행, \(Y\)는 열을 의미한다. 예를 들어 \(N = 4\)이고, 표가 다음과 같이 채워져 있을 때를 살펴보자.
1 2 3 4
2 3 4 5
4 5 6 7
4 5 6 7
\((2,2)\)에서 \((3,4)\)까지의 합을 구하면 \(3+4+5+4+5+6=27\)이고,
\((4,4)\)에서 \((4,4)\)까지의 합을 구하면 7이다.
표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때 이를 처리하는 코드를 작성하시오.


입력 설명

1번째 줄에 표의 크기 \(N\)과 합을 구해야 하는 횟수 \(M\)이 주어진다.
\((1 \le N \le 1024, 1 \le M \le 100,000)\)
2번째 줄부터 \(N\)개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다.
다음 \(M\)개의 줄에는 4개의 정수 \(X_1, Y_1, X_2, Y_2\)가 주어지며, \((X_1, Y_1)\)에서 \(X_2, Y_2\)의 합을 구해 출력해야 한다.
표에 채워져 있는 수는 1,000보다 작거나 같은 자연수다.
\((X_1 \le X_2, Y_1 \le Y_2)\)

출력 설명

총 \(M\)줄에 걸쳐 \((X_1, Y_1)\)에서 \((X_2, Y_2)\)까지 합을 구해 출력한다.

입력 예시 Copy

4 3
1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7
2 2 3 4
3 4 3 4
1 1 4 4

출력 예시 Copy

27
6
64 

게시판

작성자제목(댓글)
글이 없습니다.

출처/분류