... або сусідства Тороїдального Мура
З огляду на позитивні цілі числа h
, w
і невід'ємне ціле число i
, повертати все індекси оточуючих i
.
Ви повинні припустити матрицю, що складається з h
рядків w
елементів, пронумерованих від нижнього, у верхньому лівому куті, до найвищого, у нижньому правому куті, і повернути у будь-якому розумному форматі список індексів, які б оточувати індекс i
. Ця матриця - торус (нескінченна карта, яка обертається навколо кожного краю).
Наприклад, введення h=4
та w=4
, призведе до матриці:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
але конкретніше:
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
так що якщо це i
було 0
, вам потрібно буде повернутися 15, 12, 13, 3, 1, 7, 4, 5
(на основі 0).
Приклади
На основі 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
На основі 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
Правила
- Ваша відповідь може бути 0 або 1-індексованою, ваш вибір, будь ласка, вкажіть.
- Можна припустити, що
i < h * w
(абоi <= h * w
для 1-проіндексованих відповідей). - Можна припустити, що
i >= 0
(абоi > 0
для 1-проіндексованих відповідей). - Порядок повернених значень не важливий до тих пір, поки включено лише вісім бажаних значень.
- Стандартні лазівки заборонені .
- Це код-гольф, тому найкоротша відповідь на кожній мові виграє!
Дякуємо @Conor O'Brien за більш технічну звукову назву та @ngm за більше тестових випадків!