정수로 구성된 2 차원 배열 A와 길이 N이 주어집니다. 당신의 임무는 배열 내에서 가장 높은 총합을 산출하는 N 요소의 직선 (수평, 수직 또는 대각선)을 찾아 그 합을 반환하는 것입니다 .
예
N = 3, A =
3 3 7 9 3
2 2 10 4 1
7 7 2 5 0
2 1 4 1 3
이 배열에는 다음을 포함하여 34 개의 유효한 행이 있습니다.
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
최대 라인은
3 3 7 [9] 3
2 2 [10] 4 1
7 [7] 2 5 0
2 1 4 1 3 [7,10,9] = 26
참고 : 선이 배열의 가장자리를 감싸지 않을 수 있습니다.
입력
- X, Y> 0 인 Y에 의한 AX 2 차원 배열 A. 배열의 각 요소는 양수, 0 또는 음수 일 수있는 정수 값을 포함합니다. 원하는 경우이 배열을 다른 형식 (예 : 1D 배열 목록)으로 사용할 수 있습니다.
- max (X, Y)보다 크지 않은 단일 양의 정수 N
산출
- 배열에서 찾을 수있는 최대 선 합을 나타내는 단일 값입니다. 해당 라인의 개별 요소 나 위치를 제공 할 필요 는 없습니다 .
테스트 사례
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
)