크기가 n*m인 2차원 배열 d[][]에 대해
k개의 구간 [(x1, y1), (x2, y2)] 과 u를 입력 받아,
d[x1][y1] = d[x1][y1]+u;
d[x2+1][y2+1] = d[x2+1][y2+1]+u;
d[x1][y2+1] = d[x1][y2+1]-u;
d[x2+1][y1] = d[x2+1][y1]-u;
를 수행한 후, 누적 합을 만들어 출력해보자.
크기가 7*7이고,
4개의 구간 데이터
1 1 2 2 1
2 2 3 3 1
3 3 4 4 1
4 4 5 5 1
가 입력되면
2차원 배열의 상태는
0 0 0 0 0 0 0
0 1 0 –1 0 0 0
0 0 1 0 –1 0 0
0 –1 0 2 0 –1 0
0 0 –1 0 2 0 -1
0 0 0 -1 0 1 0
0 0 0 0 -1 0 1
가 되며 그 누적합을 계산하면 아래와 같다.
0 0 0 0 0 0 0
0 1 1 0 0 0 0
0 1 2 1 0 0 0
0 0 1 2 1 0 0
0 0 0 1 2 1 0
0 0 0 0 1 1 0
0 0 0 0 0 0 0