아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

울타리

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

요약
직교 다각형으로 주어진 집과 거리 l이 주어질 때, 모든 울타리 점이 집까지 맨해튼 거리 l 이상이 되도록 집을 감싸는 최소 길이의 울타리를 구한다.
난이도

보통10점 중 7점

유형
기하, 구현, 수학, 그리디
정답자
아직 제출이 없습니다

문제

도널드는 맨해튼에 작은 집을 하나 가지고 있다. 최근 선거 때문에 사회 불안에 대비하는 것이 중요해졌고, 도널드는 집 주위에 울타리를 세우기로 했다.

도널드의 집은 평면 위의 다각형으로 나타낼 수 있고, 모든 좌표는 정수이다. 게다가 집의 모든 모서리는 정확히 90deg⁡90\deg이고, 각 벽은 동서 방향이나 남북 방향 중 하나에 평행하다. 도널드는 집이 완전히 안에 들어오고, 울타리가 집에 너무 가깝지 않도록 울타리를 세우려고 한다. 더 정확히는, 울타리의 임의의 점과 집의 임의의 점 사이의 맨해튼 거리가 적어도 ll이 되도록 울타리를 세우려고 한다.

점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 맨해튼 거리는 ∣x1−x2∣+∣y1−y2∣|x_1 - x_2| + |y_1 - y_2|이다.

도널드는 건설 비용을 최소화하고 싶어 하므로, 가능한 울타리 길이의 최솟값을 구해 달라고 요청한다.

입력

첫째 줄에 정수 nn과 ll이 주어진다 (4≤n≤100 0004 \le n \le 100\,000, 0≤l≤1080 \le l \le 10^8).

다음 nn개의 줄에는 정수 xix_i, yiy_i가 주어지며 (∣xi∣,∣yi∣≤108|x_i|, |y_i| \le 10^8), 집의 경계를 시계 방향이나 반시계 방향으로 나타낸다.

집은 넓이가 0이 아니고, 자기 교차가 없으며(이웃한 선분이 공통 끝점을 갖는 경우를 제외하고 두 선분이 교차하지 않는다), 서로 일치하는 점이 없고, 모든 벽이 수직이거나 수평임이 보장된다.

출력

가능한 울타리 길이의 최솟값을 실수 하나로 출력한다. 절대 오차나 상대 오차가 10−610^{-6} 이하이면 정답으로 인정된다.

힌트

예제 1. 집은 안쪽에 주황색으로, 최적의 울타리는 바깥쪽에 파란색으로 표시되어 있다.

예제 2. 집은 안쪽에 주황색으로, 최적의 울타리는 바깥쪽에 파란색으로 표시되어 있다.

예제2

  1. 예제 1

    입력
    4 3
    -3 -3
    -3 3
    3 3
    3 -3
    
    예상 출력
    40.9705627485
    
  2. 예제 2

    입력
    9 0
    1 1
    3 1
    5 1
    5 2
    3 2
    3 3
    2 3
    2 2
    1 2
    
    예상 출력
    10.6502815399