... ou Bairros Toroidal Moore
Inteiros positivos dadas h
, w
e um número inteiro não negativo i
, voltar todos os índices circundantes i
.
Você deve assumir uma matriz composta por h
linhas de w
elementos, 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=4
e 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 i
fosse 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 * w
para respostas indexadas em 1). - Você pode assumir isso
i >= 0
(oui > 0
para 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!