만드는 중입니다

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

안전한 정사각형 (큰 입력)

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

요약
R×C 격자에서 몬스터가 최대 K개 있을 때 몬스터를 포함하지 않는 모든 크기의 정사각형 영역 개수를 센다.
난이도

어려움10점 중 8점

유형
배열, 동적 계획법, 누적 합, 행렬
정답자
아직 제출이 없습니다

문제

몬스터 조련사는 몬스터를 찾아다니지만, 조련사가 아닌 사람에게 몬스터는 매우 위험하다. 그래서 몬스터가 없는 안전한 자리를 찾으려 한다.

세계를 격자로 보자. 일부 칸에는 몬스터가 한 마리씩 있다. 안전한 정사각형은 격자에 맞춰 놓인 D×DD \times D 칸짜리 정사각형 영역 중 몬스터가 한 마리도 들어 있지 않은 것이다(D≥1D \ge 1). 세계 전체에 크기에 상관없이 안전한 정사각형이 모두 몇 개인지 구하라. 크기가 같아도 위치가 다르면 서로 다른 정사각형으로 센다.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 세 정수 RR, CC, KK가 주어진다. 격자는 RR행 CC열이고 몬스터 KK마리가 있다. 이어지는 KK개의 줄에는 ii번째 몬스터가 있는 행 번호 RiR_i와 열 번호 CiC_i가 주어진다. 행 번호는 위에서 아래로 0부터, 열 번호는 왼쪽에서 오른쪽으로 0부터 매긴다.

출력

각 테스트 케이스마다 한 줄에 Case #x: y 형식으로 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 그 테스트 케이스에서 안전한 정사각형의 개수이다.

제한

  • 1≤T≤201 \le T \le 20
  • 1≤R≤30001 \le R \le 3000
  • 1≤C≤30001 \le C \le 3000
  • 0≤K≤30000 \le K \le 3000
  • 0≤Ri<R0 \le R_i < R (1≤i≤K1 \le i \le K)
  • 0≤Ci<C0 \le C_i < C (1≤i≤K1 \le i \le K)
  • i≠ji \ne j이면 (Ri,Ci)≠(Rj,Cj)(R_i, C_i) \ne (R_j, C_j). 한 칸에 몬스터가 둘 이상 있는 경우는 없다.

예제3

  1. 예제 1

    입력
    2
    3 3 1
    2 1
    4 11 12
    0 1
    0 3
    0 4
    0 10
    1 0
    1 9
    2 0
    2 4
    2 9
    2 10
    3 4
    3 10
    
    예상 출력
    Case #1: 10
    Case #2: 51
    
  2. 예제 2

    입력
    2
    1 1 0
    1 1 1
    0 0
    
    예상 출력
    Case #1: 1
    Case #2: 0
    
  3. 예제 3

    입력
    2
    2 2 4
    0 0
    0 1
    1 0
    1 1
    3 3 9
    0 0
    0 1
    0 2
    1 0
    1 1
    1 2
    2 0
    2 1
    2 2
    
    예상 출력
    Case #1: 0
    Case #2: 0