만드는 중입니다

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

집으로 가는 길

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

요약
도시마다 공연 수입이 정해져 있을 때, 초기 자금 p로 도시 1에서 도시 n까지 가는 데 필요한 최소 공연 횟수를 구합니다.
난이도

보통10점 중 6점

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

문제

유명한 마술사 보리 부디는 nn개의 도시로 이루어진 나라 XX를 여행하고 있었다. 그런데 불행하게도 1번 도시에서 강도를 당했다. 이제 그는 nn번 도시에 있는 집까지 먼 길을 가야 한다.

그는 비행기로 이동한다. 나라에는 mm개의 항공편이 있다. ii번째 항공편은 aia_i번 도시에서 bib_i번 도시로 가며, 요금은 sis_i이다. 항공편을 타려면 부디가 aia_i번 도시에 있어야 하고, 손에 최소 sis_i의 돈이 있어야 한다. 이 돈은 항공권 값으로 쓰인다.

강도를 당한 뒤 그에게는 pp루블만 남았다. 그래도 그는 포기하지 않는다. ii번 도시에 있는 동안 그는 매일 공연을 할 수 있고, 공연 한 번마다 wiw_i루블을 번다.

마술사가 집에 갈 수 있는지, 갈 수 있다면 그러기 위해 필요한 공연 횟수의 최솟값이 얼마인지 알아내도록 도와주자.

입력

첫 줄에 네 정수 nn, mm, pp, gg (2≤n≤8002 \le n \le 800, 1≤m≤30001 \le m \le 3000, 0≤p≤1090 \le p \le 10^9, 0≤g≤60 \le g \le 6)가 주어진다. 각각 도시의 수, 항공편의 수, 처음 가진 돈, 테스트 그룹 번호이다.

둘째 줄에는 nn개의 정수 w1,w2,…,wnw_1, w_2, \ldots, w_n (1≤wi≤1091 \le w_i \le 10^9)이 주어진다. 각 도시에서 공연 한 번으로 얻는 수익이다.

다음 mm개의 줄에는 각각 세 정수 aia_i, bib_i, sis_i (1≤ai,bi≤n1 \le a_i, b_i \le n, 1≤si≤1091 \le s_i \le 10^9)가 주어진다. 이는 ii번째 항공편의 출발 도시, 도착 도시, 요금이다.

출력

부디가 집에 도착하기 위해 필요한 공연 횟수의 최솟값을 정수 하나로 출력한다. 도착할 수 없으면 −1-1을 출력한다.

힌트

첫 번째 예제에서 최적의 방법은 1번 도시에서 공연을 4번 하는 것이다. 그러면 부디가 가진 돈은 2+7⋅4=302 + 7 \cdot 4 = 30루블이 된다. 그 뒤 경로 1−3−2−41-3-2-4로 날아가면서 6+8+11=256+8+11=25루블을 쓴다.

두 번째 예제에서 최적의 방법은 1번 도시에서 공연을 15번 한 뒤 3번 도시로 날아가서 거기서 공연을 9번 하고, 이어서 4번 도시로 가는 것이다.

예제4

  1. 예제 1

    입력
    4 4 2 0
    7 4 3 1
    1 2 21
    3 2 6
    1 3 8
    2 4 11
    
    예상 출력
    4
    
  2. 예제 2

    입력
    4 4 10 0
    1 2 10 1
    1 2 20
    2 4 30
    1 3 25
    3 4 89
    
    예상 출력
    24
    
  3. 예제 3

    입력
    4 4 7 0
    5 1 6 2
    1 2 5
    2 3 10
    3 4 50
    3 4 70
    
    예상 출력
    10
    
  4. 예제 4

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