Путь домой | 프로그래밍의 벗 PivotOJ
PivotOJ

Путь домой

시간 제한: 1000ms메모리 제한: 1024MB출처: MOOI 2022-23 finalBOJ 30639

문제

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

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

После ограбления у него осталось всего pp рублей, однако он не отчаивается! Находясь в городе ii, он может хоть каждый день организовывать представления, которые будут приносить ему по wiw_i рублей.

Помогите фокуснику узнать, сможет ли он добраться до дома, а также какое минимальное количество представлений придется для этого организовать.

입력

Первая строка содержит четыре целых числа nn, mm, pp и gg (2n8002 \le n \le 800, 1m30001 \le m \le 3000, 0p1090 \le p \le 10^9, 0g60 \le g \le 6) --- количество городов, количество авиарейсов, изначальное количество рублей и номер группы тестов.

Во второй строке даны nn целых чисел w1,w2,,wnw_1, w_2, \ldots, w_n (1wi109)(1 \le w_i \le 10^9) --- прибыль от представлений.

В следующих mm строках даны по три целых числа aia_i, bib_i и sis_i (1ai,bin1 \le a_i, b_i \le n, 1si1091 \le s_i \le 10^9) --- начальный и конечный город, а также стоимость ii-го авиарейса.

출력

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

힌트

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

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

예제

예제 1

입력
4 4 2 0
7 4 3 1
1 2 21
3 2 6
1 3 8
2 4 11
출력
4

예제 2

입력
4 4 10 0
1 2 10 1
1 2 20
2 4 30
1 3 25
3 4 89
출력
24

예제 3

입력
4 4 7 0
5 1 6 2
1 2 5
2 3 10
3 4 50
3 4 70
출력
10

예제 4

입력
4 1 2 0
1 1 1 1
1 3 2
출력
-1
코드를 제출하려면 로그인하세요.