Bạn sẽ được cung cấp một mảng 2 chiều A gồm các số nguyên và độ dài N. Nhiệm vụ của bạn là tìm trong mảng đường thẳng (ngang, dọc hoặc chéo) của các phần tử N mang lại tổng tiền cao nhất và trả về tổng đó .
Thí dụ
N = 3, A =
3 3 7 9 3
2 2 10 4 1
7 7 2 5 0
2 1 4 1 3
Mảng này có 34 dòng hợp lệ, bao gồm
Vertical
[3] 3 7 9 3
[2] 2 10 4 1
[7] 7 2 5 0
2 1 4 1 3 [3,2,7] = 12
Horizontal
3 3 7 9 3
2 2 10 4 1
7 7 [2] [5] [0]
2 1 4 1 3 [2,5,0] = 7
Diagonal
3 3 [7] 9 3
2 2 10 [4] 1
7 7 2 5 [0]
2 1 4 1 3 [7,4,0] = 11
Dòng tối đa là
3 3 7 [9] 3
2 2 [10] 4 1
7 [7] 2 5 0
2 1 4 1 3 [7,10,9] = 26
Lưu ý: các dòng có thể không bao quanh các cạnh của mảng.
Đầu vào
- AX theo Y 2-D mảng A, với X, Y> 0. Mỗi phần tử của mảng chứa một giá trị nguyên có thể là dương, bằng 0 hoặc âm. Bạn có thể chấp nhận mảng này ở định dạng thay thế (ví dụ: danh sách các mảng 1-D) nếu bạn muốn.
- Một số nguyên N dương duy nhất, không lớn hơn max (X, Y).
Đầu ra
- Một giá trị đại diện cho tổng dòng tối đa có thể được tìm thấy trong mảng. Lưu ý rằng bạn không cần cung cấp các yếu tố riêng lẻ của dòng đó hoặc vị trí của nó.
Các trường hợp thử nghiệm
N = 4, A =
-88 4 -26 14 -90
-48 17 -45 -70 85
22 -52 87 -23 22
-20 -68 -51 -61 41
Output = 58
N = 4, A =
9 4 14 7
6 15 1 12
3 10 8 13
16 5 11 2
Output = 34
N = 1, A =
-2
Output = -2
N = 3, A =
1 2 3 4 5
Output = 12
N = 3, A =
-10 -5 4
-3 0 -7
-11 -3 -2
Output = -5
[[-10, -5, 4],[-3, 0, -7],[-11,-3,-2]]
->-5
(4 + -7 + -2
)