using System;
class Program
{
public static int max_subarray_sum(int[] arr) {
int max_sum = 0;
int max_till_i = 0;
for (int i = 0; i < arr.Length; i++) {
max_till_i = max_till_i + arr[i];
max_till_i = Math.Max(max_till_i, 0);
max_sum = Math.Max(max_sum, max_till_i);
}
return max_sum;
}
static void Main()
{
int[] arr = { 1, -2, 2, -3, 4, -1, -1, 2, 3, -5, 4 }; // 4 - 1 - 1 + 2 + 3 = 7
Console.Write(max_subarray_sum(arr));
}
}
/*
run:
7
*/