using System.Collections.Generic;
public static void Main()
var k = Match(new[]{100,75,80,42,26,12, 10 , 10});
public static Queue<int>[] Match(int[] players)
var result = new []{new Queue<int>(),new Queue<int>()};
var scores = SplitTeam(new LinkedList<int>(players.OrderByDescending(x=>x)), result);
private static Queue<int>[] SplitTeam(LinkedList<int> scores, Queue<int>[] result)
if (!scores.Any()) return result;
if (scores.Count == 1 || (scores.Count == 2 && result[0].Count == result[1].Count))
var isWhiteBetterTeam = result[0].Sum() > result[1].Sum();
result[isWhiteBetterTeam ? 1 : 0].Enqueue(scores.First.Value);
result[isWhiteBetterTeam ? 0 : 1].Enqueue(scores.Last.Value);
var selectPlayer = result[0].Count >= result[1].Count ? 1 : 0;
result[selectPlayer].Enqueue(scores.First.Value);
result[selectPlayer].Enqueue(scores.Last.Value);
return SplitTeam(scores, result);