Đối với thử thách này, bạn nên viết chương trình hoặc hàm xuất ra các đường chéo của ma trận vuông đã cho. Tuy nhiên, nếu bạn hoán đổi các hàng và cột trong mã nguồn của giải pháp, thay vào đó, nó sẽ trở thành một chương trình hoặc hàm trả về các antidiagonals của ma trận. Đọc để biết chi tiết ...
Quy tắc
- Mã nguồn của giải pháp của bạn được coi là một lưới các ký tự 2D, được phân tách bằng một dòng mới tiêu chuẩn mà bạn chọn (nguồn cấp dữ liệu, trả về vận chuyển hoặc kết hợp cả hai).
Không có dòng nào trong mã nguồn của bạn có thể dài hơn dòng trước. Dưới đây là một số ví dụ về bố cục hợp lệ:
### ### ###
######## ####### ### ### #
Và đây là một ví dụ về bố cục không hợp lệ (vì dòng thứ ba dài hơn dòng thứ hai):
###### #### ##### ###
Hai giải pháp của bạn nên hoán chuyển cho nhau, nghĩa là bạn nên lấy một giải pháp khác bằng cách hoán đổi các hàng và cột. Đây là hai cặp hợp lệ:
abc def ghi
adg beh cfi
Và
print 10 (~^_^)~ foo bar !
p(fb! r~oa i^or n_ t^ ) 1~ 0
Lưu ý rằng không gian được xử lý như bất kỳ nhân vật khác. Cụ thể, không gian dấu là rất quan trọng vì chúng có thể không phải là dấu cách trong khoảng cách.
Mỗi giải pháp nên là một chương trình hoặc hàm lấy ma trận vuông không rỗng gồm các số nguyên có một chữ số làm đầu vào. Một giải pháp sẽ xuất ra một danh sách tất cả các đường chéo của ma trận và giải pháp kia sẽ đưa ra một danh sách tất cả các antidiagonals. Bạn có thể sử dụng bất kỳ định dạng đầu vào và đầu ra hợp lý, rõ ràng nào, nhưng chúng phải giống hệt nhau giữa hai giải pháp (điều này cũng có nghĩa là chúng phải là cả hai chức năng hoặc cả hai chương trình).
- Mỗi đường chéo chạy từ trên cùng bên trái xuống dưới cùng bên phải, và chúng nên được sắp xếp từ trên xuống dưới.
- Mỗi antidia Cross chạy từ dưới cùng bên trái lên trên cùng bên phải, và chúng nên được sắp xếp từ trên xuống dưới.
Chấm điểm
Để khuyến khích các giải pháp càng "vuông" càng tốt, điểm chính là số lượng hàng hoặc số cột của giải pháp của bạn, tùy theo giá trị nào lớn hơn . Ít hơn là tốt hơn. Ties bị phá vỡ bởi số lượng ký tự trong giải pháp, không tính các dòng mới. Một lần nữa, ít hơn là tốt hơn. Thí dụ:
abcd
efg
h
Điều này và chuyển vị của nó sẽ có điểm chính là 4 (vì có 4 cột) và điểm hòa là 8 (vì có 8 ký tự không phải dòng mới). Vui lòng trích dẫn cả hai giá trị trong tiêu đề câu trả lời của bạn.
Các trường hợp thử nghiệm
Nhiệm vụ thực tế được thực hiện bởi hai giải pháp không phải là thách thức chính ở đây, nhưng đây là hai ví dụ để giúp bạn kiểm tra các giải pháp của mình:
Input:
1 2 3
4 5 6
7 8 9
Diagonals:
3
2 6
1 5 9
4 8
7
Antidiagonals:
1
4 2
7 5 3
8 6
9
Input:
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
Diagonals:
0
1 1
0 0 0
1 1 1 1
0 0 0
1 1
0
Antidiagonals:
1
0 0
1 1 1
0 0 0 0
1 1 1
0 0
1