만드는 중입니다

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

고속도로를 건너는 다리처럼

면접 대비

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

요약
동물들의 좌표 (x, y)가 주어질 때, 도로 축 위에 통로 c개를 놓아 동물들의 평균 이동 거리를 최소화합니다.
난이도

보통10점 중 5점

유형
동적 계획법, 정렬, 누적 합
정답자
아직 제출이 없습니다

문제

P-22 이야기가 남긴 유산 중 하나는 캘리포니아가 고속도로 위와 아래에 야생동물 통로를 점점 더 많이 짓고 있다는 것이다. P-22는 긴 여정에서 살아남았고, 이전 문제의 해법도 일부 도움이 되었다. 하지만 다른 많은 산사자는 그러지 못한다. 동물이 고속도로를 무단으로 건너는 대신 이 통로를 이용하도록 익히게 하면 동물의 사망과 교통사고로 인한 사람의 위험이 줄어든다. P-22에게서 직접 영감을 받은 첫 야생동물 통로인 Wallis Annenberg Crossing은 2022년 4월에 착공되었다.

여기서 목표는 동물이 걷는 거리를 최대한 짧게 만들도록 여러 야생동물 통로의 위치를 정하는 것이다. Caltrans와 CDFW의 예산이 지을 수 있는 통로의 수를 정한다. 동물들이 각자 가장 가까운 통로까지 걷는 거리의 평균이 최소가 되도록 통로의 위치를 고른다. 각 동물 i의 위치는 좌표 (xi,yi)(x_i, y_i)로 주어진다. 고속도로는 (−∞,0)(-\infty, 0)에서 (+∞,0)(+\infty, 0)까지 뻗은 무한한 x축으로 모델링한다. 고속도로 위의 cc개 위치를 골라 통로를 지을 수 있다. 고속도로를 건너야 하는 동물은 먼저 직선으로 고속도로까지 이동한 뒤, 고속도로를 따라 걸어서 지어진 가장 가까운 통로까지 간다.

입력

첫 줄에 데이터 세트의 수 KK(1≤K≤1001 \le K \le 100)가 주어진다. 각 데이터 세트의 첫 줄에는 두 정수 cc와 nn이 주어진다. cc(1≤c≤401 \le c \le 40)는 지을 수 있는 통로의 수이고, nn(1≤n≤1001 \le n \le 100)은 동물의 수이다. 이어지는 nn개의 줄에는 각 동물의 위치 xix_i, yiy_i가 부동소수점 수로 주어진다. 값은 -1000000.0 이상 1000000.0 이하이다.

출력

각 데이터 세트마다 한 줄에 "Data Set x:"를 출력한다. 여기서 x는 데이터 세트 번호이다. 그다음 cc개의 통로를 지어 얻을 수 있는 최소 평균 거리를 출력한다. 이 거리는 모든 동물이 각자 가장 가까운 통로까지 가는 거리의 평균이다. 각 데이터 세트의 출력 뒤에는 빈 줄을 출력한다.

예제1

  1. 예제 1

    입력
    1
    3 5
    0 -2.5
    17 -5
    1 -6
    42 0.2
    3 3
    
    예상 출력
    Data Set 1:
    19.70