상근이는 근처 산에 차를 타고 올라왔고, 이제 최대한 빨리 집으로 돌아가려고 한다. 차에 남은 기름이 얼마 없기 때문에 최대한 효율적으로 운전해야 한다.
집으로 가는 길의 일부는 오르막이고 일부는 내리막이다. 각 도로 구간은 저마다 다른 길이와 경사를 가진다. 차에 남은 기름의 양이 주어질 때, 집에 도착하는 데 걸리는 최소 시간을 구하시오.
차의 연료 소비는 간단하게 모델링된다. 단위 거리당 연료 소비량 $c$ (리터/km)는 속도 $v$에 비례하며, 도로의 경사 $s$에 의해 값이 조정된다.
$$c = \max(0,\ \alpha v + \beta s)$$
여기서 $\alpha$는 평지에서의 연료 소비 계수, $v$는 속도(km/h), $s$는 도로의 경사, $\beta$는 양의 상수이다. 예를 들어 어떤 언덕을 연료 없이 $10$ km/h로 내려갈 수 있다면, 같은 언덕을 올라갈 때 드는 연료는 평지에서 $10$ km/h 더 빠르게 달릴 때와 같다. 가속과 감속은 연료를 쓰지 않고 즉시 이루어진다. 또한 차에는 최고 속도 $v_{max}$가 있어 이를 넘을 수 없다.
거리는 미터 단위로 주어진다. 수평 길이가 $x$이고 높이 변화가 $y$인 도로 구간에서 실제 주행 거리는 $\sqrt{x^2 + y^2}$ 미터이고, 그 경사는 $s = y / x$이다. 속도는 km/h, 이동 시간은 시간(hour) 단위로 측정한다.
첫째 줄에 테스트 케이스의 개수 $T$ ($1 \le T \le 100$)가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.
각 테스트 케이스의 첫째 줄에는 네 실수 $\alpha$ ($0.5 \le \alpha \le 100$), $\beta$ ($0.1 \le \beta \le 100$), $v_{max}$ ($10 \le v_{max} \le 200$), $f$ ($0 \le f \le 50$)가 주어진다. $v_{max}$는 차의 최고 속도(km/h), $f$는 남은 기름의 양(리터)이다.
다음 줄에는 도로의 개수 $r$ ($1 \le r \le 10000$)이 주어진다.
이어지는 $r$개의 줄에는 각각 두 실수 $x_i$와 $y_i$ ($1 \le x_i \le 1000$, $-1000 \le y_i \le 1000$)가 주어지며, 이는 $i$번째 도로의 수평 길이와 높이 변화(미터)이다. 각 도로의 경사는 일정하다.
각 테스트 케이스마다 집으로 돌아오는 최소 시간(시간 단위)을 소수점 아래 정확히 6자리로 반올림하여 한 줄에 출력한다 (예: printf("%.6f")). 남은 기름으로 집에 돌아올 수 없으면 대신 IMPOSSIBLE을 출력한다. 집에 돌아올 수 있는 경우 걸리는 시간은 항상 24시간 미만이다. 테스트 데이터는 정답이 반올림 경계에 가깝지 않도록 구성되어 있다.