아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

회로 기판

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

요약
각 행에서 최댓값과 최솟값의 차이가 K 이하인 가장 큰 부분 직사각형의 칸 수를 구합니다.
난이도

보통10점 중 6점

유형
슬라이딩 윈도우, 투 포인터, 배열
정답자
아직 제출이 없습니다

문제

아르시는 최근 재활용하려는 오래된 직사각형 회로 기판을 찾았다. 이 기판은 RR개의 행과 CC개의 열로 이루어진 칸으로 되어 있다. 각 칸에는 밀리미터 단위의 두께가 있으며, rr행 cc열 칸의 두께는 Vr,cV_{r,c}이다.

각 행에서 가장 두꺼운 칸과 가장 얇은 칸의 두께 차이가 KK 이하이면 그 기판을 좋다고 한다. 원래 기판은 좋지 않을 수 있으므로, 아르시는 좋은 부분 기판을 찾으려고 한다. 부분 기판은 원래 기판에서 축에 평행한 직사각형 영역을 골라낸 것이다.

좋은 부분 직사각형 중 가장 큰 것의 칸 수를 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 RR, CC, KK가 적힌 줄로 시작한다. 이어서 RR개의 줄이 주어지며, 각 줄에는 CC개의 정수가 있다. rr번째 줄의 cc번째 정수가 Vr,cV_{r,c}이다.

출력

각 테스트 케이스에 대해 Case #x: y 형식으로 한 줄을 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 좋은 부분 직사각형의 칸 수의 최댓값이다.

제한

1≤T≤501 \le T \le 50.

1≤R≤3001 \le R \le 300.

1≤C≤3001 \le C \le 300.

모든 i,ji, j에 대해 0≤Vi,j≤1030 \le V_{i,j} \le 10^3.

예제2

  1. 예제 1

    입력
    3
    1 4 0
    3 1 3 3
    2 3 0
    4 4 5
    7 6 6
    4 5 0
    2 2 4 4 20
    8 3 3 3 12
    6 6 3 3 3
    1 6 8 6 4
    
    예상 출력
    Case #1: 2
    Case #2: 2
    Case #3: 6
    
  2. 예제 2

    입력
    3
    1 4 2
    3 1 3 3
    3 3 2
    0 5 0
    8 12 3
    7 10 1
    4 4 8
    20 10 20 10
    10 4 5 20
    20 5 4 10
    10 20 10 20
    
    예상 출력
    Case #1: 4
    Case #2: 3
    Case #3: 4