격자 패널

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

한 공장에서 격자 패널을 생산한다. 갓 만든 패널에 결함이 생길 때가 있는데, 결함은 패널의 격자점에 뚫린 구멍이다. 작업자들은 결함이 있는 패널을 모두 모아, 구멍이 포함된 부분을 잘라 내고 그 자리를 결함 없는 패널 조각으로 교체한다. 절단은 반드시 격자선을 따라야 하며, 각 구멍에 인접한 모든 격자 칸을 포함하는 하나의 연결된 영역을 제거한다. 이 연결된 영역은 다음 조건을 모두 만족해야 한다.

  • (i) 각 구멍에 인접한 모든 격자 칸을 포함한다.
  • (ii) 기준 절단 띠로 선택한 패널의 한 행 또는 한 열에 속하는 모든 격자 칸을 포함한다.
  • (iii) 직교 볼록 다각형이다.
  • (iv) (i), (ii), (iii)을 만족하는 모든 직교 다각형 중에서 넓이가 최소이다.

경계가 수평 또는 수직 선분으로만 이루어진 다각형을 직교 다각형이라 한다. 직교 다각형이면서, 임의의 수평선 및 수직선과의 교집합이 공집합이거나 하나의 선분인 경우 그 다각형을 직교 볼록 다각형이라 한다.

예를 들어 그림 1(a)의 구멍이 66개 있는 8×78 \times 7 패널을 생각하자. 아래에서 네 번째 행을 기준 절단 띠로 선택하면 제거되는 연결 영역은 격자 칸 2929개를 갖는다(그림 1(b)). 대신 왼쪽에서 네 번째 열을 선택하면 제거되는 연결 영역은 격자 칸 2727개를 가지며(그림 1(c)), 이것이 가능한 가장 작은 직교 볼록 다각형이다.

그림 1

패널의 크기와 구멍의 위치가 주어질 때, 위 조건을 만족하는 가장 작은 직교 볼록 다각형을 구하는 프로그램을 작성하라. 각 격자 칸의 넓이는 11이므로, 그림 1(c)의 직교 볼록 다각형의 넓이는 2727이다.

입력

입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 수 TT가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

각 테스트 케이스의 첫째 줄에는 패널의 너비와 높이를 나타내는 두 정수 wwhh가 주어진다(2w,h500002 \le w, h \le 50000). 다음 줄에는 구멍의 개수 nn이 주어진다(1n10001 \le n \le 1000). 이어지는 nn개의 줄에는 각 구멍의 좌표를 나타내는 두 정수 xxyy가 주어진다(0xw0 \le x \le w, 0yh0 \le y \le h). 패널의 왼쪽 아래 모서리가 좌표계의 원점이다. 같은 줄의 정수들은 하나의 공백으로 구분된다.

출력

출력은 표준 출력으로 한다. 각 테스트 케이스마다, 패널의 모든 구멍을 최소로 덮는 직교 볼록 다각형의 넓이를 정수 하나로 한 줄에 출력한다.