삼각형에서 육각형으로

삼각형 좌표가 주어질 때 각의 이등분선이 외접원과 만나는 점을 구하고, 그 선분과 변의 교점을 이용해 여섯 선분의 길이를 계산해 출력한다.

보통7기하수학구현완전 탐색아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

삼각형 ABCABC의 내접원의 중심을 II, 외접원을 OO라고 하자. 직선 AIAI, BIBI, CICI가 원 OO와 다시 만나는 점을 각각 MM, NN, PP라고 한다.

직선 NPNP가 변 ABAB, ACAC와 만나는 점을 각각 EE, FF라고 하자. 같은 방식으로 직선 MNMN이 변 ACAC, BCBC와 만나는 점을 GG, HH라고 하고, 직선 MPMP가 변 BCBC, ABAB와 만나는 점을 JJ, KK라고 한다.

세 꼭짓점 AA, BB, CC의 좌표를 읽어 선분 EFEF, FGFG, GHGH, HJHJ, JKJK, KEKE의 길이를 출력하는 프로그램을 작성하시오. 이때 EF+GH+JKKE+FG+HJ|EF| + |GH| + |JK| \le |KE| + |FG| + |HJ|가 성립한다고 알려져 있으므로, 계산 결과를 검산하는 데 쓸 수 있다.

계산은 배정밀도 부동소수점으로 한다.

입력

첫 줄에 데이터 집합의 개수 PP가 주어진다 (1P100001 \le P \le 10000). 각 데이터 집합은 서로 독립이며 같은 방법으로 처리한다.

각 데이터 집합은 한 줄로 이루어진다. 이 줄에는 데이터 집합 번호 KK와 실수 세 개가 공백으로 구분되어 주어진다. 실수는 차례로 BBxx좌표 BxB_x, CCxx좌표 CxC_x, CCyy좌표 CyC_y이다. AA는 항상 원점 (0,0)(0, 0)이고 BB는 항상 xx축 위에 있으므로 By=0B_y = 0이다.

KK는 정수이고, 0<Bx10000 < B_x \le 1000, Cx1000|C_x| \le 1000, 0<Cy10000 < C_y \le 1000이다. 세 점이 한 직선 위에 놓이는 일은 없다.

출력

각 데이터 집합마다 한 줄씩 출력한다. 한 줄에는 데이터 집합 번호 KK를 먼저 쓰고, 이어서 EFEF, FGFG, GHGH, HJHJ, JKJK, KEKE의 길이를 이 순서대로 소수점 아래 넷째 자리까지 반올림해 공백 하나로 구분하여 출력한다.