Escreva uma função (usando o mínimo de bytes possível) que obtenha uma matriz bidimensional de qualquer número de colunas e linhas nas quais:
0
representa bloco vazio,1
representa bloco de cobra.
A função deve retornar o número de caminhos possíveis que a cobra percorreu.
Exemplo 1:
Entrada:
[
[1,1,1,1,1],
[0,0,0,0,1],
[0,0,0,0,1],
]
Saída: 2
No exemplo acima, a função retornará 2
porque a resposta é uma das seguintes:
Exemplo 2:
Entrada:
[
[1,1,1,1],
[0,0,1,1],
[0,0,1,1],
]
Saída: 6
Neste exemplo, a função retornará 6
porque a resposta é uma das seguintes:
Nota:
Ao avaliar a entrada, você pode assumir que:
- As matrizes que representam colunas sempre terão os mesmos tamanhos (portanto, as matrizes são retangulares);
- Existe pelo menos 1 caminho válido;
- A cobra não pode andar pelas bordas (como pode acontecer em algumas versões da cobra);
- A cobra sempre terá pelo menos 2 blocos;
- A cobra não pode se mover na diagonal;
- Os caminhos são direcionados. (portanto, dois caminhos que terminam em posições diferentes, mas que parecem exatamente iguais não são o mesmo caminho, isso somará o total)
[[0,0,1,1],[0,0,1,1],[0,0,1,1]]
. A maioria das respostas dar 16, mas dá 15.