초토화 포격

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

요약
주어진 발사 각도와 바람, 양쪽 전차 위치에서 포탄을 상대 전차에 맞히는 300m/s 이하의 가장 작은 속도를 구하고 없으면 impossible을 출력합니다.
난이도

보통10점 중 4점

유형
수학
정답자
아직 제출이 없습니다

문제

아르네 헤이스베이스 장군은 할 일이 없다. 국방 예산이 계속 깎여서 사무실에 남은 업무가 없고, 장군들은 하루 종일 Scorched Earth라는 낡은 컴퓨터 게임만 한다. 아르네는 승부욕이 강한데 게임 실력은 형편없어서, 계산을 대신 해 줄 프로그램을 원한다.

한 판은 전차 두 대의 결투이고, 무기는 작은 미사일뿐이다. 두 사람이 번갈아 쏘면서 각도와 초기 속력을 정한다. 초기 속력은 음수일 수 없고 300.0300.0 m/s를 넘을 수도 없다. 미사일이 나는 동안 중력은 아래 방향으로 9.8 m/s29.8\ \mathrm{m/s^2}만큼 작용하고, 바람은 x축 방향으로 일정한 가속도를 준다.

아르네는 전장의 산을 모두 피하는 각도를 늘 알아내므로 지형은 입력에 없다. 필요한 값은 속력이다. 전차가 (xu,yu)(x_u, y_u)에 있고 발사 각도가 dd도, 초기 속력이 vv이면 tt초 뒤 미사일의 위치는 다음과 같다.

x(t)=xu+(vcos⁡d) t+wt22,y(t)=yu+(vsin⁡d) t−9.8t22x(t) = x_u + (v \cos d)\,t + \frac{w t^2}{2}, \qquad y(t) = y_u + (v \sin d)\,t - \frac{9.8 t^2}{2}

여기서 ww는 바람이 주는 가속도다. 어떤 t>0t > 0에서 x(t)=xox(t) = x_o와 y(t)=yoy(t) = y_o가 동시에 성립하면 (xo,yo)(x_o, y_o)에 있는 상대 전차를 명중한 것이다.

입력

첫째 줄에 테스트 케이스의 개수 nn이 주어진다 (1≤n≤10001 \le n \le 1000). 다음 nn개의 줄에 각각 실수 여섯 개 xux_u, yuy_u, xox_o, yoy_o, ww, dd가 주어진다. 내 전차는 (xu,yu)(x_u, y_u), 상대 전차는 (xo,yo)(x_o, y_o)에 있고 단위는 미터다. 0.0≤xu,xo≤1000.00.0 \le x_u, x_o \le 1000.0이고 0.0≤yu,yo≤800.00.0 \le y_u, y_o \le 800.0이다. 바람은 미사일을 x축 방향으로 w m/s2w\ \mathrm{m/s^2}만큼 가속하며 −2.0≤w≤2.0-2.0 \le w \le 2.0이다. 아르네가 고른 각도는 dd도이고 0≤d≤1800 \le d \le 180이다. d=0d = 0은 x축이 커지는 방향으로 쏘는 것이고, d=90d = 90은 바로 위로 쏘는 것이다.

출력

테스트 케이스마다 한 줄씩 출력한다. 00 이상 300.0300.0 m/s 이하의 초기 속력으로 상대를 맞힐 수 있으면 그 속력을 소수점 아래 다섯 자리까지 출력한다. 맞히는 속력이 여러 개면 가장 작은 값을 출력한다. 그런 속력이 없으면 impossible을 출력한다.

예제2

  1. 예제 1

    입력
    2
    0.0 0.0 500.0 0.0 0.0 45.0
    100.0 0.0 500.0 0.0 0.0 135.0
    
    예상 출력
    70.00000
    impossible
    
  2. 예제 2

    입력
    3
    0.0 100.0 0.0 200.0 0.0 90.0
    0.0 100.0 5.0 200.0 0.0 90.0
    0.0 0.0 100.0 200.0 2.0 90.0
    
    예상 출력
    44.27189
    impossible
    69.00000