삼각형의 나머지 요소 구하기
시간 제한1초메모리 제한128 MB
삼각형의 일부 변과 각이 주어질 때 삼각법 공식으로 나머지 값을 계산하고, 해가 유일한지, 유한히 많은지, 불가능한지 판정한다.
문제
평면 기하에서 삼각형은 세 변과 그 사이의 세 각으로 이루어진다. 세 변의 길이를 , , 라 하고, 각 변과 마주 보는 각을 차례로 , , 라고 하자. 즉 는 변 의 대각, 는 변 의 대각, 는 변 의 대각이다.
기하 교재에는 삼각형에 관한 공식이 여럿 실려 있다.
, , , , , 여섯 값은 삼각형 하나를 완전히 결정한다. 이 중 충분히 많은 값이 주어지면 나머지는 위 공식으로 계산한다.
여섯 값 중 일부가 주어졌을 때 나머지를 계산하는 프로그램을 작성하라. 주어진 값이 너무 적어서 삼각형이 하나로 정해지지 않는 입력도 있고, 아예 삼각형이 만들어지지 않는 입력도 있다. 올바른 삼각형은 세 변이 모두 0보다 크고, 세 각이 모두 0보다 크며 보다 작다. 이런 경우에는 Invalid input.을 출력한다. 삼각형을 정하는 데 필요한 최소한의 값보다 많이 주어졌는데 값끼리 어긋날 때도, 예를 들어 세 각이 모두 주어졌으나 그 합이 보다 클 때도 같은 문장을 출력한다. 최소한보다 많은 값이 주어진 경우, 계산으로 얻은 값 와 입력으로 주어진 값 는 이면 서로 맞는 값으로 본다.
조건을 만족하는 삼각형이 둘 이상이면서 유한개인 입력도 있다. 이때는 More than one solution.을 출력한다.
그 밖의 경우에는 빠진 값을 계산해 여섯 값을 모두 출력한다.
입력
첫 줄에 파라미터 집합의 개수가 주어진다. 이어지는 각 줄에는 공백 하나로 구분된 여섯 개의 수가 주어지며, 순서대로 , , , , , 의 값이다. 각의 단위는 라디안이다. 값이 -1이면 그 파라미터는 주어지지 않았다는 뜻이고, 계산해야 한다. 모든 실수는 유효숫자 여덟 자리 이상으로 주어진다.
출력
파라미터 집합마다 한 줄씩 출력한다. 올바른 삼각형이 하나로 정해지면 , , , , , 를 이 순서로 공백 하나씩 두고 출력한다. 각 값은 소수점 아래 일곱째 자리에서 반올림해, 자리가 비면 0을 채워 항상 소수점 아래 여섯 자리로 출력한다.
조건을 만족하는 삼각형이 둘 이상이면서 유한개면 More than one solution.을, 삼각형이 하나로 정해지지 않거나 올바른 삼각형이 없으면 Invalid input.을 출력한다.
테스트 데이터에는 반올림 결과가 갈릴 만큼 여섯째 자리 경계에 가까운 값이 나오지 않는다.