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

Вставка ключових значень

Вставка ключових значень

Вас найняла на роботу компанія \textit{MacroHard}, щоб ви розробили нову структуру даних для збереження цілих ключових значень. Ця структура виглядає як масив \textbf{A} нескінченної довжини, комірки якого нумеруються з одиниці. Спочатку усі комірки порожні. Єдина операція, яку необходно підтримувати - це операція \textbf{Insert(L, K)}, де \textbf{L} - положення у масиві, а \textbf{K} - деяке додатне ціле ключове значення. Операція виконується наступним чином: \begin{itemize} \item Якщо комірка \textbf{A\[L\]} порожня, то присвоїти \textbf{A\[L\] := K}. \item Якщо комірка \textbf{A\[L\]} не порожня, виконати \textbf{Insert(L+1, A\[L\])}, а потім присвоїти \textbf{A\[L\] := K}. \end{itemize} За заданою послідовністю із \textbf{N} цілих чисел \textbf{L_1}, \textbf{L_2}, ..., \textbf{L_N} вам необхідно вивести вміст цього масиву після виконання наступної послідовності операцій: \textbf{Insert(L_1, 1)} \textbf{Insert(L_2, 2)} \textbf{...} \textbf{Insert(L_N, N)} \InputFile У першому рядку вхідного файла міститься \textbf{N} - кількість операцій \textbf{Insert} та \textbf{M} - максимальний номер позиції, яку можна використовувати в операції \textbf{Insert}. (\textbf{1} ≤ \textbf{N} ≤ \textbf{131072}, \textbf{1} ≤ \textbf{M} ≤ \textbf{131072}). У наступному рядку задано \textbf{N} цілих чисел \textbf{L_i}, які описують операції \textbf{Insert} (\textbf{1} ≤ \textbf{L_i} ≤ \textbf{M}). \OutputFile Виведіть вміст масиву після виконання заданої послідовності операцій \textbf{Insert}. У першому рядку виведіть \textbf{W} - номер останньої не вільної позиції у масиві. Далі виведіть \textbf{W} цілих чисел - \textbf{A\[1\]}, \textbf{A\[2\]}, ..., \textbf{A\[W\]}. Для порожніх комірок виводьте нулі.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
5 4
3 3 4 1 3
Вихідні дані #1
6
4 0 5 2 3 1