... ou Bairros Toroidal Moore
Inteiros positivos dadas h, we um número inteiro não negativo i, voltar todos os índices circundantes i.
Você deve assumir uma matriz composta por hlinhas de welementos, numeradas do mais baixo, no canto superior esquerdo, ao mais alto, no canto inferior direito, e retornar, em qualquer formato razoável, uma lista dos índices que rodeie o índice i. Essa matriz é um toro (um mapa infinito que envolve cada borda).
Por exemplo, entradas h=4e w=4, resultariam na matriz:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
mas mais especificamente:
15 12 13 14 15 12
3 0 1 2 3 0
7 4 5 6 7 4
11 8 9 10 11 8
15 12 13 14 15 12
3 0 1 2 3 0
de modo que, se ifosse 0, seria necessário retornar 15, 12, 13, 3, 1, 7, 4, 5(com base em 0).
Exemplos
Baseado em 0:
h w i Expected result
4 4 5 0, 1, 2, 4, 6, 8, 9, 10
4 4 0 15, 12, 13, 3, 1, 7, 4, 5
4 5 1 15, 16, 17, 0, 2, 5, 6, 7
1 3 2 1, 2, 0, 1, 0, 1, 2, 0
1 1 0 0, 0, 0, 0, 0, 0, 0, 0
Baseado em 1:
h w i Expected result
4 4 6 1, 2, 3, 5, 7, 9, 10, 11
4 4 1 16, 13, 14, 4, 2, 8, 5, 6
4 5 2 16, 17, 18, 1, 3, 6, 7, 8
1 3 3 2, 3, 1, 2, 1, 2, 3, 1
1 1 1 1, 1, 1, 1, 1, 1, 1, 1
Regras
- Sua resposta pode ser indexada em 0 ou 1, sua escolha, por favor especifique.
- Você pode assumir isso
i < h * w(oui <= h * wpara respostas indexadas em 1). - Você pode assumir isso
i >= 0(oui > 0para respostas indexadas em 1). - A ordem dos valores retornados não é importante desde que apenas os oito valores desejados sejam incluídos.
- As brechas padrão são proibidas .
- Isso é código-golfe, então a resposta mais curta, em cada idioma, vence!
Agradecemos a @Conor O'Brien pelo título mais técnico e o @ngm por mais casos de teste!