본문 바로가기

Problem/DP

[백준알고리즘] 11660번 구간 합 구하기5

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




시간 초과 혹시나 나올까봐 scanf, printf 로 풀었다!


<나의 코드>


https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_11660/BOJ_11660.cpp


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int psum[1025][1025];
int main(void)
{
    int N, M, i,j, sx, sy, ex ,ey, val = 0;
    scanf("%d %d"&N, &M);
 
    for (i = 1; i <= N; i++)
    {
        for (j = 1; j <= N; j++)
        {
            scanf("%d"&val);
 
            if (i == 1) psum[i][j] = psum[i][j-1+ val;
            else if (j == 1) psum[i][j] = psum[i-1][j] + val;
            else psum[i][j] = psum[i - 1][j] + psum[i][j - 1- psum[i - 1][j - 1+ val;
 
        }
    }
 
    for (i = 0; i < M; i++)
    {
        scanf("%d %d %d %d"&sx, &sy, &ex, &ey);
        printf("%d\n", psum[ex][ey] - psum[ex][sy-1]- psum[sx-1][ey] + psum[sx-1][sy-1]);
    }
 
    return 0;
}
cs