Lý lịch
Trong hầu hết các ngôn ngữ lập trình hợp lý, rất dễ dàng để xoay các hàng hoặc cột của mảng 2D. Trong thử thách này, nhiệm vụ của bạn là xoay các đường chéo thay thế. Hãy nhớ lại rằng các đường chéo của một mảng 2D là các lát 1D của nó được lấy theo hướng đông bắc.
Đầu vào
Một mảng 2D hình chữ nhật không trống gồm các số có một chữ số ở bất kỳ định dạng hợp lý nào. Lưu ý rằng mảng có thể không phải là một hình vuông.
Đầu ra
Cùng một mảng, nhưng với mỗi đường chéo xoay một bước sang phải.
Thí dụ
Xem xét 3x4
mảng đầu vào
0 1 2 3
4 5 6 7
8 9 0 1
Các đường chéo của mảng này là
0
4 1
8 5 2
9 6 3
0 7
1
Phiên bản xoay của họ là
0
1 4
2 8 5
3 9 6
7 0
1
Do đó, đầu ra đúng là
0 4 5 6
1 8 9 0
2 3 7 1
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Bạn cũng có thể chấp nhận viết một hàm sửa đổi mảng đầu vào, nếu ngôn ngữ của bạn cho phép điều đó. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép.
Bảng xếp hạng
Dưới đây là Stack Snippet để tạo cả bảng xếp hạng thông thường và tổng quan về người chiến thắng theo ngôn ngữ.
Để đảm bảo rằng câu trả lời của bạn hiển thị, vui lòng bắt đầu câu trả lời của bạn bằng một tiêu đề, sử dụng mẫu Markdown sau:
## Language Name, N bytes
nơi N
là kích thước của trình của bạn. Nếu bạn muốn bao gồm nhiều số trong tiêu đề của mình (ví dụ: vì điểm của bạn là tổng của hai tệp hoặc bạn muốn liệt kê riêng các hình phạt cờ của thông dịch viên hoặc bạn muốn hiển thị điểm số cũ mà bạn đã cải thiện), hãy đảm bảo rằng điểm thực tế là số cuối cùng trong tiêu đề.
Các trường hợp kiểm tra bổ sung
Input:
4
Output:
4
Input:
5 6 1
Output:
5 6 1
Input:
0 1
6 2
Output:
0 6
1 2
Input:
6 3 0 8
4 6 1 4
6 2 3 3
9 3 0 3
Output:
6 4 6 1
3 6 2 3
0 9 3 0
8 4 3 3
Input:
5 8 2
6 7 3
2 6 1
6 0 6
6 4 1
Output:
5 6 7
8 2 6
2 6 0
3 6 4
1 6 1
Input:
9 9 4 0 6 2
2 3 2 6 4 7
1 5 9 3 1 5
0 2 6 0 4 7
Output:
9 2 3 2 6 4
9 1 5 9 3 1
4 0 2 6 0 4
0 6 2 7 5 7