Você é motorista de táxi em São Francisco. Como é típico dos motoristas de táxi, você está navegando em uma grade na qual as únicas direções válidas que você pode mover são a esquerda, direita, para cima e para baixo. No entanto, San Fransisco é muito montanhoso, portanto a distância entre dois cruzamentos adjacentes não é necessariamente a mesma. Mais especificamente, a distância entre um cruzamento na altitude ae um cruzamento adjacente na altitude bseria 1 + |a - b|. Seu objetivo é encontrar todos os caminhos mais curtos desde a sua origem no canto superior esquerdo do mapa até o seu destino no canto inferior direito.
Uma grade bidimensional de altitudes inteiras, no formato que for mais conveniente (matriz bidimensional, matriz unidimensional com largura e / ou altura, etc.).
Uma sequência de instruções para viajar para chegar ao canto inferior direito da entrada do canto superior esquerdo na menor distância possível, dada a distância entre duas interseções adjacentes de altitudes ae bé dada pela fórmula 1 + |a - b|. Se houver várias soluções, produza todas as soluções.
Embora eu use U, D, L, e Rpara cima, para baixo, para a esquerda e para a direita nos exemplos abaixo seu programa pode usar qualquer quatro cordas diferentes para representar as direções, desde que ele é consistente com eles dentro e através de todas as entradas.
Isso é código-golfe, então a resposta com a menor contagem de bytes vence.
As altitudes são sempre menores que 10? (eles estão em exemplos, mas eles vão sempre ser?)
@ Dadá as altitudes não são necessariamente menores que 10 (elas também podem ser negativas), atualizei os exemplos de acordo.
quando vi que este post estava ativo, eu estava suuuuuuper excitado - pensei que alguém tivesse postado uma resposta no táxi! talvez um dia