using Day2; if (args.Length < 2) { Console.WriteLine("Requires 2 args: inputFileName expected"); return -1; } var inputFile = args[0]; var numbers = args[1].Split(',').Select(x => int.Parse(x)).ToList(); if (numbers.Count < 3) { Console.WriteLine("Requires 3 expected values R,G,B"); return -1; } var expected = new SampleSet(numbers[0], numbers[1], numbers[2]); var parser = new GameParser(); var sum = 0; foreach (var game in parser.Parse(inputFile)) { //game.Print(); var pass = true; foreach (var set in game.Samples) { if (set.Red > expected.Red || set.Green > expected.Green || set.Blue > expected.Blue) { pass = false; break; } } if (pass) { //Console.WriteLine("PASS"); sum += game.Id; } else { //Console.WriteLine("FAIL"); } Console.WriteLine(); } Console.WriteLine(); Console.WriteLine($"Part 1 sum: {sum}"); Console.WriteLine(); sum = 0; foreach (var game in parser.Parse(inputFile)) { game.Print(); var max = game.Samples.Aggregate(new SampleSet(0, 0, 0), (prev, current) => new SampleSet( Math.Max(prev.Red, current.Red), Math.Max(prev.Green, current.Green), Math.Max(prev.Blue, current.Blue) )); Console.WriteLine($"Max: {max.Power()}"); max.Print(); sum += max.Power(); Console.WriteLine(); } Console.WriteLine(); Console.WriteLine($"Part 2 sum of powers: {sum}"); return 0;