페이지

11660번: 구간 합 구하기 5

https://www.acmicpc.net/problem/11660


$O(n^2+m)$

prefix sum을 이용한다.


#include<cstdio>
int n, m, s[1025][1025];
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            scanf("%d", s[i] + j);
            s[i][j] += s[i - 1][j] + s[i][j - 1] - s[i - 1][j - 1];
        }
    }
    for (int i = 0, x1, y1, x2, y2; i < m; i++) {
        scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
        printf("%d\n", s[x2][y2] - s[x2][y1 - 1] - s[x1 - 1][y2] + s[x1 - 1][y1 - 1]);
    }
    return 0;
}

댓글 없음 :

댓글 쓰기