경비견 회사

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

요약
원점에 묶인 개의 목줄 길이와 축에 평행한 직사각형 건물이 주어질 때, 개가 건물에 들어가지 않고 돌아다닐 수 있는 영역의 둘레를 구한다.
난이도

보통10점 중 7점

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

문제

당신은 규슈 북부에서 고객의 주문에 맞춰 경비견을 대여하는 회사를 운영하고 있습니다. 이 회사만의 특징은, 경비견의 성능을 높이기 위해 울타리까지 함께 설치해 준다는 점입니다.

경비견은 말뚝에 묶인 목줄에 매여 있습니다. 당신은 개가 닿을 수 있는 영역의 바깥 경계를 따라 울타리를 설치하여, 울타리에 접근하는 사람을 개가 상대하도록 합니다.

개 근처에는 직사각형 건물이 있을 수 있습니다. 개는 건물 안으로 들어갈 수는 없지만, 목줄 길이가 허락하는 한 그림 F-1처럼 건물을 빙 돌아갈 수 있습니다. 건물의 벽을 따라서는 울타리를 설치할 필요가 없습니다.

그림 F-1: 울타리 배치 예시 (울타리의 일부는 생략되어 있습니다).

목줄의 길이와 건물의 위치 및 크기가 주어질 때, 울타리의 전체 길이를 구하세요.

입력

입력은 여러 개의 데이터셋으로 이루어집니다. 각 데이터셋은 다섯 개의 정수로 된 한 줄입니다.

len x1 y1 x2 y2

len은 목줄의 길이입니다. 건물은 x1<x<x2x_1 < x < x_2 이고 y1<y<y2y_1 < y < y_2 인 점 (x,y)(x, y) 들로 이루어진 직사각형이며, 따라서 벽은 좌표축과 평행합니다. 말뚝은 원점에 있습니다.

0<len≤1000 < \mathrm{len} \le 100, −100≤x1<x2≤100-100 \le x_1 < x_2 \le 100, −100≤y1<y2≤100-100 \le y_1 < y_2 \le 100 임이 보장됩니다. 말뚝은 건물의 내부나 경계에 놓이지 않습니다.

0 0 0 0 0 줄은 입력의 끝을 나타내며 처리하지 않습니다.

출력

각 데이터셋에 대해, 울타리의 전체 길이를 소수점 아래 정확히 두 자리로 반올림하여 한 줄에 출력하세요. 그 밖의 내용은 출력하지 마세요.

예제1

  1. 예제 1

    입력
    3 3 0 6 5
    5 3 0 6 5
    6 3 0 6 5
    7 3 0 6 5
    9 3 0 6 5
    10 3 0 6 5
    12 3 0 6 5
    100 3 0 6 5
    4 -3 4 5 8
    5 -3 4 5 8
    6 -3 4 5 8
    64 -30 40 50 50
    7 -3 4 5 8
    10 -3 4 5 8
    11 -3 4 5 8
    14 -3 4 5 8
    35 -3 4 5 8
    100 -3 4 5 8
    10 5 9 12 12
    13 5 9 12 12
    15 5 9 12 12
    18 5 9 12 12
    19 5 9 12 12
    20 5 9 12 12
    21 5 9 12 12
    100 5 9 12 12
    100 -5 1 -3 5
    100 0 1 100 2
    100 -1 99 100 100
    10 -1 1 1 2
    84 1 -77 5 -42
    27 -12 -7 3 -4
    0 0 0 0 0
    
    예상 출력
    18.85
    26.78
    31.69
    39.55
    55.52
    63.84
    75.38
    628.05
    25.13
    24.98
    29.44
    318.91
    35.03
    55.45
    64.24
    89.34
    219.11
    627.49
    62.83
    76.33
    88.61
    112.17
    121.60
    126.16
    132.25
    628.23
    628.19
    626.18
    613.16
    62.62
    527.85
    168.07