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

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

음식 노점

면접 대비

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

요약
창고 위치 하나와 가게 위치 K개를 N개 후보 중에서 골라, 설치 비용과 창고까지의 거리를 합한 총비용을 최소로 만드는 값을 구합니다.
난이도

보통10점 중 6점

유형
힙, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

Bitetown 주민들은 길거리 음식을 무척 좋아합니다. 그래서 Bitetown의 중심 도로에 정확히 KK개의 음식 노점과 창고 하나를 짓기로 했습니다.

중심 도로는 길이가 10910^9미터인 일직선 도로입니다. 노점이나 창고를 지을 수 있는 자리는 NN곳이며, 그 밖의 곳에는 지을 수 없습니다. ii번째 자리는 도로 왼쪽 끝에서 XiX_i미터 떨어져 있습니다.

한 자리에는 노점이나 창고 중 하나만 지을 수 있습니다. ii번째 자리에 노점이나 창고를 지으면 CiC_i달러가 듭니다. 또한 창고가 jj번째 자리에 있으면, ii번째 자리에 노점을 짓는 데 ∣Xj−Xi∣|X_j - X_i|달러가 추가로 듭니다.

정확히 KK개의 노점과 창고 하나를 짓는 데 드는 최소 비용을 구하세요.

입력

첫 줄에 테스트 케이스의 수 TT가 주어집니다. 각 테스트 케이스는 노점의 수 KK와 자리의 수 NN이 주어지는 줄로 시작합니다.

둘째 줄에는 NN개의 정수 X1,X2,...,XNX_1, X_2, ..., X_N이 주어집니다. XiX_i는 ii번째 자리가 도로 왼쪽 끝에서 떨어진 거리(미터)입니다.

셋째 줄에는 NN개의 정수 C1,C2,...,CNC_1, C_2, ..., C_N이 주어집니다. CiC_i는 ii번째 자리에 노점이나 창고를 짓는 비용입니다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력합니다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 노점 KK개를 짓는 최소 비용입니다.

제한

  • 1 ≤ T ≤ 100
  • 1 ≤ K < N
  • 모든 i에 대해 1 ≤ C_i ≤ 10^9
  • 모든 i에 대해 1 ≤ X_i ≤ 10^9
  • i ≠ j이면 X_i ≠ X_j

힌트

예제 1에서는 노점 K=2K = 2개와 창고 하나를 지어야 하며, 자리는 N=4N = 4곳입니다. 최적 방법 중 하나는 3번째 자리에 80달러짜리 창고를 짓고, 2번째와 4번째 자리에 노점을 짓는 것입니다.

  • 2번째 자리의 노점 비용은 70+∣3−2∣=7170 + |3 - 2| = 71달러입니다.
  • 4번째 자리의 노점 비용은 20+∣3−10∣=2720 + |3 - 10| = 27달러입니다.

합계는 178달러이며 이것이 최소이므로 답은 178입니다.

예제 2에서는 노점 K=1K = 1개와 창고 하나를 지어야 하며, 자리는 N=5N = 5곳입니다. 최적 방법 중 하나는 2번째 자리에 35달러짜리 창고를 짓고, 3번째 자리에 노점을 짓는 것입니다. 이 노점의 비용은 26+∣301−300∣=2726 + |301 - 300| = 27달러입니다. 합계는 62달러로 최소입니다.

예제 3에서는 노점 K=6K = 6개와 창고 하나를 지어야 하며, 자리는 N=7N = 7곳입니다. 최적 방법은 4번째 자리에 창고를 짓고, 나머지 6곳에 노점을 모두 짓는 것입니다. 합계는 82달러이며, 이보다 싼 방법이 없음은 독자가 직접 확인해 보시기 바랍니다. 이 경우 자리들이 거리 순서대로 나열되어 있지 않다는 점에 유의하세요.

예제1

  1. 예제 1

    입력
    3
    2 4
    1 2 3 10
    100 70 80 20
    1 5
    150 300 301 400 700
    8 35 26 5 2
    6 7
    22 21 20 23 26 25 24
    10 10 10 10 10 10 10
    
    예상 출력
    Case #1: 178
    Case #2: 62
    Case #3: 82