#include <iostream> #include <algorithm> #include <math.h> #include <algorithm> using namespace std; int N, M, K; int arr[310][310]; long long dp[310][310]; int startX, startY; int endX, endY; int main(void) { // freopen("B2167_input.txt", "r", stdin); cin >> N >> M; for(int i = 1; i <= N; i++) { for(int j = 1; j <= M; j++) { cin >> arr[i][j]; } } // 미리 구해놓기 for(int i = 1; i <= N; i++) { for(int j = 1; j <= M; j++) { dp[i][j] = dp[i-1][j] + dp[i][j-1] + arr[i][j] - dp[i-1][j-1]; } } cin >> K; for(int i = 1; i <= K; i++) { cin >> startX >> startY >> endX >> endY; // 좌표가 사각형 기준 오른쪽위, 왼쪽 아래인 경우 -> 왼쪽 위, 오른쪽 아래로 좌표 수정 int sx = min(startX, endX); int sy = min(startY, endY); int ex = max(startX, endX); int ey = max(startY, endY); cout << dp[ex][ey] - dp[sx-1][ey] - dp[ex][sy-1] + dp[sx-1][sy-1] << endl; } return 0; } | cs |
'Baekjoon > DP' 카테고리의 다른 글
[백준 2157] 여행 (DP) (C/C++) (★★★) (0) | 2021.01.26 |
---|---|
[백준 1509] 팰린드롬 분할 (DP) (C/C++) (★★★) (0) | 2020.03.24 |
[백준 10942] 팰린드롬 ? (DP) (C/C++) (★★) (0) | 2020.03.23 |
[백준 11048] 이동하기 (DFS, DP) (C/C++) (★) (0) | 2020.03.23 |
[백준 1890] 점프 (DFS, DP) (C/C++) (0) | 2020.03.22 |