namespace _2024; public class Day01 : ISolution { public void Run() { // Read all lines from the input file var lines = File.ReadAllLines("input/01"); // Two lists to hold the first and second integers per line var left = new List(); var right = new List(); foreach (var line in lines) { if (string.IsNullOrWhiteSpace(line)) continue; var parts = line.Split(' ', StringSplitOptions.RemoveEmptyEntries); if (parts.Length < 2) { Console.WriteLine("Bad parse"); return; } if (int.TryParse(parts[0], out var a) && int.TryParse(parts[1], out var b)) { left.Add(a); right.Add(b); } } var leftSorted = left.OrderBy(x => x).ToList(); var rightSorted = right.OrderBy(x => x).ToList(); Console.WriteLine(leftSorted.Select((t, i) => Math.Abs(t - rightSorted[i])).Sum()); Console.WriteLine(left.Sum(i => right.Count(x => x == i) * i)); } }