Призначте числа 0 до 7 8 вершинам куба будь-яким способом. Кожній вершині має бути призначено саме одне число.
Наприклад, вершини можуть бути призначені так:
3-----1
/| /|
4-----2 |
| | | |
| 5---|-0
|/ |/
6-----7
Напишіть програму, яка займає ціле число від 0 до 5. Кожне з цих 6 чисел асоціюється саме з одним обличчям вашого куба будь-яким способом, який вам подобається. Коли вводиться одне з цих чисел, 4 вершинні номери асоційованого обличчя повинні бути надруковані для викреслювання в 2 × 2 квадратних цифр. Обличчя слід дивитися прямо назовні куба. Усі 4 обертання обличчя дійсні.
Наприклад, якщо 0 асоціюється з лицьовою стороною прикладу куба вище, то це буде правильним висновком для введення 0
:
42
67
Обличчя може переглядатися при будь-якому обертанні на 90 °, тому вони також дійсні:
27
46
76
24
64
72
Цей висновок (та його обертання) недійсні , оскільки їх переглядають з іншої сторони обличчя:
24
76
Ця ж ідея стосується всіх інших облич. наприклад, якщо 1 асоційовано із тильною стороною, то введення 1
може дати результат 13[newline]05
(і 31[newline]50
буде недійсним).
Тож справжньою задачею є вибір номерів вершин та обертання таких, що переводити вхід у свої 4 вершинні номери легко та коротко.
Виграє найкоротший код у байтах. Tierereaker - це раніше повідомлення. ( Зручний лічильник байтів. )
Примітки
- Ви можете записати функцію замість програми. Потрібно взяти ціле число від 0 до 5 та надрукувати або повернути дворядкову сітку 2 × 2.
- Візьміть дані зі stdin, командного рядка або arg. Ви можете припустити, що введення дійсне.
- Необов'язково вихід може мати зворотний новий рядок.
- Обов’язково повідомте нам обрані вершини та номери обличчя.