Vuông Một Latin là một hình vuông đó đã không lặp lại các biểu tượng trong một trong hai X hoặc cột Y . Ví dụ:
ABCD
DABC
CDAB
BCDA
là một hình vuông như vậy. Lưu ý cách mỗi cột và hàng chứa một hoán vị của 4 chữ cái giống nhau.
Tuy nhiên, hình vuông Latin của chúng tôi có một vấn đề: Nếu tôi xoay hàng thứ hai ( DABC
) 1 sang trái, tôi sẽ kết thúc ABCD
, nó giống hệt với hoán vị phía trên nó. Nếu không thể xoay bất kỳ 1 cột / hàng nào và có được một cột / hàng khác, thì chúng tôi coi hình vuông là xoay an toàn .
Ví dụ:
ABCD
BDAC
CADB
DCBA
Là xoay an toàn. Lưới có các thuộc tính sau:
- Điểm [0, N] sử dụng ký hiệu Nth
- Điểm [0, N] và [N, 0] luôn là cùng một ký hiệu . (Tôi cũng muốn nói rằng [x, y] và [y, x] cũng luôn luôn là cùng một chữ cái, nhưng tôi không thể chứng minh điều đó)
Nhiệm vụ của bạn là in ra 1 ô vuông Latin an toàn xoay, khi được thông qua N. Tôi không quan tâm nếu bạn xuất các chữ cái, số, danh sách hoặc mảng 2D. Nếu bạn sử dụng số, cột và hàng trên cùng phải là 0,1,2,3,...
(theo thứ tự đó). Nếu bạn sử dụng chữ cái, thì nó phảiA,B,C,D,....
Ví dụ: nếu đầu vào của bạn là 4, bạn nên in:
0,1,2,3 0,1,2,3
1,3,0,2 or 1,0,3,2
2,0,3,1 2,3,1,0
3,2,1,0 3,2,0,1
Không có hình vuông Latin an toàn xoay có kích thước nhỏ hơn 4. Tôi không quan tâm chương trình của bạn sẽ làm gì nếu N nhỏ hơn 4. Đối với người tò mò, số lượng hình vuông an toàn xoay là (bắt đầu từ 4): 2,5,5906,(too long to calculate)
Đây là một môn đánh gôn , vì vậy hãy cố gắng đưa ra câu trả lời ngắn nhất có thể bằng ngôn ngữ yêu thích của bạn!
1,2,3,...
?
N
do không đủ chất lượng số ngẫu nhiên?)