Запрограммировать задачу, которую решил через рисунок
Задача
Компьютерная игра
Во многих старых играх с двумерной графикой можно столкнуться с подобной ситуацией. Какой-нибудь герой прыгает по платформам (или островкам), которые висят в воздухе. Он должен перебраться от одного края экрана до другого. При этом при прыжке с одной платформы на соседнюю, у героя уходит |y2-y1| единиц энергии, где y1 и y2 – высоты, на которых расположены эти платформы. Кроме того, у героя есть супер прием, который позволяет перескочить через платформу, но на это затрачивается 3 * |y3-y1| единиц энергии. Конечно же, энергию следует расходовать максимально экономно.
Предположим, что вам известны координаты всех платформ в порядке от левого края до правого. Сможете ли вы найти, какое минимальное количество энергии потребуется герою, чтобы добраться с первой платформы до последней?
Входные данные
В первой строке входного файла INPUT.TXT записано количество платформ n (1 ≤ n ≤ 30000). Вторая строка содержит n натуральных чисел, не превосходящих 30000 – высоты, на которых располагаются платформы.
Выходные данные
В выходной файл OUTPUT.TXT запишите единственное число – минимальное количество энергии, которую должен потратить игрок на преодоление платформ (конечно же в предположении, что cheat-коды использовать нельзя).
Моё визуальное решение:
Допустим на вход поступило число 4 и цифры 1 10 14 3. Тогда мы можем визуализировать это в виде рисунка:
Над стрелочками написано количество затраченной энергии, чтобы добраться до этой платформы
Проблема:
Я понимаю, что это определенно решается через рекурсию. Пробовал просчитать все варианты через рекурсию и найти минимальное значение из всех вариантов. Большая просьба, если это возможно, решить задачу, опираясь на мой рисунок. Если решали через известный алгоритм, то скажите его название в решении!