Компьютерная игра с восстановлением пути
В старых играх можно столкнуться с подобной ситуацией. Герой прыгает по платформам, висящим в воздухе. Он должен перебраться с одного края экрана до другого. При прыжке с одной платформы на соседнюю, у героя уходит |y_2-y_1| энергии, где y_2 и y_1 - высоты, на которых расположены эти платформы. Кроме того у героя есть суперприём, который позволяет перескочить через платформу, но на это затрачивается 3*|y_2-y_1| единиц энергии. Конечно же, энергию следует расходовать максимально экономно.
Известны высоты платформ в порядке от левого края до правого. Найдите минимальное количество энергии, достаточное, чтобы добраться с 1-й платформы до n-й (последней) и список (последовательность) платформ, по которым нужно пройти.
Входные данные
Первая строка содержит количество платформ N (2 ≤ N ≤ 100000), вторая - N целых чисел, значения которых не превышают по модулю 4000 - высоты платформ.
Выходные данные
В первой строке выведите минимальное количество энергии. Во второй - количество платформ, по которым нужно пройти, а в третьей выведите последовательность этих платформ.
Примеры
Примечание
Разумеется, в этой задаче для некоторых входных данных возможны разные правильные последовательности платформ. Ваша программа должна выводить любую из них.