만드는 중입니다

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

직사각형 뒤집기 2

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

요약
n×m 격자에서 칸이 하나씩 부서질 때마다 남은 칸으로만 이루어진 직사각형의 개수를 구합니다.
난이도

보통10점 중 7점

유형
행렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

팡 교수는 던전의 함정 방에 들어간다. 이 방은 n×mn \times m 크기의 체스판으로 나타낼 수 있다. (i,j)(i, j) (1≤i≤n1\le i\le n, 1≤j≤m1\le j\le m)는 ii행 jj열의 칸을 뜻한다. 매초 칸 하나의 바닥이 부서져서, 팡 교수는 그 칸에 더 이상 설 수 없다. nmnm초가 지나면 설 수 있는 칸이 남지 않아 팡 교수는 더 깊고 위험한 다음 층으로 떨어진다.

하지만 팡 교수는 침착함이 어떤 어려움이든 이겨내는 열쇠라는 것을 안다. 그래서 당황하는 대신, 매초가 지난 뒤에도 모든 칸이 부서지지 않은 직사각형의 개수를 센다. 네 정수 a,b,c,da, b, c, d (1≤a≤b≤n1\le a\le b\le n, 1≤c≤d≤m1\le c\le d\le m)로 주어지는 직사각형은 a≤i≤ba\le i\le b이고 c≤j≤dc\le j\le d인 모든 칸 (i,j)(i, j)를 포함한다. 직사각형은 모두 n(n+1)2×m(m+1)2\frac{n(n+1)}{2} \times \frac{m(m+1)}{2}개이다.

입력

첫 줄에 공백으로 구분된 두 정수 nn, mm (1≤n,m≤5001\le n, m\le 500)이 주어진다. (i+1)(i+1)번째 줄에는 공백으로 구분된 두 정수 aa, bb가 주어지며, 이는 칸 (a,b)(a, b)가 ii초에 부서진다는 뜻이다. 각 칸은 입력에 정확히 한 번씩 나타난다.

출력

nmnm개의 줄을 출력한다. ii번째 줄에는 처음 ii개의 칸이 부서진 뒤에도 모든 칸이 부서지지 않은 직사각형의 개수를 출력한다.

힌트

예시에서 1초 뒤에는 조건을 만족하는 넓이 1 직사각형이 3개, 넓이 2 직사각형이 2개 있으므로 첫 줄은 5이다. 2초 뒤에는 2열의 칸만 남으므로 답은 3이다. 3초 뒤에는 칸 하나만 남으므로 답은 1이다. 4초 뒤에는 모든 칸이 부서지므로 답은 0이다.

예제1

  1. 예제 1

    입력
    2 2
    1 1
    2 1
    1 2
    2 2
    
    예상 출력
    5
    3
    1
    0