세 갈래로 갈라지는 새 무기

세 표적 좌표가 주어질 때 포물선으로 날아가 25도씩 갈라지는 세 직선으로 표적을 모두 맞추는 발사각 중 속도가 가장 작은 값을 구합니다.

보통7기하수학아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

새를 쏘아 목표물을 맞히는 인기 모바일 게임에는 색이 다른 무기가 여러 종류 나온다. 빨간 무기는 평범한 포물선을 그린다. 노란 무기도 포물선으로 날아가지만, 날아가는 도중 화면을 한 번 더 누르면 중력의 영향이 거의 사라져 그 순간의 방향을 유지한 채 직선으로 나아간다. 파란 무기는 화면을 다시 누르면 세 조각으로 갈라져, 가운데 조각은 원래 방향을 유지하고 나머지 두 조각은 조금 왼쪽과 오른쪽으로 벌어진다. 이 문제에서 다루는 새 무기는 두 무기를 섞은 것이다.

그림 1그림 2그림 3
노란 무기가 흰 원 위치에 왔을 때 화면을 누른 경우파란 무기가 흰 원 위치에 왔을 때 화면을 누른 경우새 무기가 그리는 경로

새 무기는 처음에 포물선을 그리며 날아간다. 화면을 누르는 순간 무기는 세 조각으로 갈라지고, 갈라진 뒤에는 중력을 받지 않고 각각 직선으로 나아간다. 가운데 조각은 갈라지는 순간의 속도 방향을 그대로 유지한다. 나머지 두 조각은 그 방향에서 각각 왼쪽으로 25도, 오른쪽으로 25도 벌어진 방향으로 나아간다. 세 조각은 목표물 A, B, C를 하나씩 맞힌다.

무기는 항상 원점 (0,0)(0, 0)에서 던진다. 던지는 각도 θ\theta와 속력 vv, 그리고 갈라지는 시각은 마음대로 고른다. 중력가속도는 g=9.8g = 9.8이고, 길이는 좌표 단위로, 시간은 초로 잰다. 바람처럼 중력 말고 다른 힘이 작용하는 일은 없다. 갈라지기 전에는 무기가 목표물을 지나가더라도 맞히지 않는다고 본다.

세 목표물의 좌표가 주어질 때, 세 조각이 세 목표물을 모두 맞히도록 하는 던지는 각도 θ\theta를 도 단위로 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. (T10000T \le 10000)

다음 TT개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄에는 실수 여섯 개 x1x_1, y1y_1, x2x_2, y2y_2, x3x_3, y3y_3가 공백으로 구분되어 주어진다. 세 목표물의 좌표는 각각 (x1,y1)(x_1, y_1), (x2,y2)(x_2, y_2), (x3,y3)(x_3, y_3)이고 500.0x1,x2,x310000.0500.0 \le x_1, x_2, x_3 \le 10000.0이다. 세 목표물 중 어느 두 개 사이의 거리도 5 이상이다. 어느 조각이 어느 목표물을 맞히는지는 정해져 있지 않다.

출력

각 테스트 케이스마다 한 줄에 Case i: theta 형식으로 출력한다. ii는 테스트 케이스 번호이고 1부터 시작한다. θ\theta는 던지는 각도를 도 단위로 나타낸 실수이며, 소수점 아래 여섯 자리까지 출력한다.

던지는 방법이 다음 조건을 모두 만족할 때만 유효한 해로 친다.

  1. 속력 vv가 50 이상 5000 이하이다.
  2. 각도 θ\theta가 10도 이상 80도 이하이다.
  3. 세 조각은 갈라진 지점에서 각자의 방향으로 앞으로만 나아간다. 즉 세 목표물은 모두 갈라진 지점에서 뻗어 나가는 반직선 위에 있다.

유효한 해는 언제나 하나 이상 있다. 유효한 해가 둘 이상이면, 필요한 속력 vv가 가장 작은 해의 θ\theta를 출력한다.