만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

지구를 구하라

시간 제한2초메모리 제한1024 MB

요약
집에서 출발해 두 안테나에서 각각 r1, r2 거리 안에 들어가는 최단 경로의 길이를 구합니다. 두 안테나 사이 거리는 r1 + r2보다 큽니다.
난이도

보통10점 중 6점

유형
기하, 수학, 이분 탐색
정답자
아직 제출이 없습니다

문제

외계인이 지구를 침공했다. 하지만 처음 보이는 것만큼 절망적이지는 않다. 릭은 외계인 우주선을 해킹해서 태양계에서 빠져나가도록 방향을 돌릴 수 있다. 이를 위해 릭은 주변에서 가장 큰 파라볼라 안테나 두 개에 연결해야 한다. 모르티가 릭을 거의 설득했지만, 릭은 귀찮다는 이유로 계속 버티고 있다.

모르티가 몇 분 동안 릭을 내버려 두도록, 그 뒤에도 릭이 결국 세상을 구하러 가야 하도록, 릭은 모르티에게 지금 있는 집에서 출발해 두 안테나를 모두 켜기 위해 가야 하는 최단 경로의 길이를 찾아 달라고 부탁했다. 첫 번째 안테나를 켜려면 릭은 그 안테나로부터 r1r_1 이하의 거리에 있어야 하고, 두 번째 안테나를 켜려면 r2r_2 이하의 거리에 있어야 한다.

짐작했겠지만, 집에서는 어느 안테나도 켤 수 없다. 또한 기술적인 제약 때문에 두 안테나 사이의 거리는 r1+r2r_1 + r_2보다 엄격히 크다.

평면에 장애물은 없다고 가정한다. 릭은 안테나가 서 있는 곳을 지나가도 된다.

입력

첫 번째 줄에 정수 x1x_1, y1y_1, r1r_1이 주어진다. 이는 평면상 첫 번째 안테나의 좌표와 반지름 파라미터이다 (−106≤x1,y1≤106-10^6 \le x_1, y_1 \le 10^6, 1≤r1≤1061 \le r_1 \le 10^6). 두 번째 줄에 정수 x2x_2, y2y_2, r2r_2가 주어진다. 이는 두 번째 안테나의 좌표와 파라미터이다 (−106≤x2,y2≤106-10^6 \le x_2, y_2 \le 10^6, 1≤r2≤1061 \le r_2 \le 10^6). 세 번째 줄에 정수 xx와 yy가 주어진다. 이는 릭이 지금 있는 집의 좌표이다 (−106≤x,y≤106-10^6 \le x, y \le 10^6).

출력

릭이 두 안테나를 모두 켜기 위해 이동해야 하는 최단 경로의 길이를 한 줄에 출력한다. 절대 오차 또는 상대 오차가 10−610^{-6}을 넘지 않으면 정답으로 인정한다.

힌트

그림 1: 첫 번째 테스트에 대한 설명

그림 2: 두 번째 테스트에 대한 설명

예제2

  1. 예제 1

    입력
    2 1 1
    3 4 1
    0 0
    
    예상 출력
    4.0000000000
    
  2. 예제 2

    입력
    0 0 2
    4 -2 1
    -2 -4
    
    예상 출력
    5.7382161910