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

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

마라톤 2

면접 대비

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

요약
1번부터 N번 체크포인트까지 순서대로 이동하면서 중간 지점 최대 K개를 건너뛰어 맨해튼 이동 거리를 최소화합니다.
난이도

보통10점 중 5점

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

문제

농장의 젖소가 건강하지 않다고 생각한 농부 존은 젖소를 위한 마라톤 대회를 열었다. 존이 가장 아끼는 젖소 베시도 이 대회에 참가한다.

마라톤 코스는 체크포인트 NN개로 이루어져 있다. 1번 체크포인트에서 출발해 번호 순서대로 모든 체크포인트를 방문한 뒤 NN번 체크포인트에서 끝나야 마라톤이 끝난다. 게으른 베시는 대회에 나가되 중간에 있는 체크포인트를 최대 KK개까지 몰래 건너뛸 수 있다. 단, 1번 체크포인트와 NN번 체크포인트를 건너뛰면 너무 눈치가 보이니 이 두 체크포인트는 건너뛰지 않을 생각이다.

베시가 체크포인트를 최대 KK개 건너뛰면서 달린다면, 달려야 하는 최소 거리는 얼마일까?

대회는 도심 한복판에서 열리기 때문에 거리는 택시 거리(맨해튼 거리)로 계산한다. 즉 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 거리는 ∣x1−x2∣+∣y1−y2∣|x_1 - x_2| + |y_1 - y_2|다. (∣x∣|x|는 절댓값 기호다.)

입력

첫째 줄에 체크포인트의 수 NN과 건너뛸 수 있는 체크포인트의 수 KK가 주어진다. (3≤N≤5003 \le N \le 500, 0≤K<N0 \le K < N)

이후 NN개의 줄에 정수가 두 개씩 주어진다. ii번째 줄의 첫 번째 정수는 체크포인트 ii의 xx 좌표, 두 번째 정수는 yy 좌표다. (−1000≤x≤1000-1000 \le x \le 1000, −1000≤y≤1000-1000 \le y \le 1000)

서로 다른 체크포인트의 좌표는 겹칠 수도 있다. 베시가 체크포인트 하나를 건너뛸 때는 그 번호의 체크포인트만 건너뛰며, 같은 좌표에 있는 다른 체크포인트까지 건너뛰지는 않는다.

출력

베시가 체크포인트를 최대 KK개 건너뛰고 달릴 수 있는 최소 거리를 출력한다.

힌트

첫 번째 예제에서 베시가 2번과 4번 체크포인트를 건너뛰면 경로는 (0,0)(0, 0), (1,1)(1, 1), (2,2)(2, 2) 순서가 되어 거리가 4다. 이보다 짧게 달릴 수는 없다.

예제2

  1. 예제 1

    입력
    5 2
    0 0
    8 3
    1 1
    10 -5
    2 2
    
    예상 출력
    4
  2. 예제 2

    입력
    6 2
    0 0
    0 10
    0 20
    1 0
    2 0
    3 0
    
    예상 출력
    3