시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 256 MB173893564554.111%

문제

3차원 좌표 평면 위에 선분 하나와 점 하나가 있다. 선분의 양 끝점은 A(Ax, Ay, Az)와 B(Bx, By, Bz)로 나타낼 수 있다. 점의 좌표는 C(Cx, Cy, Cz) 이다.

선분과 점 사이의 거리의 최솟값을 구하는 프로그램을 작성하시오.

두 점 (x1, y1, z1)과 (x2, y2, z2) 사이의 거리는 \(\sqrt{(x2-x1)^2+(y2-y1)^2+(z2-z1)^2}\) 이다.

입력

첫째 줄에 선분과 점의 좌표 Ax, Ay, Az, Bx, By, Bz, Cx, Cy, Cz가 주어진다. 좌표는 0보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력

첫째 줄에 선분과 점 사이의 거리의 최솟값을 출력한다. 절대/상대 오차는 10-6까지 허용한다.

예제 입력 1

0 0 0 1 1 1 2 2 2

예제 출력 1

1.7320508076

예제 입력 2

0 0 0 10 10 10 5 5 5

예제 출력 2

0.0000000000

예제 입력 3

10 20 30 40 50 60 45 35 25

예제 출력 3

28.2842712475

예제 입력 4

0 0 0 1 1 1 0 0 1

예제 출력 4

0.8164965809

예제 입력 5

0 0 0 1 0 1 0 1 0

예제 출력 5

1.0000000000

예제 입력 6

0 0 0 1 1 1 7 6 5

예제 출력 6

8.7749643874

출처