Пример #1
0
    public (Disc disc, int targetWeight) GetUnbalancedChild()
    {
        var groups          = ChildDiscs.GroupBy(x => x.GetTotalWeight());
        var targetWeight    = groups.First(x => x.Count() > 1).Key;
        var unbalancedChild = groups.First(x => x.Count() == 1).First();

        return(unbalancedChild, targetWeight);
    }
Пример #2
0
    public int GetTotalWeight()
    {
        var childSum = ChildDiscs.Sum(x => x.GetTotalWeight());

        return(childSum + Weight);
    }
Пример #3
0
    public bool IsBalanced()
    {
        var groups = ChildDiscs.GroupBy(x => x.GetTotalWeight());

        return(groups.Count() == 1);
    }
Пример #4
0
 public void AddChildDiscs(IEnumerable <Disc> discs)
 {
     ChildDiscs = ChildNames.Select(x => discs.First(y => y.Name == x)).ToList();
     ChildDiscs.ForEach(x => x.Parent = this);
 }