Задача №114737. Медианный горный хребет

Берляндия — огромная страна с разнообразной географией. Одной из самых знаменитых природных достопримечательностей Берляндии является «Медианный горный хребет». Этот горный хребет представляет из себя \(n\) подряд идущих горных вершин, расположенных на одной прямой, пронумерованных в порядке следования от \(1\) до \(n\). Высота \(i\)-й горной вершины равна \(a_i\).

«Медианный горный хребет» знаменит тем, что с ним ежедневно происходит так называемое выравнивание горных вершин . В момент выравнивания одновременно для каждой вершины от \(2\) до \(n - 1\) её высота становится равна медианной высоте среди неё и двух соседних гор. А именно, если до выравнивания высоты были равны \(b_i\), то новые высоты \(a_i\) устроены следующим образом: \(a_1 = b_1\), \(a_n = b_n\), а для всех \(i\) от \(2\) до \(n - 1\) \(a_i = \texttt{median}(b_{i-1}, b_i, b_{i+1})\). Медианой трёх чисел называется второе по счёту число, если отсортировать эти три числа по возрастанию. Например, \(median(5,1,2) = 2\), а \(median(4,2,4) = 4\).

Недавно Берляндские учёные доказали, что какими бы ни были высоты гор, процесс выравнивания рано или поздно стабилизируется, то есть в какой-то момент высоты гор перестанут изменяться после выравнивания. Правительство Берляндии хочет понять через сколько лет это произойдёт, то есть, найти величину \(c\) — сколько произойдет выравниваний, при которых у хотя бы одной горы изменится её высота. Помогите ученым решить эту важную задачу!

Обратите внимание, что в некоторых группах тестов помимо значения \(c\) вам необходимо определить также и высоты гор после \(c\) выравниваний, то есть узнать, какими высоты гор останутся навсегда.

Входные данные

Первая строка содержит целые числа \(n\) и \(t\) (\(1 \le n \le 500\,000\), \(0 \le t \le 1\)) — количество гор и параметр, который определяет, необходимо ли определить итоговые высоты гор.

Вторая строка содержит целые числа \(a_1, a_2, a_3, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) — текущие высоты гор.

Выходные данные

В первой строке выведите \(c\) — число выравниваний вершин, при которых высота хотя бы одной горы изменится.

Если \(t = 1\), то во второй строке выведите \(n\) чисел — итоговые высоты гор после \(c\) выравниваний.

Примечание

В первом примере высоты на позициях \(1\) и \(5\) не меняются. Так как медиана чисел \(1\), \(2\), \(1\) это \(1\), то на позициях 2 и 4 после первого выравнивания оказываются числа 1, и так как медиана чисел \(2\), \(1\), \(2\) это \(2\), то на позиции 3 после первого выравнивания оказывается число 2. Итого после первого выравнивания горных вершин горы имеют высоты \(1\), \(1\), \(2\), \(1\), \(1\). После второго выравнивания высоты становятся \(1\), \(1\), \(1\), \(1\), \(1\) и дальше они меняться не будут, соответственно всего было \(2\) меняющих высоты выравнивания.

В третем примере после выравнивания ни у одной горы её высота не изменится и число выравниваний, при которых высоты изменятся, равно \(0\). Так как \(t = 0\), то выводить итоговые высоты гор не нужно.

Система оценки

Тесты к этой задаче состоят из шести групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов необходимых групп. Offline-проверка означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования.

Дополнительные ограничения
Группа Баллы \(n\) \(a_i\) \(t\) Необх. группы Комментарий
0 0 Тесты из условия.
1 19 \(n \le 1000\) 0 Гарантируется, что \(c \le 10\,000\).
2 24 \(a_i \le 2\)
3 14 \(a_i \le 100\) \(t=0\)
4 14 \(a_i \le 100\) 0, 2, 3
5 14 \(t =0\) 3
6 15 0, 1, 2, 3, 4, 5 Offline-проверка.
Примеры
Входные данные
5 1
1 2 1 2 1
Выходные данные
2
1 1 1 1 1 
Входные данные
6 1
1 3 2 5 4 6
Выходные данные
1
1 2 3 4 5 6 
Входные данные
6 0
1 1 2 2 1 1
Выходные данные
0
Сдать: для сдачи задач необходимо войти в систему