선분과 점

3차원 공간에서 선분 AB 위의 점 중 점 C와 가장 가까운 점을 찾아 거리를 소수점 열 자리로 출력합니다.

쉬움3기하수학면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

3차원 좌표공간에 선분 하나와 점 하나가 있다. 선분의 두 끝점은 A(Ax,Ay,Az)A(A_x, A_y, A_z)B(Bx,By,Bz)B(B_x, B_y, B_z)이고, 점의 좌표는 C(Cx,Cy,Cz)C(C_x, C_y, C_z)이다.

선분 위의 점 중에서 CC에 가장 가까운 점을 찾아, 그 거리를 구하는 프로그램을 작성하시오. 이 값이 선분과 점 사이의 거리의 최솟값이다.

두 점 (x1,y1,z1)(x_1, y_1, z_1)(x2,y2,z2)(x_2, y_2, z_2) 사이의 거리는 (x2x1)2+(y2y1)2+(z2z1)2\sqrt{(x_2-x_1)^2+(y_2-y_1)^2+(z_2-z_1)^2}이다.

AABB가 같은 점일 수도 있다. 이때 선분은 점 하나로 줄어든다.

입력

첫째 줄에 아홉 개의 정수 AxA_x, AyA_y, AzA_z, BxB_x, ByB_y, BzB_z, CxC_x, CyC_y, CzC_z가 공백으로 구분되어 주어진다. 모든 좌표는 0 이상 10000 이하의 정수이다.

출력

첫째 줄에 선분과 점 사이의 거리의 최솟값을 소수점 아래 열째 자리에서 반올림해 출력한다. 값에 관계없이 소수점 아래 자릿수는 항상 정확히 10자리여야 한다. 예를 들어 답이 0이면 0.0000000000을 출력한다.