Sua tarefa é determinar o comprimento da descida mais longa em uma "montanha" representada como uma grade de alturas inteiras. Uma "descida" é qualquer caminho de uma célula inicial para células adjacentes ortogonalmente com alturas estritamente decrescentes (isto é, não na diagonal nem na mesma altura). Por exemplo, você pode passar de 5-4-3-1, mas não 5-5-4-3-3-2-1. O comprimento desse caminho é quantos movimentos celulares existem da célula inicial para a célula final, portanto, 5-4-3-1 é o comprimento 3.
Você receberá uma grade retangular como entrada e deverá produzir um número inteiro indicando a descida mais longa.
Exemplos
1 2 3 2 2
3 4 5 5 5
3 4 6 7 4
3 3 5 6 2
1 1 2 3 1
O comprimento da descida mais longa nesta montanha é 5. O caminho mais longo começa no 7, move-se para a esquerda, para cima, para a esquerda, para cima e para a esquerda (7-6-5-4-2-1). Como existem 5 movimentos nesse caminho, o comprimento do caminho é 5.
Eles podem ter o mesmo número.
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
Como esse mapa de altura é plano, a descida mais longa é 0. (não 19, pois a sequência do caminho deve ser estritamente descendente)
Os mapas de altura podem ser compostos por números maiores que os números de um dígito.
10 12 13 14 15 15
17 14 15 15 15 16
18 20 21 15 15 15
21 14 10 11 11 15
15 15 15 15 15 15
O caminho mais longo aqui é de comprimento 6. (21, 20, 18, 17, 14, 12, 10)
... E números ainda maiores também são bons.
949858 789874 57848 43758 387348
5848 454115 4548 448545 216464
188452 484126 484216 786654 145451
189465 474566 156665 132645 456651
985464 94849 151654 151648 484364
A descida mais longa aqui é de comprimento 7. (786654, 484216, 484126, 474566, 156665, 151654, 151648, 132645)
Regras e Notas
- As grades podem ser obtidas em qualquer formato conveniente. Especifique seu formato na sua resposta.
- Você pode assumir que o mapa de altura é perfeitamente retangular, não é vazio e contém apenas números inteiros positivos no intervalo inteiro de 32 bits assinado.
- O caminho de descida mais longo pode começar e terminar em qualquer lugar da grade.
- Você não precisa descrever o caminho de descida mais longo de nenhuma maneira. Somente seu comprimento é necessário.
- O código mais curto vence