Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Космос и Вселенная
+1

Динамика на подотрезках

Здравствуйте, есть задача

Стоимость проезда

Робот Сильвер движется по платному шоссе на планете Шелезяка. На каждом километре шоссе расположен пункт оплаты. Всего на шоссе n пунктов оплаты. Первый пункт оплаты находится в самом начале шоссе, n-й пункт оплаты находится в начале последнего километра шоссе. Заплатив нужную сумму в i-м пункте оплаты, робот может двигаться дальше либо до следующего пункта оплаты, либо же до того, который находится через 2 километра (то есть, если робот находится в пункте i, то он может двигаться либо до пункта i+1, либо до пункта i+2). Первую оплату можно сделать либо в первом пункте, либо во втором (на выбор). Если оплаты была произведена в предпоследнем (n-1) пункте, то можно просто доехать до конца  шоссе, не оплачивая проезд в последнем пункте.
Зная стоимость, которую необходимо заплатить в определенном пункте оплаты, помогите роботу Сильверу найти наименьшую сумму, которую он заплатит, проехав через все шоссе.

Формат входных дынных
В первой строке записано количество пунктов оплаты n (2 <= n <= 1000). Во второй строке записыны n целых чисел (costi) - стоимость проезда через i-й пункт оплаты (1 <= i <= n, 0 <= costi <= 999).

Формат выходных дынных
Выведите одно число - ответ на задачу.

пример:
1)

входные данные:

3

10 15 20

выходные данные

15

2)

входные данные:

10
1 100 1 1 1 100 1 1 100 1

выходные данные

6

можно подумать что стоит использовать жадный алгоритм,который на каждом шаге будет учитывать только два впереди стоящих числа и выбирать минимальное, но допустим у нас есть подотрезок: x 1 15 60 2, где x-это пунт оплаты в котором находится сильвер.

если использовать жадный алгоритм, x перейдет сначала на место единицы, а затем на место 15 и потом на 2 и итоговая сумма будет 1+15+2=18, когда можно было перейти на 15, а затем на 2 и сумма была бы 17.
Каком должен быть алгоритм, чтобы решить данную задачу?