방사능
시간 제한1초메모리 제한128 MB
두 발전소의 반경 쌍마다 두 구역에 모두 속한 집이 여분을 나눈 뒤 보호 장비를 받지 못하는 집의 수를 구한다.
문제
원자력 발전소는 현대 문명의 축복이자 저주이다. 많은 위험이 따르지만 전기를 만드는 가장 값싼 방법이기도 하다. 이 문제에서는 서로 가까이 있는 두 원자력 발전소가 만드는 상황을 다룬다.
땅은 모두 평평하고 모든 집은 2차원 좌표평면 위에 있다고 하자. 두 원자력 발전소는 각각 와 에 있다. 발전소 로부터의 거리가 이하인 지역(거리가 정확히 인 곳도 포함)은 방사능 고위험 지역이다. 마찬가지로 발전소 로부터의 거리가 이하인 지역도 방사능 고위험 지역이다.
발전소 관계자는 고위험 지역에 있는 집마다 보호 장비를 하나씩 나누어 준다. 따라서 두 발전소의 고위험 지역에 모두 포함되는 집은 보호 장비를 두 개 받는다. 그러나 보호 장비는 하나만 있어도 집을 안전하게 보호할 수 있다.
고위험 지역 밖에 있는 집은 저위험 지역에 속하며 처음에는 보호 장비를 받지 못한다. 이때 보호 장비를 두 개 가진 집이 남는 하나를 저위험 지역의 집에게 건네주면 그 저위험 지역의 집도 보호 장비를 하나 가질 수 있다. 이렇게 나누어 주어도 끝내 보호 장비를 갖지 못하는 집이 생길 수 있다.
집들의 위치와 두 원자력 발전소의 위치, 그리고 여러 개의 가능한 쌍이 주어졌을 때, 각 쌍에 대해 끝내 보호 장비를 갖지 못하는 집의 수를 구하는 프로그램을 작성하시오.
입력
입력은 최대 3개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 형식은 다음과 같다.
- 첫째 줄에 집의 수 이 주어진다. ()
- 다음 개의 줄에 각 집의 좌표 가 주어진다. () 같은 위치에 있는 두 집은 없다.
- 다음 줄에 가 주어진다. (, ) 와 는 두 원자력 발전소의 좌표이고 는 확인할 쌍의 개수이다.
- 다음 개의 줄에 각각 가 주어진다. ()
모든 테스트 케이스가 끝난 뒤, 마지막 줄에 이 하나 주어진다.
출력
각 테스트 케이스마다 개의 줄을 출력한다. 첫째 줄에는 Case k: 형식으로 테스트 케이스 번호를 출력한다(는 1부터 시작한다). 그다음 개의 줄에는 입력에 주어진 순서대로 각 쌍에 대해 끝내 보호 장비를 갖지 못하는 집의 수를 출력한다.