삼각형의 나머지 요소 구하기

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

문제

평면 기하에서 삼각형은 세 변과 그 사이의 세 각으로 이루어진다. 세 변의 길이를 $a$, $b$, $c$라 하고, 각 변과 마주 보는 각을 차례로 $\alpha$, $\beta$, $\gamma$라고 하자. 즉 $\alpha$는 변 $a$의 대각, $\beta$는 변 $b$의 대각, $\gamma$는 변 $c$의 대각이다.

기하 교재에는 삼각형에 관한 공식이 여럿 실려 있다.

$$ \begin{aligned} \alpha + \beta + \gamma &= \pi \ \frac{a}{\sin \alpha} = \frac{b}{\sin \beta} &= \frac{c}{\sin \gamma} \ a &= b \cos \gamma + c \cos \beta \ a^2 &= b^2 + c^2 - 2bc \cos \alpha \ \frac{a - b}{a + b} &= \frac{\tan \frac{\alpha - \beta}{2}}{\tan \frac{\alpha + \beta}{2}} \end{aligned} $$

$a$, $\alpha$, $b$, $\beta$, $c$, $\gamma$ 여섯 값은 삼각형 하나를 완전히 결정한다. 이 중 충분히 많은 값이 주어지면 나머지는 위 공식으로 계산한다.

여섯 값 중 일부가 주어졌을 때 나머지를 계산하는 프로그램을 작성하라. 주어진 값이 너무 적어서 삼각형이 하나로 정해지지 않는 입력도 있고, 아예 삼각형이 만들어지지 않는 입력도 있다. 올바른 삼각형은 세 변이 모두 0보다 크고, 세 각이 모두 0보다 크며 $\pi$보다 작다. 이런 경우에는 Invalid input.을 출력한다. 삼각형을 정하는 데 필요한 최소한의 값보다 많이 주어졌는데 값끼리 어긋날 때도, 예를 들어 세 각이 모두 주어졌으나 그 합이 $\pi$보다 클 때도 같은 문장을 출력한다. 최소한보다 많은 값이 주어진 경우, 계산으로 얻은 값 $x$와 입력으로 주어진 값 $y$는 $|x - y| \le 10^{-6} \max(1, |x|, |y|)$이면 서로 맞는 값으로 본다.

조건을 만족하는 삼각형이 둘 이상이면서 유한개인 입력도 있다. 이때는 More than one solution.을 출력한다.

그 밖의 경우에는 빠진 값을 계산해 여섯 값을 모두 출력한다.

입력

첫 줄에 파라미터 집합의 개수가 주어진다. 이어지는 각 줄에는 공백 하나로 구분된 여섯 개의 수가 주어지며, 순서대로 $a$, $\alpha$, $b$, $\beta$, $c$, $\gamma$의 값이다. 각의 단위는 라디안이다. 값이 -1이면 그 파라미터는 주어지지 않았다는 뜻이고, 계산해야 한다. 모든 실수는 유효숫자 여덟 자리 이상으로 주어진다.

출력

파라미터 집합마다 한 줄씩 출력한다. 올바른 삼각형이 하나로 정해지면 $a$, $\alpha$, $b$, $\beta$, $c$, $\gamma$를 이 순서로 공백 하나씩 두고 출력한다. 각 값은 소수점 아래 일곱째 자리에서 반올림해, 자리가 비면 0을 채워 항상 소수점 아래 여섯 자리로 출력한다.

조건을 만족하는 삼각형이 둘 이상이면서 유한개면 More than one solution.을, 삼각형이 하나로 정해지지 않거나 올바른 삼각형이 없으면 Invalid input.을 출력한다.

테스트 데이터에는 반올림 결과가 갈릴 만큼 여섯째 자리 경계에 가까운 값이 나오지 않는다.