Розбір
Будемо йти зліва направо по масиву і тримати значення — максимальна довжина підпослідовності, що закінчується в елементі зі значенням . Тоді можна перераховувати ), так що .
Що робити тепер? Перераховуймо за допомогою дерева відрізків. Будемо запитувати максимум на відрізку , і оновлювати в точці . Це можна робити за допомогою неявного дерева відрізків, або компресії координат.
Загальна асимптотика — з компресією.