rects ← 長方形の列

# 長方形を重ねる
for rect in rects:
    x1 = rect.左上の頂点.x
    y1 = rect.左上の頂点.y
    x2 = rect.右下の頂点.x
    y2 = rect.右下の頂点.y
    A[x1][y1]++
    A[x2][y2]++
    A[x1][y2]--
    A[x2][y1]--

# 水平方向の累積和
for x ← 1 to N-1:
    for y ← 0 to M-1:
        A[x][y] ← A[x][y] + A[x-1][y]

# 垂直方向の累積和
for y ← 1 to M-1:
    for x ← 0 to N-1:
        A[x][y] ← A[x][y] + A[x][y-1]