Вставка ключевых значений
Вас наняла на работу компания MacroHard, чтобы вы разработали новую структуру данных для хранения целых ключевых значений.
Эта структура выглядит как массив A бесконечной длины, ячейки которого нумеруются с единицы. Изначально все ячейки пусты. Единственная операция, которую необходимо поддерживать - это операция Insert(L, K), где L - положение в массиве, а K - некоторое положительное целое ключевое значение.
Операция выполняется следующим образом:
Если ячейка A[L] пуста, то присвоить A[L] := K.
Если ячейка A[L] непуста, выполнить Insert(L+1, A[L]), а затем присвоить A[L] := K.
По заданной последовательности из N целых чисел L_1, L_2, ..., L_N вам необходимо вывести содержимое этого массива после выполнения следующей последовательности операций:
Insert(L_1, 1)
Insert(L_2, 2)
...
Insert(L_N, N)
Входные данные
В первой строке входного файла содержится N - число операций Insert и M - максимальный номер позиции, которую можно использовать в операции Insert. (1 ≤ N ≤ 131072, 1 ≤ M ≤ 131072). В следующей строке даны Nцелых чисел L_i, которые описывают операции Insert (1 ≤ L_i ≤ M).
Выходные данные
Выведите содержимое массива после выполнения данной последовательности операций Insert. На первой строке выведите W - номер последней несвободной позиции в массиве. Далее выведите W целых чисел - A[1], A[2], ...,A[W]. Для пустых ячеек выводите нули.