Há um "algoritmo de classificação", às vezes chamado classificação Stalin, no qual, para classificar uma lista, você simplesmente remove elementos da lista até que ela seja classificada em ordem crescente. Por exemplo, a lista
[1, 2, 4, 5, 3, 6, 6]
Quando "classificado" usando a classificação Stalin se torna
[1, 2, 4, 5, 6, 6]
Os três foram removidos porque estavam fora de ordem.
Agora, obviamente, existem muitas maneiras de remover elementos para classificar uma lista. Por exemplo, qualquer lista com menos de dois elementos deve ser classificada; portanto, basta remover elementos suficientes cegamente, sempre podemos classificar uma lista. Como esse é o caso, nos preocupamos apenas com o resultado mais longo possível de um tipo de Stalin.
Sua tarefa será pegar uma lista de números inteiros positivos e gerar o comprimento da lista classificada mais longa (crescente) que pode ser alcançada removendo elementos da lista original. É o comprimento da sub-lista classificada mais longa (possivelmente não contígua).
As listas ordenadas podem ter o mesmo elemento mais de uma vez em uma linha. Você não precisa oferecer suporte à lista vazia, a menos que seu próprio programa esteja vazio.
Pontuação
Sua resposta será pontuada pelo tamanho de sua própria classificação Stalin mais longa possível. Os programas serão interpretados como uma sequência de bytes em vez de caracteres, e sua ordem será a ordem natural que surgir ao interpretar os bytes como números. Pontuações mais baixas são melhores.
Este não é um código de golfe
Aqui está uma ferramenta simples para ajudá-lo a obter suas respostas.
Casos de teste
[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