Восстановление массива

Будем идти по массиву с конца. Понятно, что раз мы хотим сделать последовательность неубывающей, последнее число менять не стоит. Из предпоследнего числа хочется удалить несколько цифр так, чтобы оно стало максимально возможным, но не большим последнего. И так далее.

Как по данным числам a, b удалить несколько цифр из числа a, чтобы оно стало максимально возможным, не большим b?

В итоге, наш алгоритм выглядит следующим образом:

Итоговая асимптотика нашего алгоритма — O(), что вполне укладывается в лимит по времени.