Gán các số từ 0 đến 7 cho 8 đỉnh của một khối theo bất kỳ cách nào bạn muốn. Chính xác một số phải được gán cho mỗi đỉnh.
Ví dụ: các đỉnh của bạn có thể được chỉ định như thế này:
3-----1
/| /|
4-----2 |
| | | |
| 5---|-0
|/ |/
6-----7
Viết chương trình lấy số nguyên từ 0 đến 5. Mỗi 6 số này được liên kết với chính xác một mặt của khối lập phương của bạn theo bất kỳ cách nào bạn muốn. Khi một trong những số này là đầu vào, 4 số đỉnh của mặt được liên kết phải được in ra thiết bị xuất chuẩn trong một hình vuông 2 × 2 chữ số. Khuôn mặt sẽ được nhìn thẳng từ bên ngoài khối lập phương. Tất cả 4 xoay mặt là hợp lệ.
Ví dụ: nếu 0 được liên kết với mặt trước của khối ví dụ ở trên, thì đây sẽ là đầu ra hợp lệ cho đầu vào 0
:
42
67
Khuôn mặt có thể được xem ở bất kỳ góc quay 90 ° nào, vì vậy những khuôn mặt này cũng hợp lệ:
27
46
76
24
64
72
Đầu ra này (và các phép quay của nó) không hợp lệ , vì chúng được nhìn từ phía sai của khuôn mặt:
24
76
Ý tưởng tương tự áp dụng cho tất cả các khuôn mặt khác. ví dụ: nếu 1 được liên kết với mặt sau, thì đầu vào 1
có thể tạo ra đầu ra 13[newline]05
(và 31[newline]50
sẽ không hợp lệ).
Vì vậy, thách thức thực sự là chọn số đỉnh và phép quay của bạn sao cho việc dịch đầu vào thành 4 số đỉnh của nó rất dễ dàng và ngắn.
Mã ngắn nhất tính bằng byte thắng. Tiebreaker là bài trước. ( Bộ đếm byte tiện dụng. )
Ghi chú
- Bạn có thể viết một hàm thay vì một chương trình. Nó sẽ lấy một số nguyên từ 0 đến 5 và in hoặc trả về chuỗi lưới 2 × 2 chữ số.
- Lấy đầu vào từ stdin, dòng lệnh hoặc hàm arg. Bạn có thể cho rằng đầu vào là hợp lệ.
- Đầu ra có thể tùy chọn có một dòng mới.
- Hãy chắc chắn cho chúng tôi biết số đỉnh và số mặt bạn đã chọn.