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

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

산맥의 그림자

시간 제한2초메모리 제한512 MB

요약
직선 위에 놓인 N개의 반원(중심 c_i, 반지름 r_i)이 주어질 때, 각 질의 x를 덮는 반원들의 높이 중 최댓값을 구한다.
난이도

보통10점 중 6점

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

문제

Mt. 씨는 전 세계의 산을 사진으로 담고 싶어 한다. 오늘 Mt. 씨는 가장 흥미로운 산맥 중 하나인 Curved Mountains의 알프스를 찾았다. Curved Mountains의 알프스에 있는 모든 산의 모양은 놀랍게도 반원이다.

Mt. 씨는 방금 산을 촬영할 장소를 정했다. 산을 둘러싼 지역은 평평한 수평 지면이고, 그가 고른 장소는 산에서 충분히 멀리 떨어져 있다. 따라서 산은 일직선으로 늘어선 2차원 반원처럼 보이며, 모든 반원의 지름은 하나의 직선 위에 놓여 있다. 일부 반원은 서로 겹치거나 다른 반원에 완전히 가려질 수 있다.

Mt. 씨는 해가 지기를 기다리고 있다. 해가 진 후 산은 그림자에 들어가 구분할 수 없게 된다. 그 상황에서 Mt. 씨는 사진이 어떻게 보일지 궁금해한다. 그의 카메라 조수인 당신도 훌륭한 프로그래머다. 모든 반원의 좌표와 반지름이 주어졌을 때, 그가 알고 싶어 하는 위치에서 2차원 그림자의 높이를 계산하는 프로그램을 작성하라는 요청을 받았다.

그림 F-1은 Sample 2의 산들을 나타낸다. 첫 번째, 두 번째, 세 번째 산은 서로 겹쳐 있고, 다섯 번째 산은 네 번째 산에 가려져 있다. 그림 F-2는 그림자 속의 산들을 나타낸다. 예를 들어 위치 82에는 네 번째와 다섯 번째 산이 있고, 그림자의 높이는 그중 가장 높은 네 번째 산의 높이이다.

그림 F-1. Sample 2의 산들

그림 F-2. 그림자 속의 산들과 Sample 2의 위치들

입력

입력은 아래 형식의 단일 테스트 케이스로 구성된다.

NN

c1c_1 r1r_1

⋮\vdots

cNc_N rNr_N

QQ

x1x_1

⋮\vdots

xQx_Q

첫째 줄에는 정수 NN (1≤N≤1051 \le N \le 10^5)이 주어지며, NN은 Curved Mountains의 알프스에 있는 산의 수이다. 다음 NN개 줄 중 ii번째 줄에는 두 정수 cic_i (1≤ci≤1081 \le c_i \le 10^8)와 rir_i (1≤ri≤1081 \le r_i \le 10^8)가 주어진다. cic_i는 ii번째 반원의 중심 위치이며, 여기서 "중심"은 반원을 그 지름에 대해 반사시켜 얻은 원의 중심을 뜻한다. rir_i는 ii번째 반원의 반지름이다. 다음 줄에는 정수 QQ (1≤Q≤1051 \le Q \le 10^5)가 주어지며, QQ는 Mt. 씨가 궁금해하는 직선 위의 위치의 수이다. 다음 QQ개 줄 중 jj번째 줄에는 정수 xjx_j (1≤xj≤1081 \le x_j \le 10^8)가 주어지며, xjx_j는 Mt. 씨가 궁금해하는 jj번째 위치이다.

출력

QQ개 줄을 출력하며, jj번째 줄에는 Mt. 씨가 궁금해하는 jj번째 위치에서 산 그림자의 높이를 출력한다. 절대 오차 또는 상대 오차가 10−710^{-7} 미만이면 정답으로 인정된다.

예제3

  1. 예제 1

    입력
    3
    1 10
    4 10
    10 5
    6
    4
    2
    8
    12
    14
    18
    
    예상 출력
    10.0000000000
    9.9498743711
    9.1651513899
    6.0000000000
    3.0000000000
    0.0000000000
    
  2. 예제 2

    입력
    5
    23 10
    32 7
    41 10
    75 12
    79 6
    6
    10
    32
    36
    60
    75
    82
    
    예상 출력
    0.0000000000
    7.0000000000
    8.6602540378
    0.0000000000
    12.0000000000
    9.7467943448
    
  3. 예제 3

    입력
    9
    3 8
    21 10
    12 9
    15 3
    1 11
    19 4
    9 6
    17 1
    22 7
    7
    19
    3
    16
    8
    9
    31
    1
    
    예상 출력
    9.7979589711
    10.8166538264
    8.6602540378
    8.4852813742
    8.4852813742
    0.0000000000
    11.0000000000