| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System.Diagnostics;
- using Day8;
- if (args.Any(a => a == "--debug"))
- {
- Console.WriteLine("DEBUG");
- Console.WriteLine(Debugger.Launch());
- }
- if (args.Length < 1)
- {
- Console.WriteLine("Requires 1 args: inputFileName");
- return -1;
- }
- var inputFile = args[0];
- var parser = new Parser();
- var mapData = parser.Parse(inputFile);
- var steps = mapData.Walk();
- Console.WriteLine();
- Console.WriteLine($"Steps: {steps}");
- Console.WriteLine();
- var cycles = mapData.MultiWalk();
- Console.WriteLine();
- var factors = new HashSet<long>();
- foreach (var cycle in cycles)
- {
- var cycleFactors = Primes.Factorize(cycle).ToList();
- Console.WriteLine($"{cycle} => {string.Join(" * ", cycleFactors)}");
- foreach (var f in cycleFactors)
- {
- factors.Add(f);
- }
- }
- Console.WriteLine($"LCM => {string.Join(" * ", factors)} = {factors.Aggregate(1L, (acc, x) => acc * x)}");
- return 0;
|