コード例 #1
0
        public override string Part1()
        {
            codeList = File.ReadAllText("Input/7.txt").Split(',').Select(s => int.Parse(s));
            int highestResult = 0;

            for (int a = 0; a < 5; a++)
            {
                for (int b = 0; b < 5; b++)
                {
                    for (int c = 0; c < 5; c++)
                    {
                        for (int d = 0; d < 5; d++)
                        {
                            for (int e = 0; e < 5; e++)
                            {
                                int[] inputs  = new int[2];
                                int[] signals = new int[] { a, b, c, d, e };
                                if (signals.Distinct().Count() != 5)
                                {
                                    continue;
                                }

                                int result = 0;
                                for (int i = 0; i < 5; i++)
                                {
                                    inputs[0] = signals[i];
                                    inputs[1] = result;
                                    ICVM vm = new ICVM(codeList.ToArray());
                                    vm.AddInputs(inputs);
                                    result = vm.GetCodeResult(out bool stop);
                                }

                                if (result > highestResult)
                                {
                                    highestResult = result;
                                }
                            }
                        }
                    }
                }
            }

            return(highestResult.ToString());
        }