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

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

전기차

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

요약
도시 1에서 N까지 이동하는 최소 시간을 구한다. 도로 하나는 1시간과 에너지 L을 소모하고, 각 도시에서는 시간당 c_i만큼 정수 시간 단위로만 충전할 수 있다.
난이도

어려움10점 중 8점

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

문제

Vytautas는 새로 산 반짝이는 전기차를 타고 친구 Vytis를 만나러 가려고 합니다. 두 사람은 모두 Bitland에 사는데, 이 나라는 11번부터 NN번까지 번호가 매겨진 NN개의 도시로 이루어져 있습니다. Vytautas는 11번 도시에, Vytis는 NN번 도시에 삽니다. 도시들은 양방향으로 통행할 수 있는 MM개의 도로로 연결되어 있습니다.

가는 길에 Vytautas는 전기차를 충전하기 위해 멈춰야 할 수도 있습니다. ii번 도시에 충전소가 있다면, 그곳에서는 시간당 cic_i kWh를 충전할 수 있습니다. Vytautas는 시간 계획을 세우기 쉽도록 항상 정수 시간 단위로만 충전합니다. 배터리 용량은 KK kWh이며, 충전량이 KK를 넘지는 않습니다. 한 시간이 끝나기 전에 배터리가 가득 차면, Vytautas는 그 시간이 끝날 때까지 차를 충전기에 그대로 연결해 둡니다.

도로 하나를 지나는 데에는 정확히 11시간이 걸리고 LL kWh를 소모합니다. 차가 새 것이라 출발할 때 배터리는 비어 있습니다.

모든 충전이 정수 시간 동안 이루어져야 한다고 할 때, Vytautas가 11번 도시에서 NN번 도시까지 가는 데 걸리는 최소 시간은 얼마입니까?

입력

첫째 줄에 네 정수가 주어집니다.

  • NN — 도시의 수;
  • MM — 도로의 수;
  • KK — 전기차 배터리의 용량;
  • LL — 전기차가 도로 하나를 지날 때(한 시간에) 소모하는 전력량.

둘째 줄에 NN개의 정수 cic_i (0≤ci≤K0 \le c_i \le K)가 주어집니다. ii번 도시에서는 시간당 cic_i kWh를 충전할 수 있습니다(만약 ci=0c_i = 0이면 그 도시에는 충전소가 없습니다).

이어지는 MM개의 줄에는 각 도로의 양 끝 도시 aia_i와 bib_i (1≤ai,bi≤N1 \le a_i, b_i \le N)가 주어집니다.

출력

11번 도시에서 NN번 도시까지 가는 데 걸리는 최소 시간을 정수 하나로 출력합니다. 그러한 이동이 불가능하면 −1-1을 출력합니다.

제한

  • 2≤N≤100 0002 \le N \le 100\,000
  • 1≤M≤100 0001 \le M \le 100\,000
  • 1≤K,L≤1001 \le K, L \le 100
  • ai≠bia_i \ne b_i
  • 두 도시 사이를 직접 잇는 도로는 최대 한 개입니다.

예제3

  1. 예제 1

    입력
    5 5 13 11
    7 10 1 10 2
    1 2
    1 3
    2 4
    3 5
    4 5
    
    예상 출력
    7
    
  2. 예제 2

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

    입력
    2 1 10 5
    0 5
    1 2
    
    예상 출력
    -1