H. Канистра побольше
Как классная задача H, но канистра вмещает баков, а не один.
В городе можно купить сразу несколько баков бензина: один заливается в бак, остальные — в канистру, и в канистре не может оказаться больше баков. Каждый купленный бак стоит . Переливание из канистры в бак по-прежнему бесплатно.
Состояние — пара «город и сколько баков в канистре», то есть вершин. Переходы из по дороге в город :
- если : перелить и ехать — цена , попадаем в ;
- купить баков, где : цена , попадаем в .
При это ровно классная задача — полезно проверить себя на её примере.
Обратите внимание, что покупать больше, чем помещается, бессмысленно, а покупать бак, когда канистра не пуста, — иногда осмысленно: бензин в дешёвом городе лучше дорогого впереди.
Формат ввода
Первая строка содержит числа () и ().
Вторая строка — чисел ().
Третья строка — число дорог , далее строк с парами городов. Дороги двусторонние, между парой городов не более одной дороги, петель нет.
Формат вывода
Одно число — наименьшая суммарная стоимость или .
Примеры
4 1 1 10 2 15 4 1 2 1 3 4 2 4 3
2
5 2 1 100 100 100 100 4 1 2 2 3 3 4 4 5
103