Ваша піраміда
Піраміда, яку я хочу, щоб ви побудували, складається повністю з кубів. Він має 24 шари, а N- й шар зверху містить N 2 кубиків, розташованих у квадраті N на N. Піраміда виглядає так:
Щоб побудувати піраміду, вам знадобиться запас кубів. Вам дано 4900 кубів, розташованих на площі 70 на 70, що виглядає приблизно так:
(Гаразд, я визнаю, що зображення квадрата зовсім непотрібне.)
Оскільки 1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2 , ви маєте точно потрібну кількість кубів для побудови піраміди. Все, що вам потрібно зробити, це сказати мені, куди має піти кожен куб.
Ваше завдання
Вам слід вибрати довільну біекцію між кубами на квадраті та кубами в піраміді. (Було б добре, якби у вашій відповіді було сказано, який із 4900! Різних бієкцій ви використовуєте.)
Потім напишіть функцію або програму, яка виконує такі дії:
- Враховуючи розташування куба в квадраті 70 на 70 (як пара координат
(X,Y)
), - Виведіть його розташування в піраміді (як потрійний координат
(A,B,C)
).
Усі вхідні та вихідні координати можуть бути або 0-індексованими, або 1-індексованими. Якщо припустити 1-індексований, вашим входом (X,Y)
буде пара цілих чисел між 1 і 70. Ваш вихід (A,B,C)
буде потрійним цілим числом; A
має бути шаром, що рахується вгорі (між 1 і 24) і (B,C)
має бути координатами цього куба в межах цього шару (між 1 і A
).
Наприклад:
- верхній куб піраміди має координати
(1,1,1)
. - У чотирьох кутах підстави піраміди мають координати
(24,1,1)
,(24,1,24)
,(24,24,1)
і(24,24,24)
. - Якщо ви вирішили розмістити кути квадрата в кутах піраміди, то на вході
(70,1)
ви можете дати вихід(24,24,1)
.
Ви можете припустити, що вам будуть (X,Y)
введені лише дійсні координати як вхідні дані. Правильність цілком визначається наступним правилом: два різних дійсних вводу завжди повинні давати два різних дійсних виходу.
Це код-гольф : виграє найкоротший код.