2차원 구간 합
의견: 0
\(N \times N\) 격자에 정수가 하나씩 적혀 있다. \((x, y)\)는 \(x\)행 \(y\)열의 칸을 뜻한다.
질의 \((x_1, y_1, x_2, y_2)\)가 주어지면 \((x_1, y_1)\)을 왼쪽 위, \((x_2, y_2)\)를 오른쪽 아래 꼭짓점으로 하는 직사각형 영역에 적힌 모든 수의 합을 구해야 한다. 질의가 많으므로 매번 영역을 처음부터 더하면 시간 안에 답할 수 없다.
\(1 \le N \le 1\,024\), \(1 \le M \le 100\,000\), 각 칸의 수는 절댓값이 \(1\,000\) 이하인 정수.
첫째 줄에 격자의 크기 \(N\)과 질의의 수 \(M\)이 주어진다.
다음 \(N\)개의 줄에 격자의 각 행이 \(N\)개의 정수로 주어진다.
다음 \(M\)개의 줄에 질의 \(x_1\ y_1\ x_2\ y_2\)가 주어진다 (\(x_1 \le x_2\), \(y_1 \le y_2\)).
각 질의마다 직사각형 영역의 합을 한 줄에 하나씩 출력한다.
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
27
6
64
두 번째 질의는 한 칸 \((3,4)\)의 값 6이다.
1 1
-5
1 1 1 1
-5
격자가 한 칸뿐이다.
막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.
riseoj 작성
출처 Original
평가 및 의견
2차원 구간 합
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
2차원 구간 합