본문 바로가기
Study/Coding Test

[백준] 11660 - 구간 합 구하기 5 Python

by 들숨날숨흡 2023. 6. 28.
728x90

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

 

11660번: 구간 합 구하기 5

첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네

www.acmicpc.net

 

import sys

input = sys.stdin.readline

graph = []

N, M = map(int, input().split(" "))
dp = [[0] * (N + 1) for _ in range(N + 1)]

for i in range(N):
    A = list(map(int, input().rstrip().split(" ")))
    graph.append(A)

for i in range(1, N + 1):
    for j in range(1, N + 1):
        dp[i][j] = dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1] + graph[i - 1][j - 1]

for j in range(M):
    x1, y1, x2, y2 = map(int, input().split(" "))
    answer = dp[x2][y2] - dp[x2][y1 - 1] - dp[x1 - 1][y2] + dp[x1 - 1][y1 - 1]
    print(answer)
728x90