Imagine que temos uma fatia de alguma região montanhosa, isso resultaria em uma forma semelhante a esta:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
Como podemos ver, podemos representar isso (até certo ponto) com uma sequência de números inteiros.
Para o propósito deste desafio, definimos um vale como uma subsequência contígua em que os valores inicialmente estão diminuindo e, a partir de algum momento, estão aumentando. Mais formalmente para uma sequência um vale terá índices para os quais o seguinte é válido:
- o início e o ponto final do vale são os mesmos:
- o vale começa e termina quando a região fica mais baixa:
- o vale não é plano:
- o vale inicialmente diminui:
- em algum momento o vale aumentará:
Agora, definimos a largura de um vale como o tamanho dos índices , ie. .
Desafio
Dado um perfil de altura (sequência de números inteiros não negativos), sua tarefa é determinar a largura do vale mais largo.
Exemplo
Dado o perfil de altura [1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2]
, podemos visualizá-lo como antes:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
aaaaaa ccccc
bbbbbbbbb
Observe como o segundo vale [3,2,1,0,0,1,2,2,3]
não se estende mais para a direita porque o ponto mais à esquerda é e não . Além disso, não adicionamos os dois s restantes porque exigimos que o terminal seja mais alto que o segundo último ponto.
Portanto, a largura do vale mais largo é .
Regras
- A entrada será uma sequência de números inteiros não negativos (desculpe povo holandês)
- você pode assumir que sempre há pelo menos um vale
- A saída será do tamanho do vale mais largo, conforme definido acima
Casos de teste
[4,0,4] -> 3
[1,0,1,0,1] -> 3
[1,0,2,0,1,2] -> 4
[13,13,13,2,2,1,0,1,14,2,13,14] -> 4
[1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2] -> 9
[3,2,0,1,0,0,1,3] -> 4
[3,1,2,3]
)
[4,0,4]
seria esse caso.
[3,2,0,1,0,0,1,3]
. Todas as respostas corrente de retorno 8, por sua definição eu acredito que deve ser 4.