Задача №115257. Путь домой

Известный фокусник Боря Будини путешествовал по стране \(X\), которая состоит из \(n\) городов. Однако случилось несчастье, и его обокрали в городе номер \(1\). Теперь Будини предстоит нелегкий путь домой в город \(n\).

Добираться он собирается самолетами. Всего в стране есть \(m\) авиарейсов, \(i\)-й летит из \(a_i\) в \(b_i\) и стоит \(s_i\). Чтобы им воспользоваться, Боря должен быть в городе \(a_i\) и иметь на руках хотя бы \(s_i\) денег (которые он потратит на перелет).

После ограбления у него осталось всего \(p\) рублей, однако он не отчаивается! Находясь в городе \(i\), он может хоть каждый день организовывать представления, которые будут приносить ему по \(w_i\) рублей.

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

Входные данные

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

Во второй строке даны \(n\) целых чисел \(w_1, w_2, \ldots, w_n\) \((1 \le w_i \le 10^9)\) — прибыль от представлений.

В следующих \(m\) строках даны по три целых числа \(a_i\), \(b_i\) и \(s_i\) (\(1 \le a_i, b_i \le n\), \(1 \le s_i \le 10^9\)) — начальный и конечный город, а также стоимость \(i\)-го авиарейса.

Выходные данные

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

Примечание

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

Во втором примере Боре оптимально сделать \(15\) представлений в первом городе, полететь в \(3\) город, сделать там \(9\) представлений, и далее отправиться в \(4\) город.

Система оценки

Тесты к этой задаче состоят из 6 групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, прохождение тестов из условия не требуется для некоторых групп. Offline-проверка означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования.

Доп. ограничения
Группа Баллы \(n\) \(m\) \(s_i\) \(w_i\) Необх. группы Комментарий
0 0 Тесты из условия.
1 14 \(w_i=1\)
2 13 \(m = n - 1\) \(a_i = i\), \(b_i = i + 1\)
3 17 \(n \le 10 \) 0
4 19 \(n \le 100 \) \(s_i \le 100\) 0
5 21 \(n \le 100 \) 0, 3, 4
6 16 0 – 5 Offline-проверка.
Примеры
Входные данные
4 4 2 0
7 4 3 1
1 2 21
3 2 6
1 3 8
2 4 11
Выходные данные
4
Входные данные
4 4 10 0
1 2 10 1
1 2 20
2 4 30
1 3 25
3 4 89
Выходные данные
24
Входные данные
4 4 7 0
5 1 6 2
1 2 5
2 3 10
3 4 50
3 4 70
Выходные данные
10
Входные данные
4 1 2 0
1 1 1 1
1 3 2
Выходные данные
-1
Сдать: для сдачи задач необходимо войти в систему