Exemplo n.º 1
0
        protected override object ResolveFirstPart(string[] input)
        {
            BoardsContainer boardsContainer = GetBoards(input);
            MatchCollection draws           = Regex.Matches(input[0], @"(\d+)");

            for (int i = 0; i < draws.Count; i++)
            {
                int value = int.Parse(draws[i].Value);
                boardsContainer.MarkBoards(value);
                List <Check[, ]> winningBoards = boardsContainer.GetWinningBoards();

                if (winningBoards.Count != 0)
                {
                    return(boardsContainer.GetSumOfAllMarkedValues(winningBoards[0]) * value);
                }
            }

            return(-1);
        }
Exemplo n.º 2
0
        protected override object ResolveSecondPart(string[] input)
        {
            BoardsContainer boardsContainer       = GetBoards(input);
            MatchCollection draws                 = Regex.Matches(input[0], @"(\d+)");
            int             lastWinningBoardValue = 0;

            for (int i = 0; i < draws.Count; i++)
            {
                int value = int.Parse(draws[i].Value);
                boardsContainer.MarkBoards(value);
                List <Check[, ]> winningBoards = boardsContainer.GetWinningBoards();

                for (int j = 0; j < winningBoards.Count; j++)
                {
                    lastWinningBoardValue = boardsContainer.GetSumOfAllMarkedValues(winningBoards[j]) * value;
                    boardsContainer.Boards.Remove(winningBoards[j]);
                }
            }

            return(lastWinningBoardValue);
        }