만드는 중입니다

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

정삼각형 울타리

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

요약
도로 위에 있는 배나무들 가운데 최대 k그루를 울타리 밖에 둘 때, 밑변이 도로와 평행한 정삼각형 울타리의 최소 둘레를 구합니다.
난이도

어려움10점 중 8점

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

문제

미스미 씨는 직선 도로를 따라 과수원을 운영하고 있다. 최근 멧돼지가 배를 노리고 과수원 주변을 어슬렁거리는 것이 목격되어, 그녀는 배나무 여러 그루를 둘러싸는 울타리를 세우려고 한다.

과수원에는 좌표 (x1,y1),…,(xn,yn)(x_1, y_1), \dots, (x_n, y_n)에 배나무 nn그루가 있다. 나무는 점으로 보고 굵기는 무시한다. 울타리는 한 변이 도로와 평행한 정삼각형이어야 한다. 그 변과 마주 보는 꼭짓점은 도로에서 떨어져 있어야 한다. 좌표계는 도로를 y=0y = 0으로 두며, 모든 나무는 y≥1y \ge 1을 만족한다.

예산 문제로 울타리 밖에 남겨 둘 수 있는 나무는 최대 kk그루이다. 이 조건에서 울타리 둘레가 가장 짧아지는 값을 구하라.

그림은 첫 번째 데이터셋을 나타낸다. 배나무는 (−1,2)(-1, 2), (0,1)(0, 1), (1,2)(1, 2), (2,1)(2, 1)에 네 그루가 있다. (−1,2)(-1, 2)를 울타리 밖에 두면 둘레가 6인 정삼각형이 된다.

입력

입력은 여러 개의 데이터셋으로 이루어지며, 각 데이터셋은 다음 형식이다.

n
k
x1 y1
...
xn yn

nn은 배나무의 수이며 3≤n≤100003 \le n \le 10000을 만족한다. kk는 울타리 밖에 남겨 둘 수 있는 나무의 수이며 1≤k≤min⁡(n−2,5000)1 \le k \le \min(n-2, 5000)을 만족한다. 이어지는 nn개의 줄에는 나무의 정수 좌표 xix_i, yiy_i가 주어지며, −10000≤xi≤10000-10000 \le x_i \le 10000, 1≤yi≤100001 \le y_i \le 10000이다. 같은 위치에 있는 나무는 없다. 데이터셋은 최대 100개이며, 0이 적힌 줄로 입력이 끝난다.

출력

각 데이터셋마다 가능한 울타리 둘레의 최솟값을 한 줄에 출력한다. 오차는 10−610^{-6}을 넘으면 안 된다.

예제1

  1. 예제 1

    입력
    4
    1
    0 1
    1 2
    -1 2
    2 1
    4
    1
    1 1
    2 2
    1 3
    1 4
    4
    1
    1 1
    2 2
    3 1
    4 1
    4
    1
    1 2
    2 1
    3 2
    4 2
    5
    2
    0 1
    0 2
    0 3
    0 4
    0 5
    6
    3
    0 2
    2 2
    1 1
    0 3
    2 3
    1 4
    0
    
    예상 출력
    6.000000000000
    6.928203230276
    6.000000000000
    7.732050807569
    6.928203230276
    6.000000000000