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

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

소방 호스

면접 대비

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

요약
둘레 1000000인 원형 도로에 소방전 k개를 놓아 H개 집에서 가장 가까운 소방전까지의 호 거리 최댓값을 최소로 만들고, 그 최솟값을 구한다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 정렬, 배열
정답자
아직 제출이 없습니다

문제

동네를 가로지르는 원형 도로가 있습니다. 이 도로는 둘레가 정확히 1,000,0001{,}000{,}000인 완전한 원 모양이며, 도로를 따라 집이 HH채 (1≤H≤10001 \le H \le 1000) 있습니다.

도로 위의 모든 지점은 주소로 나타냅니다. 주소란 원의 가장 북쪽 지점에서 시계 방향으로 잰 호(arc)의 길이입니다. 가장 북쪽 지점의 주소는 00이며, 따라서 모든 주소 aa는 0≤a<1,000,0000 \le a < 1{,}000{,}000을 만족합니다. 서로 다른 두 집의 주소는 같지 않습니다.

소방 호스는 도로의 곡선을 그대로 따라가므로, 어떤 집과 소화전을 잇는 데 필요한 호스의 길이는 도로를 따라 잰 두 지점 사이의 호의 길이와 같습니다.

당신은 소화전 kk개 (1≤k≤10001 \le k \le 1000)를 도로 위 어디에나 놓을 수 있습니다(집과 같은 위치에 놓아도 됩니다). 각 집은 가장 가까운 소화전에 연결됩니다. 모든 집에 대해 필요한 호스 길이의 최댓값이 가능한 한 작아지도록 소화전을 배치하고, 그때의 최소 최댓값을 구하세요.

입력

첫째 줄에 집의 수 HH가 주어집니다.

다음 HH개의 줄에는 각각 한 집의 주소를 나타내는 정수가 하나씩 주어집니다 (0≤a<1,000,0000 \le a < 1{,}000{,}000). 두 집의 주소가 같은 경우는 없습니다.

그다음 줄에는 놓을 수 있는 소화전의 수 kk가 주어집니다.

출력

필요한 호스 길이의 최댓값을 최소로 만들었을 때의 그 값을 한 줄에 출력합니다. 즉, 소화전을 최적으로 배치했을 때 모든 집이 가장 가까운 소화전까지 연결되는 데 필요한 최소한의 호스 길이입니다.

이 값은 항상 0.50.5의 배수입니다. 정수이면 정수로 출력하고, 그렇지 않으면 소수 부분 .5.5를 붙여 출력하세요(예: 5.5).

예제3

  1. 예제 1

    입력
    4
    0
    67000
    68000
    77000
    2
    
    예상 출력
    5000
    
  2. 예제 2

    입력
    2
    0
    1
    1
    
    예상 출력
    0.5
    
  3. 예제 3

    입력
    3
    0
    100
    200
    3
    
    예상 출력
    0