국경 장벽

두 색의 점 집합과 폭 d가 주어질 때, 남은 점들이 색별로 분리되도록 폭 d의 띠를 놓기 위해 지워야 하는 점의 최소 개수를 구한다.

어려움8기하정렬완전 탐색구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

데모랜드의 새 대통령 트렁크는 선거 기간에 이웃 나라 인도랜드와 맞닿은 국경에 장벽을 세우겠다고 약속했다. 장벽은 직선 하나를 따라 세운다. 문제는 두 나라 국민의 집이 뒤섞여 있어서 직선 하나로는 깔끔하게 갈라지지 않는다는 점이다. 장벽을 어디에 세우든 일부 집은 비우고 주민을 반대편으로 옮겨야 한다. 게다가 장벽에는 두께가 있어서 장벽과 겹치는 집은 허물어야 한다. 집을 비우거나 허무는 데에는 비용이 들고, 그런 집이 많으면 거센 반발이 일어난다. 대통령은 원하는 두께의 장벽을 세울 때 최소 몇 채를 비우거나 허물어야 하는지 알고 싶어 한다.

두 나라 집의 위치가 평면 위의 점으로 주어지고, 장벽의 두께 dd도 주어진다. 장벽은 거리가 dd인 평행한 두 직선 사이의 영역이다. 집을 몇 채 없앤 뒤 남은 두 집합이 다음 두 조건을 만족하면 장벽이 두 집합을 분리한다고 한다.

  1. 서로 다른 나라의 집이 장벽의 같은 쪽에 놓이지 않는다.
  2. 어떤 집도 장벽 내부에 놓이지 않는다. 두 경계선 위에 놓이는 것은 괜찮다.

d=0d = 0이면 두 경계선이 겹쳐서 장벽은 직선 하나가 되고, 그 직선 위의 집은 어느 쪽에도 놓이지 않는다. 한 나라의 집을 전부 없애도 된다. 두께가 dd인 장벽으로 남은 집을 분리하려면 최소 몇 개의 점을 없애야 하는지 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 세 정수 nn, kk, dd가 주어진다. nn은 데모랜드 국민이 가진 집의 수, kk는 인도랜드 국민이 가진 집의 수, dd는 장벽의 두께다 (1n,k1001 \le n, k \le 100, 0d<10000 \le d < 1000). 다음 nn개의 줄에는 각각 두 정수 xxyy가 주어지며 (0x,y100000 \le x, y \le 10000), 데모랜드 국민이 가진 집의 위치 (x,y)(x, y)를 나타낸다. 이어지는 kk개의 줄은 같은 방식으로 인도랜드 국민이 가진 집의 위치를 나타낸다. 같은 위치에 있는 집은 없다. 입력은 0 0 0만 있는 줄로 끝나며 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 두께가 dd인 장벽을 세우려고 없애야 하는 집의 최소 개수를 한 줄에 출력한다. 최적해에서 한 나라의 집이 모두 없어질 수도 있다.