만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

2차원 배열 범위 덧셈과 구간 합

면접 대비

시간 제한3초메모리 제한512 MB

요약
n x n 행렬에 직사각형 구간 덧셈을 순서대로 적용한 뒤, 각 구간 합 질의의 결과를 출력하는 문제입니다.
난이도

보통10점 중 4점

유형
행렬, 누적 합
정답자
아직 제출이 없습니다

문제

크기가 n×nn \times n인 정수형 2차원 배열 AA가 주어진다. 배열의 원소는 A[0][0],A[0][1],…,A[n−1][n−1]A[0][0], A[0][1], \ldots, A[n-1][n-1]이다. 모든 원소의 초깃값은 입력으로 주어진다. 배열 BB에는 AA에 대한 mm개의 질의가 저장되어 있으며, 질의는 아래 두 가지 유형 중 하나이다. 첫 번째 유형은 유형 1, 두 번째 유형은 유형 2이다.

  • 1 i1i_1 j1j_1 i2i_2 j2j_2 kk: i1≤i≤i2i_1 \le i \le i_2이고 j1≤j≤j2j_1 \le j \le j_2인 A[i][j]A[i][j]에 kk를 더한다.
  • 2 i1i_1 j1j_1 i2i_2 j2j_2: i1≤i≤i2i_1 \le i \le i_2이고 j1≤j≤j2j_1 \le j \le j_2인 A[i][j]A[i][j]의 합을 출력한다.

배열 BB에 저장된 첫 번째 질의부터 mm번째 질의까지 순서대로 처리하면서 유형 2의 결과를 출력하자. 단, 배열 BB에는 모든 유형 1의 질의가 유형 2의 질의보다 앞부분에 저장되어 있다.

입력

첫 번째 줄에 nn과 mm이 공백을 사이에 두고 주어진다. 다음 nn개의 줄에는 배열 AA의 원소가 주어진다. ii번째 줄의 jj번째 수는 A[i−1][j−1]A[i-1][j-1]이다. 그다음 mm개의 줄에 질의가 한 줄에 하나씩 순서대로 주어진다. 각 줄의 수는 공백으로 구분된다.

출력

유형 2 질의의 결과를 순서대로 한 줄에 하나씩 출력한다.

제한

  • 1≤n≤10001 \le n \le 1000, 1≤m≤3000001 \le m \le 300000
  • 1≤A[i][j]≤10000001 \le A[i][j] \le 1000000 (0≤i,j≤n−10 \le i, j \le n-1)
  • 배열 BB에는 유형 1과 유형 2의 질의만 존재한다.
  • 배열 BB에는 모든 유형 1의 질의가 유형 2의 질의보다 앞부분에 저장되어 있다.
  • 배열 BB에는 유형 2의 질의가 1개 이상 저장되어 있다.
  • 0≤i1≤i2≤n−10 \le i_1 \le i_2 \le n-1
  • 0≤j1≤j2≤n−10 \le j_1 \le j_2 \le n-1
  • 1≤k≤100001 \le k \le 10000

예제1

  1. 예제 1

    입력
    4 5
    1 1 1 1
    1 1 1 1
    1 1 1 1
    1 1 1 1
    1 0 0 1 1 1
    1 0 0 2 2 2
    2 0 0 1 1
    2 0 0 2 2
    2 1 1 2 3
    
    예상 출력
    16
    31
    15