페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2560

패널 1s - MB

문제

격자 패널을 생산하는 공장이 있다. 생산 과정 중에 가끔씩 손상된 패널이 나타나는데 이는 패널의 격자점에 구멍이 생기는 것이다. 공장에서는 손상된 패널들을 모두 모아서 재처리를 하게 된다. 재처리 과정에서 패널에 구멍이 생긴 부분을 도려낸다. 이 때 항상 패널의 격자선을 따라서 절단한다. 도려내는 부분은 다음을 만족하는 하나의 연결된 조각이어야 한다.

(i) 각 구멍에 인접한 격자셀들을 모두 포함한다. (ii) 절단의 기준 스트립(strip)으로 선택된 패널의 한 행 또는 한 열에 위치한 모든 셀들을 포함한다. (iii) 도려낼 조각은 직교볼록 다각형이다. (iv) 위의 조건을 만족하는 직교볼록 다각형 중에서 최소 면적을 가진다.

직교 다각형은 경계선이 수평 선분과 수직 선분만으로 구성된 다각형이다 직교볼록 다각형은 그 내부와 어떤 수직선 또는 수평선과의 교차 영역이 공백이거나 한 개의 선분만으로 구성되는 직교 다각형이다.

예를 들어, 그림 1 (a)와 같이 6개의 구멍을 가진 패널을 보자 절단의 기준 스트립으로 밑에서 네 번째 행을 선택한다면, 도려낼 조각은 그림 1 (b)와 같이 29개의 셀을 포함하는 영역이다. 만일 왼쪽에서 네 번째 열이 기준 스트립으로 선택되면, 그림 1 (c)와 같이 27개의 셀을 포함하는 영역을 도려낸다

 

 

문제는 패널의 크기와 구멍의 위치 정보가 주어질 때, 위의 조건을 만족하는 최소 크기의 직교볼록 다각형의 면적을 구하는 프로그램을 작성하는 것이다. 한 개 격자셀의 면적이 1이므로, 그림 1 (c)의 직교볼록 다각형의 면적은 27이다.


입력

입력의 첫째 줄에 두 정수 W와 H가 주어진다. W와 H는 각각 패널의 가로 길이와 세로 길이이다(2≤W, H≤50,000). 두 번째 줄에는 구멍의 개수를 나타내는 정수 N(1≤N≤1,000)이 주어진다. 그 다음 N개의 줄에는 각 줄마다 구멍의 위치를 나타내는 좌표 (X, Y)가 주어진다(0≤X≤W, 0≤Y≤H). 좌표계의 원점은 패널의 왼쪽 아래 꼭지점이라고 가정하라.


출력

주어진 모든 구멍을 포함하는 최소 면적을 가진 직교볼록 다각형의 면적을 한 줄에 출력한다.


예제

8 7

6
2 2
3 1
8 3
5 5
4 6
3 4
27

로그인해야 코드를 작성할 수 있어요.