만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

패러글라이딩

시간 제한3초메모리 제한1024 MB

요약
각 패러글라이더의 출발 위치와 높이가 주어질 때, 질의 위치 p_i에서 가장 높이 떠 있는 패러글라이더의 높이를 구합니다. 떠 있는 것이 없으면 0을 출력합니다.
난이도

보통10점 중 7점

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

문제

하넬은 패러글라이딩 대회에 사진을 찍으러 가기로 했다. 대회에는 NN대의 패러글라이더가 준비되어 있다. ii번째 패러글라이더는 기준선에서 왼쪽으로 xix_i만큼 떨어진 곳에서 높이 yiy_i로 출발하여, 오른쪽 방향으로 포물선 궤적을 그리며 비행한다. 기준선에서 오른쪽으로 xx만큼 떨어진 지점에서 ii번째 패러글라이더의 높이는

yi−1c(x+xi)2y_i-\dfrac{1}{c}(x+x_i)^2

이며, cc는 모든 패러글라이더가 공유하는 중력과 속도에 관한 상수이다. 패러글라이더는 비행하다가 높이가 00이 되는 순간 바로 멈춘다.

c=100c=100일 때 (x1,y1)=(10,30)(x_1, y_1) = (10, 30)인 빨간색 패러글라이더와 (x2,y2)=(25,40)(x_2, y_2) = (25, 40)인 파란색 패러글라이더의 궤적이다.

궤적이 너무 많이 겹치면 사고가 나기 쉬우므로, 기준선 오른쪽 구간에서 패러글라이더의 궤적이 완전히 겹치지 않도록 미리 배치되어 있다.

하넬은 기준선에서 오른쪽으로 p1p_1, ⋯\cdots, pQp_Q만큼 떨어진 위치에서 QQ장의 사진을 찍으려 한다. 각 pip_i에서 가장 높이 떠 있는 패러글라이더의 높이를 계산해 완벽한 구도로 찍고 싶지만, 다른 사진을 편집하느라 바쁘다. 하넬을 대신해 각 pip_i 위치에서 가장 높이 날고 있는 패러글라이더의 높이를 구해 주자.

입력

첫 번째 줄에 패러글라이더의 개수 NN과 찍을 사진의 개수 QQ가 주어진다. (1≤N,Q≤300 000)(1 \le N, Q \le 300\,000)

두 번째 줄에 포물선 궤적의 계수 cc가 주어진다. (1≤c≤106)(1 \le c \le 10^6)

이어서 NN개의 줄에 패러글라이더의 위치 xix_i와 높이 yiy_i가 공백으로 구분되어 주어진다. (1≤xi≤109;(1 \le x_i \le 10^9; 1≤yi≤1012)1 \le y_i \le 10^{12})

마지막 줄에 p1,p2,⋯ ,pQp_1, p_2, \cdots, p_Q가 공백으로 구분되어 주어진다. (1≤pi≤109)(1 \le p_i \le 10^9)

기준선 오른쪽 구간에서 패러글라이더의 궤적이 완전히 겹치는 경우는 주어지지 않는다.

입력으로 주어지는 모든 수는 정수이다.

출력

ii번째 줄에 pip_i 위치에서 가장 높이 날고 있는 패러글라이더의 높이를 출력한다.

기준선 오른쪽 pip_i 위치에 도달하는 패러글라이더가 없으면 00을 출력한다.

정답과의 상대오차 또는 절대오차가 10−910^{-9} 이하이면 정답으로 처리한다.

예제1

  1. 예제 1

    입력
    2 3
    100
    10 30
    25 40
    10 20 50
    
    예상 출력
    27.75
    21
    0