eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Крокуючий робот

Крокуючий робот

Відома компанія з виробництва роботів сконструювала ще одну модель, тепер вже двоногого крокуючого робота. Для його випробування викладають у ряд декілька стовбчиків, які складються з одинакових кубиків. Як вияснилось, робот може переступити з одного стовбчика на інший, якщо висоти цих стовбчиків (тобто кількості кубиків у них) відрізняються не більше, ніж на \textbf{1}. Визначіть мінімальну кількість кубиків, які необхідно зняти для того, щоб робот міг пройти увесь ряд стовбчиків від початку до кінця. \InputFile У першому рядку вхідного файлу записано ціле число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^6}). У другому рядку задано \textbf{N} невід'ємних цілих чисел, які не перевищують \textbf{2·10^6}, що визначають висоти відповідних стовбчиків. \OutputFile У першому рядку вихідного файлу виведіть мінімальну кількість кубиків, які потрібно зняти. У другому рядку слід вивести \textbf{N} чисел, кожне з яких визначає кількість кубиків, які залишились у відповідному стовбчику.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4
1 3 1 2
Вихідні дані #1
1
1 2 1 2
Автор Віталій Неспірний