1 /// <summary>
2 /// Solution
3 /// 100/100
4 /// </summary>
5 /// <param name="A"></param>
6 /// <returns></returns>
7 public int solution(int[] A)
8 {
9 int[] arrStart = new int[A.Length];
10 int[] arrEnd = new int[A.Length];
11
12 for (int i = 1; i < A.Length; i++)
13 arrStart[i] = Math.Max(0, arrStart[i - 1] + A[i]);
14
15 for (int i = A.Length - 2; i >= 0; i--)
16 {
17 arrEnd[i] = Math.Max(0, arrEnd[i + 1] + A[i]);
18 }
19
20 int maxValue = 0;
21 int temp = 0;
22
23 for (int i = 1; i < A.Length - 1; i++)
24 {
25 temp = arrStart[i - 1] + arrEnd[i + 1];
26 maxValue = temp > maxValue ? temp : maxValue;
27 }
28
29 return maxValue;
30 }