protected override long ComputeResultLogic(Graph <long> input)
        {
            var maxValue   = input.AllNodes.Values.Select(n => n.Value).Max();
            var lastNode   = input.AllNodes.Single(n => n.Value.Value == maxValue);
            var totalPaths = new Dictionary <long, long>();
            var nodeValues = input.AllNodes.Select(n => n.Value.Value).ToList();

            nodeValues.Sort();
            nodeValues.Insert(0, 0);
            nodeValues.Add(nodeValues.Last() + 3);

            var countPaths = Day10Helper.ComputeTotalPaths(nodeValues.ToArray(),
                                                           totalPaths);

            return(countPaths);
        }
        protected override long ComputeResultLogic(Graph <long> input)
        {
            var differencesResult = Day10Helper.ComputeDifferences(input);

            return(differencesResult);
        }