示例#1
0
        static void Main()
        {
            List <Register> registers = new List <Register>();

            string[] input    = File.ReadAllLines("Day8\\Input\\input.txt");
            int      maxValue = 0;

            foreach (string instruction in input)
            {
                Part1.ParseInstructions(instruction.Split(' '));

                Register conditionRegister = registers.FirstOrDefault(reg => reg.name == Part1.conditionRegisterName);
                Register registerToModify;
                if (registers.Exists(reg => reg.name == Part1.registerToModifyName))
                {
                    registerToModify = registers.Find(reg => reg.name == Part1.registerToModifyName);
                }
                else
                {
                    registerToModify = new Register(Part1.registerToModifyName);
                    registers.Add(registerToModify);
                }

                if (Part1.CondtionIsTrue(conditionRegister, Part1.conditionOperator, Part1.conditionValue))
                {
                    registerToModify.value = Part1.addition ? registerToModify.value + Part1.value : registerToModify.value - Part1.value;
                }

                int localMax = registers.OrderByDescending(reg => reg.value).First().value;
                if (localMax > maxValue)
                {
                    maxValue = localMax;
                }
            }

            Console.WriteLine(maxValue);
            Console.ReadLine();
        }
示例#2
0
 public static int Solve()
 {
     PrintImage(StackLayers(Part1.GetLayers(Data.EncodedImage, Data.Height, Data.Width)), Data.Height, Data.Width);
     return(0);
 }