Існує "алгоритм сортування", який іноді називають сортом Сталіна, в якому для сортування списку ви просто вилучаєте елементи зі списку, поки він не буде відсортований у порядку збільшення. Наприклад, список
[1, 2, 4, 5, 3, 6, 6]
Коли "сортується" за допомогою Сталіна сортування стає
[1, 2, 4, 5, 6, 6]
Трійку вилучили, бо вона вийшла з ладу.
Зараз очевидно, що існує багато способів видалення елементів для сортування списку. Наприклад, будь-який список з менш ніж двома елементами повинен бути відсортований, тому просто видаляючи достатньо елементів наосліп, ми завжди можемо сортувати список. Оскільки це справа, ми дбаємо лише про якомога довший результат сталінського роду.
Вашим завданням буде скласти список натуральних чисел і вивести довжину найдовшого відсортованого (зростаючого) списку, до якого можна дійти, видаливши елементи з вихідного списку. Тобто знайдіть довжину найдовшого відсортованого (можливо, безперервного) підспису.
Відсортовані списки можуть мати один і той же елемент більше одного разу підряд. Вам не потрібно підтримувати порожній список, якщо сама програма не порожня.
Оцінка балів
Ваша відповідь буде оцінена за довжиною власного найдовшого сталінського роду. Програми будуть інтерпретуватися як послідовність байтів, а не символів, а їх порядок буде природним, що виникає, інтерпретуючи байти як числа. Нижчі бали кращі.
Це не код-гольф
Ось акуратний інструмент, який допоможе вам оцінити свої відповіді.
Тестові справи
[1, 2, 4, 5, 3, 6, 6] -> 6
[19, 2] -> 1
[3, 3, 4, 3] -> 3
[10] -> 1
[1, 2, 4, 9] -> 4
[1, 90, 2, 3, 4, 5] -> 5
[1, 90, 91, 2, 3, 4, 5] -> 5