# 데이터 인풋
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
arr = []
for i in range(n):
arr.append(list(map(int, input().split())))
# 각 셀을 기준으로 누적합
dp = [[0] * (n + 1) for i in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, n + 1):
dp[i][j] = dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1] + arr[i - 1][j - 1]
# 범위 지정하여 구하기
for k in range(m):
x1, y1, x2, y2 = map(int, input().split())
result = dp[x2][y2] - dp[x2][y1 - 1] - dp[x1 - 1][y2] + dp[x1 - 1][y1 - 1]
print(result)
'CodingTest' 카테고리의 다른 글
백준 1260 DFS와 BFS (0) | 2022.07.05 |
---|---|
프로그래머스 72411 메뉴리뉴얼 파이썬 (0) | 2022.07.01 |
백준 2109 순회강연 파이썬 (0) | 2022.07.01 |
백준 13913 숨바꼭질4 파이썬 (0) | 2022.06.16 |
프로그래머스 92344 파괴되지 않은 건물 파이썬 (0) | 2022.06.15 |
# 데이터 인풋
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
arr = []
for i in range(n):
arr.append(list(map(int, input().split())))
# 각 셀을 기준으로 누적합
dp = [[0] * (n + 1) for i in range(n + 1)]
for i in range(1, n + 1):
for j in range(1, n + 1):
dp[i][j] = dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1] + arr[i - 1][j - 1]
# 범위 지정하여 구하기
for k in range(m):
x1, y1, x2, y2 = map(int, input().split())
result = dp[x2][y2] - dp[x2][y1 - 1] - dp[x1 - 1][y2] + dp[x1 - 1][y1 - 1]
print(result)
'CodingTest' 카테고리의 다른 글
백준 1260 DFS와 BFS (0) | 2022.07.05 |
---|---|
프로그래머스 72411 메뉴리뉴얼 파이썬 (0) | 2022.07.01 |
백준 2109 순회강연 파이썬 (0) | 2022.07.01 |
백준 13913 숨바꼭질4 파이썬 (0) | 2022.06.16 |
프로그래머스 92344 파괴되지 않은 건물 파이썬 (0) | 2022.06.15 |