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

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

자리 찾기

면접 대비

시간 제한1초메모리 제한128 MB

요약
R행 C열 좌석 배치도에서 빈 좌석 K개를 골라 이들을 감싸는 가장 작은 직사각형의 넓이를 최소로 만든다.
난이도

보통10점 중 6점

유형
투 포인터, 이분 탐색, 누적 합, 행렬
정답자
아직 제출이 없습니다

문제

KK명의 친구들이 영화를 보러 갑니다. 하지만 너무 늦게 도착해서 좋은 자리를 구하지 못했고, 대신 모두가 가까이 붙어 앉을 수 있는 좋은 방법을 찾기로 했습니다. 모두 이과생이라, 어떤 자리를 살지 다투는 대신 이를 최적화 문제로 바꾸어 풀기로 했습니다.

영화관에는 CC개의 좌석으로 이루어진 행이 RR개 있으며, 현재 비어 있는 좌석이 표시된 좌석표를 볼 수 있습니다. 친구들은 오직 서로 가까이 앉는 것만 중요하게 여기기 때문에, 자신들이 앉는 그룹의 넓이(extension)를 최소화하도록 좌석을 사기로 했습니다.

넓이는 선택한 모든 좌석을 포함하면서 변이 행과 열에 평행한 가장 작은 직사각형의 면적으로 정의됩니다. 직사각형의 면적은 그 안에 들어 있는 좌석의 개수입니다. 비어 있는 좌석의 지도가 주어질 때, 가능한 최소 넓이를 구하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있습니다. 각 테스트 케이스의 첫 줄에는 세 양의 정수 RR, CC, KK가 주어집니다 (1≤R,C≤3001 \le R, C \le 300, 1≤K≤R×C1 \le K \le R \times C). 이어지는 RR개의 줄에는 각각 정확히 CC개의 문자가 있습니다. ii번째 줄의 jj번째 문자는 해당 좌석이 이미 팔렸으면 X, 비어 있으면 .입니다. 각 테스트 케이스에는 항상 최소 KK개의 빈 좌석이 있습니다.

입력의 끝은 R=C=K=0R = C = K = 0인 줄로 표시되며, 이 줄은 처리하지 않습니다.

입력은 표준 입력으로 주어집니다.

출력

각 테스트 케이스마다, 그룹이 가질 수 있는 최소 넓이를 한 줄에 출력하세요.

출력은 표준 출력으로 합니다.

예제5

  1. 예제 1

    입력
    3 5 5
    ...XX
    .X.XX
    XX...
    5 6 6
    ..X.X.
    .XXX..
    .XX.X.
    .XXX.X
    .XX.XX
    0 0 0
    
    예상 출력
    6
    9
    
  2. 예제 2

    입력
    1 1 1
    .
    0 0 0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    2 3 1
    .X.
    XX.
    0 0 0
    
    예상 출력
    1
    
  4. 예제 4

    입력
    2 2 4
    ..
    ..
    0 0 0
    
    예상 출력
    4
    
  5. 예제 5

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