만드는 중입니다

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

2차원 배열 다중 업데이트 단일 합

면접 대비

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

요약
n×n 격자에 사각형 구간 덧셈과 구간 합 질의가 주어질 때, 모든 갱신을 반영한 마지막 구간 합을 출력합니다.
난이도

보통10점 중 5점

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

문제

크기가 n×nn \times n인 정수형 2차원 배열 AA가 주어진다. 배열 AA의 원소는 A[0][0],A[0][1],…,A[n−1][n−1]A[0][0], A[0][1], \ldots, A[n-1][n-1]이다. 배열 AA의 모든 원소의 초깃값은 입력으로 주어진다. 배열 AA에 대한 mm개의 질의가 담긴 배열 BB가 주어진다. 배열 BB의 질의는 다음 두 유형 중 하나이며, 유형 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에는 유형 2의 질의가 마지막에 1개만 저장되어 있다.

입력

첫 번째 줄에 nn과 mm이 공백을 사이에 두고 주어진다.

두 번째 줄부터 nn개의 줄에 배열 AA의 원소가 주어진다. ii번째 줄의 jj번째 수는 A[i−1][j−1]A[i-1][j-1]이다.

다음 줄부터 mm개의 줄에 배열 BB의 질의가 순서대로 주어진다. 한 줄에 질의 하나가 공백으로 구분된 수들로 주어진다.

출력

첫 번째 줄에 유형 2 질의의 결과를 출력한다.

제한

  • 1≤n≤1,0001 \le n \le 1{,}000, 1≤m≤300,0001 \le m \le 300{,}000
  • 1≤A[i][j]≤1,000,0001 \le A[i][j] \le 1{,}000{,}000 (0≤i,j≤n−10 \le i, j \le n-1)
  • 배열 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≤10,0001 \le k \le 10{,}000

예제1

  1. 예제 1

    입력
    4 3
    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 2 2
    
    예상 출력
    31