만드는 중입니다

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

전기 자동차

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

요약
마을 사이의 거리가 맨해튼 거리인 완전 그래프에서 전기차가 S에서 T까지 가는 최소 충전 비용을 구합니다. 충전은 Δ회 이하이며 배터리 용량은 W입니다.
난이도

보통10점 중 6점

유형
동적 계획법, 최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

전기 자동차(EV)는 디젤 엔진이나 가솔린 엔진 같은 내연기관 대신 하나 이상의 전기 모터로 추진하는 대체 연료 자동차이다. EV는 배터리 같은 에너지 저장 장치에 전기를 저장하고, 그 전기가 전기 모터를 거쳐 바퀴를 구동한다. 저장 용량이 제한되어 있어서 EV는 전원에 연결해 주기적으로 충전해야 한다.

평면 위에 nn개의 마을이 있다. 임의의 두 마을 사이에는 도로가 정확히 하나씩 있으므로, 도로는 모두 n×(n−1)/2n \times (n-1)/2개이다. 마을 AA와 BB의 좌표를 각각 (a,b)(a, b), (c,d)(c, d)라 하자. 두 마을 사이 도로의 길이는 d(A,B)=∣a−c∣+∣b−d∣d(A, B) = |a-c| + |b-d|로 정의하며, 이를 AA와 BB의 거리라고 부른다. 편의상 AA와 BB의 거리는 EV가 둘 사이를 이동하는 데 필요한 전기량과 같다고 가정한다. 즉 EV가 전기 1을 소비하면 거리 1을 이동할 수 있다.

각 마을에는 EV 충전소가 있으며, 충전 비용은 마을마다 다를 수 있다. c(A)c(A)를 마을 AA에서 EV를 충전할 때 전기 1당 비용이라 하자. 충전량이 0인 EV는 AA에서 BB까지 가려면 AA에서 적어도 c(A)d(A,B)c(A)d(A, B)의 비용으로 충전해야 한다.

민수는 EV를 타고 마을 SS에서 마을 TT까지 가야 한다. EV는 출발 전 SS에서 충전량이 0인 상태이다. 배터리의 최대 충전 용량은 WW이므로 EV는 WW를 넘는 전기를 저장할 수 없다. 가득 충전된 EV는 거리 WW를 이동할 수 있다. 민수는 SS에서 TT까지 가는 동안 충전을 위해 최대 Δ\Delta번 멈출 수 있다. 출발지 SS에서의 충전도 이 멈춤 중 하나로 센다. 민수가 SS에서 TT까지 가는 가장 저렴한 방법을 구하라.

입력

첫 줄에 정수 nn (2≤n≤1,0002 \le n \le 1{,}000)이 주어진다. 이어지는 nn개의 줄에는 각각 정수 aa, bb, cc (0≤a,b≤1060 \le a, b \le 10^6, 1≤c≤1041 \le c \le 10^4)가 주어지며, (a,b)(a, b)는 마을의 좌표이고 cc는 그 마을의 충전 비용이다. 첫 줄은 출발 마을 SS, 둘째 줄은 도착 마을 TT를 나타낸다. 모든 마을의 좌표는 서로 다르다. 다음 줄에는 배터리의 최대 충전 용량 WW (1≤W≤1051 \le W \le 10^5)가 주어진다. 마지막 줄에는 양의 정수 Δ\Delta (1≤Δ≤101 \le \Delta \le 10)가 주어지며, 이는 SS에서 TT까지 이동하는 동안 충전할 수 있는 최대 횟수이다. 출발 마을 SS에서의 충전도 이 횟수에 포함된다.

출력

충전을 최대 Δ\Delta번까지 하면서 EV가 SS에서 TT까지 이동하는 가장 저렴한 방법의 비용을 한 줄에 출력한다. 그런 방법이 없으면 -1을 출력한다.

예제3

  1. 예제 1

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

    입력
    5
    1 1 4
    3 3 3
    1 3 4
    2 2 5
    3 1 3
    3
    2
    
    예상 출력
    14
    
  3. 예제 3

    입력
    5
    1 1 4
    3 3 3
    1 3 4
    2 2 5
    3 1 3
    3
    1
    
    예상 출력
    -1