public class Solution { public string PredictPartyVictory(string senate) { var radiant = new Queue(); var dire = new Queue(); for (var i = 0; i < senate.Length; ++i) { (senate[i] == 'R' ? radiant : dire).Enqueue(i); } while (radiant.Count > 0 && dire.Count > 0) { var r = radiant.Dequeue(); var d = dire.Dequeue(); if (r < d) { radiant.Enqueue(senate.Length + r); } else { dire.Enqueue(senate.Length + d); } } if (radiant.Count > 0) { return "Radiant"; } return "Dire"; } }