Example #1
0
        private static int CountParentBags(ColoredBag coloredBag, ISet <ColoredBag> knownBags)
        {
            foreach (var bag in coloredBag.ParentBags.Select(relation => relation.Bag))
            {
                knownBags.Add(bag);
                CountParentBags(bag, knownBags);
            }

            return(knownBags.Count);
        }
Example #2
0
        private static int CountAmountOfChildBags(ColoredBag bag)
        {
            var count = 0;

            foreach (var relation in bag.ChildBags)
            {
                count += relation.Amount;
                count += CountAmountOfChildBags(relation.ChildBag) * relation.Amount;
            }

            return(count);
        }