Exemplo n.º 1
0
        private static void readFromConsole()
        {
            var solver = new Solver2();
            var line1 = System.Console.ReadLine().Trim().Split(' ');
            var H = Int32.Parse(line1[0]);
            var W = Int32.Parse(line1[1]);
            var fields = new String[H];
            for (var i = 0; i < H; ++i) {
                var line = System.Console.ReadLine().Trim();
                fields[i] = line;
            }
            var line2 = System.Console.ReadLine().Trim();
            var N = Int32.Parse(line2);
            var widgets = new Widget[N];
            for(var i = 0; i < N; ++i) {
                var line = System.Console.ReadLine().Trim().Split(' ');
                var S = Int32.Parse(line[0]);
                var T = Int32.Parse(line[1]);
                widgets[i] = new Widget(S, T);
            }

            var answers = solver.solve(fields, widgets);
            foreach(int answer in answers)
                System.Console.WriteLine(answer);
        }
Exemplo n.º 2
0
 private static void readFromSource()
 {
     var solver = new Solver2();
     var answers = solver.solve(new string[]{"1000", "1101", "1001", "1111"}, new Widget[]{new Widget(1, 2), new Widget(2, 3), new Widget(2, 1)});
     foreach(int answer in answers)
         System.Console.WriteLine(answer);
 }
Exemplo n.º 3
0
        public void ReturnsSolution()
        {
            var solver = new Solver2();

            var result = solver.SumEvenSequenceUpTo(4000000);

            Assert.Equal(1, result);
        }
Exemplo n.º 4
0
        public void T2(string file)
        {
            var fileInput = file.Read();
            var input     = new TerrainInput2().Parse(fileInput);

            var solution = new Solver2().Solve(input);

            file.Write(solution.ToString());
            Assert.Pass();
        }
        public void Solver2(string example)
        {
            var content = example.ReadFromFile();
            var solver  = new Solver2();
            var input   = Input.Parse(content);
            var output  = solver.Solve(input);

            Console.WriteLine($"Total Score: {output.GetScore(input):N0}");
            example.WriteToFile(output.GetOutputFormat());
            Assert.Pass();
        }
Exemplo n.º 6
0
        public ActionResult <SolveResult> Solve(int target, List <int> chosenNums)
        {
            if (chosenNums.Count == 0 || chosenNums.Count > 8)
            {
                return(BadRequest("Must provide between 1 and 8 numbers"));
            }

            var solver = new Solver2(target, chosenNums);

            return(solver.Solve());
        }
Exemplo n.º 7
0
        public void CanFindExactSolutions(int target, List <int> availableNums)
        {
            // Assemble
            var solver = new Solver2(target, availableNums);

            // Act
            var result = solver.Solve();

            // Assert
            Assert.Equal(0, result.ClosestDiff);
            Assert.NotEmpty(result.Solutions);
        }
Exemplo n.º 8
0
        public void WorksWhenSolutionIsAlreadyInAvailableNumbers()
        {
            // Assemble
            var availableNums = new List <int> {
                1, 2, 3, 4, 5, 100
            };
            var solver = new Solver2(100, availableNums);

            // Act
            var result = solver.Solve();

            // Assert
            Assert.Equal(0, result.ClosestDiff);
            Assert.NotEmpty(result.Solutions);
        }
Exemplo n.º 9
0
        public void CanFindClosestSolutions()
        {
            // Assemble
            var availableNums = new List <int> {
                2, 3, 4, 5, 8, 10
            };
            var solver = new Solver2(933, availableNums);

            // Act
            var result = solver.Solve();

            // Assert
            Assert.Equal(1, result.ClosestDiff);
            Assert.Equal(2, result.Solutions.Count);
        }
Exemplo n.º 10
0
        public void DoesntMissSimplerSolutions()
        {
            // Assemble
            var availableNums = new List <int> {
                1, 2, 3, 4, 5, 6
            };
            var solver = new Solver2(8, availableNums);

            // Act
            var result = solver.Solve();

            // Assert
            Assert.Equal(0, result.ClosestDiff);
            Assert.Contains("4 × 2 = 8", result.Solutions);
            Assert.Contains("5 + 3 = 8", result.Solutions);
        }