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

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

방사능

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

요약
두 발전소의 반경 쌍마다 두 구역에 모두 속한 집이 여분을 나눈 뒤 보호 장비를 받지 못하는 집의 수를 구한다.
난이도

보통10점 중 7점

유형
기하, 정렬, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

원자력 발전소는 현대 문명의 축복이자 저주이다. 많은 위험이 따르지만 전기를 만드는 가장 값싼 방법이기도 하다. 이 문제에서는 서로 가까이 있는 두 원자력 발전소가 만드는 상황을 다룬다.

땅은 모두 평평하고 모든 집은 2차원 좌표평면 위에 있다고 하자. 두 원자력 발전소는 각각 (ax,ay)(a_x, a_y)와 (bx,by)(b_x, b_y)에 있다. 발전소 (ax,ay)(a_x, a_y)로부터의 거리가 R1R_1 이하인 지역(거리가 정확히 R1R_1인 곳도 포함)은 방사능 고위험 지역이다. 마찬가지로 발전소 (bx,by)(b_x, b_y)로부터의 거리가 R2R_2 이하인 지역도 방사능 고위험 지역이다.

발전소 관계자는 고위험 지역에 있는 집마다 보호 장비를 하나씩 나누어 준다. 따라서 두 발전소의 고위험 지역에 모두 포함되는 집은 보호 장비를 두 개 받는다. 그러나 보호 장비는 하나만 있어도 집을 안전하게 보호할 수 있다.

고위험 지역 밖에 있는 집은 저위험 지역에 속하며 처음에는 보호 장비를 받지 못한다. 이때 보호 장비를 두 개 가진 집이 남는 하나를 저위험 지역의 집에게 건네주면 그 저위험 지역의 집도 보호 장비를 하나 가질 수 있다. 이렇게 나누어 주어도 끝내 보호 장비를 갖지 못하는 집이 생길 수 있다.

집들의 위치와 두 원자력 발전소의 위치, 그리고 여러 개의 가능한 R1,R2R_1, R_2 쌍이 주어졌을 때, 각 쌍에 대해 끝내 보호 장비를 갖지 못하는 집의 수를 구하는 프로그램을 작성하시오.

입력

입력은 최대 3개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 형식은 다음과 같다.

  • 첫째 줄에 집의 수 NN이 주어진다. (0<N≤2000000 < N \le 200000)
  • 다음 NN개의 줄에 각 집의 좌표 xi,yix_i, y_i가 주어진다. (0≤xi,yi≤200000 \le x_i, y_i \le 20000) 같은 위치에 있는 두 집은 없다.
  • 다음 줄에 ax,ay,bx,by,qa_x, a_y, b_x, b_y, q가 주어진다. (0≤ax,ay,bx,by≤200000 \le a_x, a_y, b_x, b_y \le 20000, 0<q≤200000 < q \le 20000) (ax,ay)(a_x, a_y)와 (bx,by)(b_x, b_y)는 두 원자력 발전소의 좌표이고 qq는 확인할 R1,R2R_1, R_2 쌍의 개수이다.
  • 다음 qq개의 줄에 각각 R1,R2R_1, R_2가 주어진다. (0<R1,R2≤130000 < R_1, R_2 \le 13000)

모든 테스트 케이스가 끝난 뒤, 마지막 줄에 00이 하나 주어진다.

출력

각 테스트 케이스마다 q+1q+1개의 줄을 출력한다. 첫째 줄에는 Case k: 형식으로 테스트 케이스 번호를 출력한다(kk는 1부터 시작한다). 그다음 qq개의 줄에는 입력에 주어진 순서대로 각 R1,R2R_1, R_2 쌍에 대해 끝내 보호 장비를 갖지 못하는 집의 수를 출력한다.

예제1

  1. 예제 1

    입력
    11
    95 75
    27 6
    93 5
    124 13
    34 49
    65 61
    81 49
    77 33
    110 50
    91 22
    110 25
    57 42 97 36 2
    31 25
    25 25
    0
    
    예상 출력
    Case 1:
    2
    2