using System.Collections.Generic;
public static void Main()
Console.WriteLine(TheMajorSum(new List<int> {1, 2, 3, 4, 0, 0, -3, -2}));
Console.WriteLine(TheMajorSum(new List<int> {-4, -8, -12, -3, 4, 7, 1, 3, 0, 0, 0, 0}));
Console.WriteLine(TheMajorSum(new List<int> {0, 0, 0, 0, 0, 1, 2, -3}));
Console.WriteLine(TheMajorSum(new List<int> {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}));
Console.WriteLine(TheMajorSum(new List<int> {0}));
Console.WriteLine(TheMajorSum(new List<int> {1}));
Console.WriteLine(TheMajorSum(new List<int> {-1}));
Console.WriteLine(TheMajorSum(new List<int> {10, -12, 4, 0, -3, -7, -91, 45}));
Console.WriteLine(TheMajorSum(new List<int> {0, 1, 0, 1, 0, 1, 0, 1, 0}));
Console.WriteLine(TheMajorSum(new List<int> {-1, -1, -1, -1, -1, 1, 1, 1, 1, 0, 0, 0, 0}));
Console.WriteLine(TheMajorSum(new List<int> {1, 2, 3, 4, -5, -4, -3, -2, -1, 0}));
Console.WriteLine(TheMajorSum(new List<int> {0, 1, -2}));
Console.WriteLine(TheMajorSum(new List<int> {2, 0, -1}));
Console.WriteLine(TheMajorSum(new List<int> {2, 0, 0, 0, -1}));
Console.WriteLine(TheMajorSum(new List<int> {2, 0, 0, 0, 0, -1}));
private static int TheMajorSum(IEnumerable<int> values)
.GroupBy(i => i.CompareTo(0), i => i)
.Select(x => x.Max() == 0 ? x.Count() : x.Sum())
.Aggregate(0, (largest, next) => Math.Abs(next) > Math.Abs(largest) ? next : largest);