말파티 원

시간 제한1초메모리 제한128 MB

문제

삼각형이 하나 주어졌을 때, 그 내부에 원 세 개를 각 원이 나머지 두 원과 삼각형의 두 변에 모두 접하도록 그릴 수 있다. 이렇게 그린 세 원을 말파티 원(Malfatti circles)이라고 한다. 많은 수학자들이 두 세기가 넘도록 말파티 원을 연구해 왔으며, 임의의 삼각형에 대해 말파티 원은 항상 존재하고 유일하다는 사실이 증명되어 있다.

예를 들어 삼각형의 세 꼭짓점이 (20, 80), (-40, -20), (120, -20)이면 말파티 원은 다음과 같다.

  • 중심 (24.281677, 45.219486), 반지름 21.565935
  • 중심 (3.110950, 4.409005), 반지름 24.409005
  • 중심 (54.556724, 7.107493), 반지름 27.107493

또한 세 꼭짓점이 (20, -20), (120, -20), (-40, 80)이면 말파티 원은 다음과 같다.

  • 중심 (25.629089, -10.057956), 반지름 9.942044
  • 중심 (53.225883, -0.849435), 반지름 19.150565
  • 중심 (19.701191, 19.203466), 반지름 19.913790

삼각형이 주어졌을 때 세 말파티 원의 반지름을 구하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 한 줄에 여섯 개의 정수 $x_1, y_1, x_2, y_2, x_3, y_3$이 공백으로 구분되어 주어진다. 이는 삼각형의 세 꼭짓점 $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3)$의 좌표이며, 반시계 방향 순서로 주어진다. 입력은 다음 조건을 만족한다.

  1. 모든 좌표는 $-1000$보다 크고 $1000$보다 작다.
  2. 반지름이 $0.1$보다 작은 말파티 원은 존재하지 않는다.

입력의 마지막 줄에는 $0$이 여섯 개 주어지며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다 세 말파티 원의 반지름 $r_1$, $r_2$, $r_3$을 한 줄에 공백으로 구분하여 출력한다. $r_i$는 꼭짓점 $(x_i, y_i)$에 가장 가까운 원의 반지름이다. 각 반지름은 소수점 일곱째 자리에서 반올림하여 소수점 아래 여섯 자리까지 출력한다.