Путь домой

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

요약
도시 1에서 도시 n까지 가는 경로에서 항공권 비용을 마련하기 위해 필요한 공연 횟수의 최솟값을 구한다.
난이도

보통10점 중 7점

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

문제

Известный фокусник Боря Будини путешествовал по стране XX, которая состоит из nn городов. Однако случилось несчастье, и его обокрали в городе номер 11. Теперь Будини предстоит нелегкий путь домой в город nn.

Добираться он собирается самолетами. Всего в стране есть mm авиарейсов, ii-й летит из a_ia\_i в b_ib\_i и стоит s_is\_i. Чтобы им воспользоваться, Боря должен быть в городе a_ia\_i и иметь на руках хотя бы s_is\_i денег (которые он потратит на перелет).

После ограбления у него осталось всего pp рублей, однако он не отчаивается! Находясь в городе ii, он может хоть каждый день организовывать представления, которые будут приносить ему по w_iw\_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 целых чисел w_1,w_2,…,w_nw\_1, w\_2, \ldots, w\_n (1≤w_i≤109)(1 \le w\_i \le 10^9) --- прибыль от представлений.

В следующих mm строках даны по три целых числа a_ia\_i, b_ib\_i и s_is\_i (1≤a_i,b_i≤n1 \le a\_i, b\_i \le n, 1≤s_i≤1091 \le s\_i \le 10^9) --- начальный и конечный город, а также стоимость ii-го авиарейса.

출력

Выведите единственное целое число --- минимальное количество представлений, которое придется организовать Боре, чтобы добраться до дома, или −1-1, если это сделать невозможно.

힌트

В первом примере Боре оптимально сделать 44 представления в первом городе, имея в итоге 2+7⋅4=302 + 7 \cdot 4 = 30 рублей, а потом пройтись по маршруту 1−3−2−41-3-2-4, потратив 6+8+11=256+8+11=25 рублей.

Во втором примере Боре оптимально сделать 1515 представлений в первом городе, полететь в 33 город, сделать там 99 представлений, и далее отправиться в 44 город.

예제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