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