열기구

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

열기구를 조종하는 문제를 생각해 보자. 언뜻 보기에는 우리가 할 수 있는 일이 없어 보인다. 비행은 전적으로 바람에 맡겨진 것처럼 느껴진다. 올라가고, 바람을 따라 떠다니다가, 내려온다. 그러나 날씨에는 우리가 자주 이용할 수 있는 한 가지 사실이 있다. 바람은 모든 고도에서 같은 방향으로 불지 않는다.

아래 그림의 상황을 보자. 낮은 고도(1000 ft 미만)에서 저고도 바람은 북쪽에서 약간 서쪽으로 치우쳐 분다. 높은 고도(1000 ft 초과)에서 고고도 바람은 동쪽에서 약간 북쪽으로 치우쳐 분다. 출발점 $S$에서 목표점 $X$로 가려면, 높은 고도로 올라가 고고도 바람을 타고 남북 방향으로 절반쯤 이동한 뒤, 낮은 고도로 내려와 저고도 바람으로 목적지에 도달할 수 있다. 시간을 잘 맞추고 바람의 방향이 바뀌지 않는다면 목적지에 정확히 착륙할 수 있다.

열기구의 비행 계획을 계산하는 프로그램을 작성하라. 단순화를 위해 바람은 정확히 두 방향뿐이며 둘 다 일정하다고 가정한다. 목표는 가능한 가장 빠른 경로를 구하거나, 도달할 수 있는 경로가 없음을 판정하는 것이다.

지면 위에서 위치가 거의 변하지 않은 채로, 즉 고도 변화가 순간적으로 일어나는 것처럼 열기구를 올리거나 내릴 수 있다고 가정한다. 다만 고도를 너무 자주 바꾸지 않도록, 고도를 한 번 바꿀 때마다(올리든 내리든) 30초의 인위적인 시간 벌점을 더한다.

한 가지 제약이 있다. 항공 교통 관제는 출발점과 목표점을 잇는 직선을 중심으로 하는 너비 $W$의 비행 회랑 안에서만 비행하도록 제한한다. 이 회랑 밖으로 나갈 수 없으므로, 지그재그 형태의 경로를 따라가야 할 수도 있다.

입력

첫 줄에 풀어야 할 문제의 수 $N$이 정수로 주어진다. 이어지는 $N$개의 줄에는 각각 하나의 문제가 9개의 실수로 주어진다.

  • $S_x, S_y$ — 출발 위치의 좌표(미터)
  • $X_x, X_y$ — 목표 위치의 좌표(미터)
  • $L_x, L_y$ — 저고도 바람의 속도 벡터(미터/초)
  • $H_x, H_y$ — 고고도 바람의 속도 벡터(미터/초)
  • $W$ — 비행 회랑의 너비(미터)

저고도 바람과 고고도 바람 모두 $S$에서 $X$로 향하는 방향과 정확히 같은 방향으로는 절대 불지 않는다고 가정해도 된다.

출력

각 문제마다 한 줄을 출력한다. Impossible이라는 단어를 출력하거나, 비행에 필요한 시간(시간 벌점 포함)을 초 단위로 반올림하여 출력한다.