Lấy cảm hứng từ câu hỏi Stack Overflow này .
Các thách thức
Đầu vào
Một mảng các ma trận vuông chứa các số nguyên không âm.
Đầu ra
Một ma trận vuông được xây dựng từ các ma trận đầu vào như sau.
Đặt là kích thước của mỗi ma trận đầu vào và là số lượng ma trận đầu vào.
Để rõ ràng, hãy xem xét các ma trận đầu vào ví dụ sau ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Bắt đầu với ma trận đầu vào.
- Di chuyển ma trận đầu vào thứ hai N 1 bước xuống và N 1 bước sang phải, sao cho mục trên bên trái của nó trùng với mục dưới bên phải của mục trước.
Hãy tưởng tượng ma trận thứ hai, dịch chuyển như thể nó được xếp chồng lên nhau trên ma trận thứ nhất. Tính tổng hai giá trị tại mục trùng hợp. Viết các giá trị khác và điền vào các mục còn lại
0
để có ma trận . Với đầu vào ví dụ, kết quả cho đến nay là3 5 0 4 16 8 0 12 11
Đối với mỗi ma trận đầu vào còn lại, hãy sắp xếp nó sao cho phía trên bên trái của nó trùng với phía dưới bên phải của ma trận kết quả tích lũy cho đến nay. Trong ví dụ, bao gồm ma trận đầu vào thứ ba cho
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
Đầu ra là ma trận thu được sau khi bao gồm ma trận đầu vào cuối cùng.
Các quy tắc bổ sung và làm rõ
- và là các số nguyên dương.
- Bạn có thể tùy chọn lấy và làm đầu vào bổ sung.
- Đầu vào và đầu ra có thể được thực hiện bằng bất kỳ phương tiện hợp lý . Định dạng của họ là linh hoạt như bình thường.
- Các chương trình hoặc chức năng được cho phép, trong bất kỳ ngôn ngữ lập trình . Sơ hở tiêu chuẩn bị cấm .
- Mã ngắn nhất trong byte thắng.
Các trường hợp thử nghiệm:
Trong mỗi trường hợp, ma trận đầu vào được hiển thị đầu tiên, sau đó là đầu ra.
, :
3 5 4 10 6 8 12 11 2 0 9 1 3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
, :
3 5 4 10 3 5 4 10
, :
4 7 23 5 39
, :
11 11 8 6 8 12 11 0 4 4 1 13 9 19 11 13 4 2 11 11 8 0 0 6 8 12 0 0 11 0 8 1 13 0 0 9 19 11 0 0 13 4 2
, :
14 13 10 0 13 20 21 3 9 22 0 8 17 3 19 16 14 13 0 0 0 10 13 20 0 0 0 21 12 22 0 0 0 0 25 3 0 0 0 19 16