만드는 중입니다

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

연료가 바닥난 차

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

요약
앞차의 시각별 위치가 주어질 때 브레이크로 속도를 조절하며 추월하지 않고 거리 D에 최단 시간으로 도착합니다.
난이도

보통10점 중 7점

유형
그리디, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

차의 연료가 떨어졌다. 최대한 빨리 집에 도착해야 한다. 다행히 집은 언덕 아래에 있고 당신의 차는 언덕 꼭대기에 있다. 문제는 바로 앞에 다른 차가 한 대 있어서 추월할 수 없다는 점이다. 대신 브레이크는 멀쩡하고 제동력이 아주 강하다.

시각 0초에 언덕 꼭대기에서 속도 0 m/s로 출발한다. 중력은 일정한 가속도로 차를 언덕 아래로 끌어내린다. 어느 시각에나 브레이크를 밟아 속도를 원하는 만큼 줄이거나 가속도를 잠시 원하는 만큼 줄일 수 있다.

브레이크를 가장 잘 사용했을 때 집에 도착하는 최소 시간을 구하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 세 수 DD, NN, AA가 공백으로 구분되어 주어진다. DD는 언덕 꼭대기에서 집까지의 거리를 미터로 나타낸 실수이고 소수점 아래 6자리로 주어진다. NN과 AA는 정수이다.

다음 NN개의 줄에는 두 실수 tit_i와 xix_i가 공백으로 구분되어 주어진다. tit_i는 초 단위 시각, xix_i는 미터 단위 위치이며 둘 다 소수점 아래 6자리로 주어진다. 시각 tit_i에 앞차가 당신의 출발 지점에서 언덕 아래로 xix_i미터 떨어진 곳에 있다는 뜻이다.

마지막 줄에는 AA개의 실수 aia_i가 공백으로 구분되어 주어진다. 각각 m/s2\mathrm{m/s^2} 단위의 가속도이고 소수점 아래 2자리로 주어진다.

앞차는 시각 tit_i와 ti+1t_{i+1} 사이를 일정한 속도로 이동한다. 시각 tN−1t_{N-1} 이후로는 언덕 위로 되돌아오지 않으므로 앞차의 위치는 계속 xN−1x_{N-1} 이상이다.

예를 들어 t5=10t_5 = 10, x5=20x_5 = 20, t6=20t_6 = 20, x6=40x_6 = 40이면 출발 10초 뒤에 앞차는 20미터 아래에 있고, 15초 뒤에는 30미터 아래에, 20초 뒤에는 40미터 아래에 있다.

제한

  • 1≤T≤201 \le T \le 20
  • 1.0≤D≤1041.0 \le D \le 10^4
  • 1≤N≤10001 \le N \le 1000
  • 1≤A≤101 \le A \le 10
  • 1.00≤ai≤9.811.00 \le a_i \le 9.81
  • 0.0≤ti≤1050.0 \le t_i \le 10^5
  • 0.0≤xi≤1050.0 \le x_i \le 10^5
  • t0=0t_0 = 0, ti<ti+1t_i < t_{i+1}
  • xi<xi+1x_i < x_{i+1}
  • xN−1≥Dx_{N-1} \ge D

출력

각 테스트 케이스마다 먼저 Case #c: 형식의 줄을 출력한다. cc는 1부터 시작하는 테스트 케이스 번호이다. 그 다음 AA개의 줄을 출력하며, ii번째 줄에는 중력 가속도가 aia_i일 때 집에 도착하는 최소 시간을 초 단위로 쓴다.

시간은 소수점 아래 일곱째 자리에서 반올림해 소수점 아래 정확히 6자리로 출력한다. 예를 들어 25초는 25.000000으로 쓴다. 빈 줄은 출력하지 않는다.

힌트

위치와 가속도. 가속도가 a m/s2a\ \mathrm{m/s^2}로 일정하고 처음 속도가 v0 m/sv_0\ \mathrm{m/s}인 물체는 tt초 동안 v0t+12at2v_0 t + \frac{1}{2} a t^2만큼 이동한다.

경사면 위의 거리. 모든 거리와 가속도는 언덕을 따라 내려가는 직선 방향으로 잰다. 수평 거리가 아니다. 처음 속도가 0 m/s0\ \mathrm{m/s}인 차가 2 m/s22\ \mathrm{m/s^2}로 가속하고 앞차가 x=1x = 1에 멈춰 있다면 정확히 1초 뒤에 앞차에 닿는다.

앞차. 앞차를 절대 추월할 수 없다. 어느 시각에도 당신이 내려온 거리가 앞차가 내려온 거리보다 클 수 없다. 두 거리가 같아도 된다. 두 차는 모두 질점으로 본다.

브레이크. 브레이크는 어느 시각에나 속도를 원하는 만큼 줄인다. 속도가 음수가 되는 일은 없다.

예제2

  1. 예제 1

    입력
    3
    1000.000000 2 3
    0.000000 20.500000
    25.000000 1000.000000
    1.00 5.00 9.81
    50.000000 2 2
    0.000000 0.000000
    100000.000000 100.000000
    1.00 1.01
    10000.000000 3 1
    0.000000 0.000000
    10000.000000 0.100000
    10000.100000 100000.000000
    1.00
    
    예상 출력
    Case #1:
    44.721360
    25.000000
    25.000000
    Case #2:
    50000.000000
    50000.000000
    Case #3:
    10140.974143
    
  2. 예제 2

    입력
    2
    10.000000 3 2
    0.000000 0.000000
    5.000000 1.000000
    6.000000 30.000000
    2.00 9.81
    8.000000 2 2
    0.000000 3.000000
    4.000000 9.000000
    1.00 2.50
    
    예상 출력
    Case #1:
    7.162278
    5.976319
    Case #2:
    4.000000
    3.333333