Задача "Заправки-2"
(Такая же, как и предыдущая задача, но есть еще канистра
вместимостью 1 бак)
В стране N городов, некоторые из которых соединены между собой дорогами.
Для того, чтобы проехать по одной дороге требуется один бак бензина.
В каждом городе бак бензина имеет разную стоимость. Вам требуется добраться
из первого города в N-ый, потратив как можно меньшее количество денег.
При этом есть еще канистра для бензина, куда входит столько же бензина,
сколько входит в бак. В каждом городе можно заправить бак, залить
бензин в канистру, залить и туда и туда, или же перелить бензин из
канистры в бак.
Входные данные
Во входном файле записано сначала число N (1<=N<=100), затем идет
N чисел, i-ое из которых задает стоимость бензина в
i-ом городе (все это целые числа из диапазона от 0 до 100).
Затем идет число M - количество дорог в стране, далее идет описание
самих дорог. Каждая дорога задается двумя числами - номерами городов,
которые она соединяет. Все дороги двухсторонние (то есть по ним можно
ездить как в одну, так и в другую сторону), между двумя городами всегда
существует не более одной дороги, не существует дорог, ведущих
из города в себя.
Выходные данные
В выходной файл выведите одно число - суммарную стоимость маршрута
или -1, если добраться невозможно.
Пример входного файла
4
1 10 2 15
4
1 2 1 3 4 2 4 3
Пример выходного файла
2
Комментарий
Оптимальное решение - из 1-го города (зарпавив бак и залив в канистру) поехать
в 3-й, там перелить бензин из канистры в бак и поехать в 4-й.
Пример входного файла
4
1 10 2 15
0
Пример выходного файла
-1
Комментарий
Добраться невозможно
|