Là một phần của thuật toán nén của nó, tiêu chuẩn JPEG sẽ hủy một ma trận thành một vectơ dọc theo các antidiagonals theo hướng xen kẽ:
Nhiệm vụ của bạn là lấy vectơ không được kiểm soát cùng với kích thước ma trận và xây dựng lại ma trận tương ứng. Ví dụ:
[1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3
nên nhường
[1 2 3 4
5 6 7 8
9 1 2 3]
trong khi kích thước 6, 2
sẽ cho
[1 2 6 3 1 2
5 9 4 7 8 3]
Quy tắc
Bạn có thể chọn chỉ lấy một trong các kích thước làm đầu vào. Các đầu vào riêng lẻ có thể được thực hiện theo thứ tự bất kỳ. Bạn có thể giả định rằng chiều rộng và chiều cao là dương và hợp lệ cho chiều dài vectơ đã cho.
Bạn có thể giả sử rằng các phần tử vectơ là số nguyên dương nhỏ hơn 10
.
Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm và xuất kết quả qua tham số STDOUT (hoặc thay thế gần nhất), tham số trả về hàm hoặc tham số hàm (out).
Vectơ đầu vào có thể được cung cấp trong bất kỳ định dạng chuỗi hoặc danh sách phẳng hoặc thuận tiện, rõ ràng, rõ ràng.
Ma trận đầu ra có thể ở bất kỳ định dạng chuỗi hoặc danh sách lồng nhau thuận tiện, rõ ràng, hoặc dưới dạng danh sách phẳng cùng với cả hai kích thước ma trận. (Hoặc, tất nhiên, là một loại ma trận nếu ngôn ngữ của bạn có những thứ đó.)
Luật golf tiêu chuẩn được áp dụng.
Các trường hợp thử nghiệm
Mỗi trường hợp thử nghiệm có dạng vector width height => matrix
.
[1] 1 1 => [[1]]
[1 2 3 1] 2 2 => [[1 2] [3 1]]
[1 2 3 1] 4 1 => [[1 2 3 1]]
[1 2 5 9 6 3 4 7 1 2 8 3] 3 4 => [[1 2 3] [5 6 4] [9 7 8] [1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 4 3 => [[1 2 3 4] [5 6 7 8] [9 1 2 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 6 2 => [[1 2 6 3 1 2] [5 9 4 7 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 12 1 => [[1 2 5 9 6 3 4 7 1 2 8 3]]
[1 2 5 9 6 3 4 7 1 2 8 3] 1 12 => [[1] [2] [5] [9] [6] [3] [4] [7] [1] [2] [8] [3]]
Những thách thức liên quan
- Zigzagify a Matrix (phép biến đổi nghịch đảo có phần đơn giản hơn)
- Xoay các đường chéo