my advent of code solutions
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

make ProcessInput virtual instead of abstract and remove empty method bodies

+383 -485
+50 -1
AOC.Common/Day.cs
··· 2 2 3 3 namespace AOC.Common; 4 4 5 + /// <summary> 6 + /// Base class for a day's solution. Provides stopwatch timing and command line parsing. 7 + /// </summary> 8 + /// <param name="year"></param> 9 + /// <param name="day"></param> 10 + /// <param name="puzzleName"></param> 5 11 public abstract class Day(int year, int day, string puzzleName) 6 12 { 13 + /// <summary> 14 + /// The year this Day is from. 15 + /// </summary> 7 16 public int Year { get; } = year; 17 + /// <summary> 18 + /// What day it is. 19 + /// </summary> 8 20 public int DayNumber { get; } = day; 21 + /// <summary> 22 + /// The name of the puzzle. 23 + /// </summary> 9 24 public string PuzzleName { get; } = puzzleName; 10 25 26 + /// <summary> 27 + /// Enumerable of all lines in the input file. 28 + /// </summary> 11 29 protected IEnumerable<string> Input => File.ReadLines(FileName); 30 + 31 + /// <summary> 32 + /// Input file as a <see cref="ReadOnlySpan">span</see>. 33 + /// </summary> 34 + protected ReadOnlySpan<char> InputBytes => File.ReadAllText(FileName); 12 35 36 + /// <summary> 37 + /// Path to the input file in the format of "inputYEAR/dayNN.in". 38 + /// </summary> 13 39 public string FileName => 14 40 Path.Combine(AppDomain.CurrentDomain.BaseDirectory, 15 41 $"input{Year}/{(UseTestInput ? "test" : "day")}{DayNumber,2:00}.in"); 16 42 43 + /// <summary> 44 + /// A toggle to read the test input file instead of the real input. 45 + /// </summary> 17 46 public static bool UseTestInput { get; set; } 18 47 private readonly Stopwatch _stopwatch = new(); 19 48 20 - public abstract void ProcessInput(); 49 + /// <summary> 50 + /// Initial parsing of the puzzle input. 51 + /// </summary> 52 + public virtual void ProcessInput() 53 + { 54 + } 55 + 56 + /// <summary> 57 + /// Solve Part 1. 58 + /// </summary> 59 + /// <returns>object whose string representation will be the answer</returns> 21 60 public abstract object Part1(); 61 + /// <summary> 62 + /// Solve Part 2. 63 + /// </summary> 64 + /// <returns>object whose string representation will be the answer</returns> 22 65 public abstract object Part2(); 23 66 24 67 private void PrintProcessInput() ··· 63 106 public int? PartNumber { get; set; } 64 107 } 65 108 109 + /// <summary> 110 + /// Parse the command line args and run the appropriate puzzles. 111 + /// </summary> 112 + /// <param name="args"></param> 113 + /// <exception cref="ApplicationException"></exception> 114 + /// <exception cref="ArgumentOutOfRangeException"></exception> 66 115 public static void RunFromArgs(string[] args) 67 116 { 68 117 var days = Assembly.GetEntryAssembly()?.GetTypes()
+1
AOC.Test/Test2023.cs
··· 18 18 [DataRow(typeof(Day02), "8", "2286")] 19 19 [DataRow(typeof(Day03), "4361", "467835")] 20 20 [DataRow(typeof(Day04), "13", "30")] 21 + // [DataRow(typeof(Day05), "35", "")] 21 22 public void CheckTestInputs(Type dayType, string part1, string part2) => 22 23 Common.CheckDay(dayType, part1, part2, true); 23 24 }
-4
AOC2015/Day01.cs
··· 2 2 3 3 public class Day01() : Day(2015, 1, "Not Quite Lisp") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() 10 6 { 11 7 var floor = 0;
-4
AOC2015/Day03.cs
··· 5 5 /// </summary> 6 6 public sealed class Day03() : Day(2015, 3, "Perfectly Spherical Houses in a Vacuum") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() 13 9 { 14 10 int x = 0, y = 0;
-4
AOC2015/Day06.cs
··· 11 11 [GeneratedRegex(@"(\d+),(\d+) through (\d+),(\d+)")] 12 12 private static partial Regex Coords(); 13 13 14 - public override void ProcessInput() 15 - { 16 - } 17 - 18 14 public override object Part1() 19 15 { 20 16 foreach (var line in Input)
+1 -5
AOC2015/Day07.cs
··· 8 8 private readonly Dictionary<string, Func<ushort>> _actions = []; 9 9 private readonly Dictionary<string, ushort> _wires = []; 10 10 11 - public override void ProcessInput() 12 - { 13 - } 14 - 15 11 public override object Part1() 16 12 { 17 13 ProcessInstructions(); ··· 116 112 _actions["b"] = () => p1; 117 113 return _actions["a"](); 118 114 } 119 - } 115 + }
-4
AOC2015/Day08.cs
··· 8 8 [GeneratedRegex("""^"(\\x..|\\.|.)*"$""")] 9 9 private static partial Regex CharSet(); 10 10 11 - public override void ProcessInput() 12 - { 13 - } 14 - 15 11 private static int CharCount(string arg) => CharSet().Match(arg).Groups[1].Captures.Count; 16 12 private static int EncodedCount(string arg) => 2 + arg.Sum(c => c is '\\' or '\"' ? 2 : 1); 17 13
-4
AOC2015/Day12.cs
··· 11 11 [GeneratedRegex(@"-?\d+")] 12 12 private static partial Regex Digits(); 13 13 14 - public override void ProcessInput() 15 - { 16 - } 17 - 18 14 public override object Part1() => 19 15 Digits().Matches(Input.First()).Sum(n => int.Parse(n.Value)); 20 16
-4
AOC2015/Day16.cs
··· 8 8 [GeneratedRegex(@": \d\d")] 9 9 private static partial Regex TwoDigitsRegex(); 10 10 11 - public override void ProcessInput() 12 - { 13 - } 14 - 15 11 private IEnumerable<string> Common() => 16 12 Input 17 13 .Select(i => TwoDigitsRegex().Replace(i, ": 9"))
+1 -5
AOC2015/Day23.cs
··· 5 5 /// </summary> 6 6 public sealed class Day23() : Day(2015, 23, "Opening the Turing Lock") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private int RunOperations(int initialA = 0, int initialB = 0) 13 9 { 14 10 Dictionary<char, int> registers = new() ··· 53 49 public override object Part1() => RunOperations(); 54 50 55 51 public override object Part2() => RunOperations(1); 56 - } 52 + }
-4
AOC2015/Day24.cs
··· 5 5 /// </summary> 6 6 public sealed class Day24() : Day(2015, 24, "It Hangs in the Balance") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day02.cs
··· 5 5 /// </summary> 6 6 public sealed class Day02() : Day(2016, 2, "Bathroom Security") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() 13 9 { 14 10 List<int> answer = [];
+1 -5
AOC2016/Day05.cs
··· 7 7 /// </summary> 8 8 public sealed class Day05() : Day(2016, 5, "How About a Nice Game of Chess?") 9 9 { 10 - public override void ProcessInput() 11 - { 12 - } 13 - 14 10 public override object Part1() 15 11 { 16 12 var s = Input.First(); ··· 55 51 56 52 return new string(answer); 57 53 } 58 - } 54 + }
-4
AOC2016/Day07.cs
··· 11 11 [GeneratedRegex(@"\[(\w*)\]")] 12 12 private static partial Regex InsideBracketsRegex(); 13 13 14 - public override void ProcessInput() 15 - { 16 - } 17 - 18 14 private static bool SupportsTls(string input) => 19 15 !InsideBracketsRegex().Matches(input).Any(m => CheckAbba(m.ValueSpan)) && 20 16 BracketsRegex().Split(input).Any(v => CheckAbba(v));
-4
AOC2016/Day08.cs
··· 5 5 /// </summary> 6 6 public sealed class Day08() : Day(2016, 8, "Two-Factor Authentication") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static string PrintGrid(char[,] screen) 13 9 { 14 10 var sb = new StringBuilder();
+1 -4
AOC2016/Day09.cs
··· 5 5 /// </summary> 6 6 public sealed class Day09() : Day(2016, 9, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 8 + 12 9 public override object Part1() => ""; 13 10 14 11 public override object Part2() => "";
-4
AOC2016/Day10.cs
··· 5 5 /// </summary> 6 6 public sealed class Day10() : Day(2016, 10, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day11.cs
··· 5 5 /// </summary> 6 6 public sealed class Day11() : Day(2016, 11, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day12.cs
··· 5 5 /// </summary> 6 6 public sealed class Day12() : Day(2016, 12, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day13.cs
··· 5 5 /// </summary> 6 6 public sealed class Day13() : Day(2016, 13, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day14.cs
··· 5 5 /// </summary> 6 6 public sealed class Day14() : Day(2016, 14, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day15.cs
··· 5 5 /// </summary> 6 6 public sealed class Day15() : Day(2016, 15, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day16.cs
··· 5 5 /// </summary> 6 6 public sealed class Day16() : Day(2016, 16, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day17.cs
··· 5 5 /// </summary> 6 6 public sealed class Day17() : Day(2016, 17, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day18.cs
··· 5 5 /// </summary> 6 6 public sealed class Day18() : Day(2016, 18, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day19.cs
··· 5 5 /// </summary> 6 6 public sealed class Day19() : Day(2016, 19, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day20.cs
··· 5 5 /// </summary> 6 6 public sealed class Day20() : Day(2016, 20, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day21.cs
··· 5 5 /// </summary> 6 6 public sealed class Day21() : Day(2016, 21, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day22.cs
··· 5 5 /// </summary> 6 6 public sealed class Day22() : Day(2016, 22, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day23.cs
··· 5 5 /// </summary> 6 6 public sealed class Day23() : Day(2016, 23, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day24.cs
··· 5 5 /// </summary> 6 6 public sealed class Day24() : Day(2016, 24, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2016/Day25.cs
··· 5 5 /// </summary> 6 6 public sealed class Day25() : Day(2016, 25, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day01.cs
··· 5 5 /// </summary> 6 6 public sealed class Day01() : Day(2017, 1, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day02.cs
··· 5 5 /// </summary> 6 6 public sealed class Day02() : Day(2017, 2, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day03.cs
··· 5 5 /// </summary> 6 6 public sealed class Day03() : Day(2017, 3, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day04.cs
··· 5 5 /// </summary> 6 6 public sealed class Day04() : Day(2017, 4, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day05.cs
··· 5 5 /// </summary> 6 6 public sealed class Day05() : Day(2017, 5, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day06.cs
··· 5 5 /// </summary> 6 6 public sealed class Day06() : Day(2017, 6, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day07.cs
··· 5 5 /// </summary> 6 6 public sealed class Day07() : Day(2017, 7, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day08.cs
··· 5 5 /// </summary> 6 6 public sealed class Day08() : Day(2017, 8, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day09.cs
··· 5 5 /// </summary> 6 6 public sealed class Day09() : Day(2017, 9, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day10.cs
··· 5 5 /// </summary> 6 6 public sealed class Day10() : Day(2017, 10, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day11.cs
··· 5 5 /// </summary> 6 6 public sealed class Day11() : Day(2017, 11, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day12.cs
··· 5 5 /// </summary> 6 6 public sealed class Day12() : Day(2017, 12, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day13.cs
··· 5 5 /// </summary> 6 6 public sealed class Day13() : Day(2017, 13, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day14.cs
··· 5 5 /// </summary> 6 6 public sealed class Day14() : Day(2017, 14, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day15.cs
··· 5 5 /// </summary> 6 6 public sealed class Day15() : Day(2017, 15, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day16.cs
··· 5 5 /// </summary> 6 6 public sealed class Day16() : Day(2017, 16, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day17.cs
··· 5 5 /// </summary> 6 6 public sealed class Day17() : Day(2017, 17, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day18.cs
··· 5 5 /// </summary> 6 6 public sealed class Day18() : Day(2017, 18, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day19.cs
··· 5 5 /// </summary> 6 6 public sealed class Day19() : Day(2017, 19, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day20.cs
··· 5 5 /// </summary> 6 6 public sealed class Day20() : Day(2017, 20, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day21.cs
··· 5 5 /// </summary> 6 6 public sealed class Day21() : Day(2017, 21, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day22.cs
··· 5 5 /// </summary> 6 6 public sealed class Day22() : Day(2017, 22, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2017/Day23.cs
··· 5 5 /// </summary> 6 6 public sealed class Day23() : Day(2017, 23, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
+1 -5
AOC2017/Day24.cs
··· 5 5 /// </summary> 6 6 public sealed class Day24() : Day(2017, 24, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 - public override object Part1() => ""; 8 + public override object Part1() => ""; 13 9 14 10 public override object Part2() => ""; 15 11 }
-4
AOC2017/Day25.cs
··· 5 5 /// </summary> 6 6 public sealed class Day25() : Day(2017, 25, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day01.cs
··· 5 5 /// </summary> 6 6 public sealed class Day01() : Day(2018, 1, "Chronal Calibration") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => Input.Select(int.Parse).Sum(); 13 9 14 10 public override object Part2()
+1 -5
AOC2018/Day02.cs
··· 5 5 /// </summary> 6 6 public sealed class Day02() : Day(2018, 2, "Inventory Management System") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static bool HasNChars(string line, int count) 13 9 { 14 10 for (var i = 'a'; i <= 'z'; i++) ··· 31 27 32 28 throw new("Correct IDs not found"); 33 29 } 34 - } 30 + }
-4
AOC2018/Day04.cs
··· 5 5 /// </summary> 6 6 public sealed class Day04() : Day(2018, 4, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day05.cs
··· 5 5 /// </summary> 6 6 public sealed class Day05() : Day(2018, 5, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
+1 -5
AOC2018/Day06.cs
··· 5 5 /// </summary> 6 6 public sealed class Day06() : Day(2018, 6, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 - public override object Part1() => ""; 8 + public override object Part1() => ""; 13 9 14 10 public override object Part2() => ""; 15 11 }
-4
AOC2018/Day07.cs
··· 5 5 /// </summary> 6 6 public sealed class Day07() : Day(2018, 7, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day08.cs
··· 5 5 /// </summary> 6 6 public sealed class Day08() : Day(2018, 8, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day09.cs
··· 5 5 /// </summary> 6 6 public sealed class Day09() : Day(2018, 9, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day10.cs
··· 5 5 /// </summary> 6 6 public sealed class Day10() : Day(2018, 10, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
+1 -5
AOC2018/Day11.cs
··· 5 5 /// </summary> 6 6 public sealed class Day11() : Day(2018, 11, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 - public override object Part1() => ""; 8 + public override object Part1() => ""; 13 9 14 10 public override object Part2() => ""; 15 11 }
-4
AOC2018/Day12.cs
··· 5 5 /// </summary> 6 6 public sealed class Day12() : Day(2018, 12, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day13.cs
··· 5 5 /// </summary> 6 6 public sealed class Day13() : Day(2018, 13, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day14.cs
··· 5 5 /// </summary> 6 6 public sealed class Day14() : Day(2018, 14, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day15.cs
··· 5 5 /// </summary> 6 6 public sealed class Day15() : Day(2018, 15, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day16.cs
··· 5 5 /// </summary> 6 6 public sealed class Day16() : Day(2018, 16, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day17.cs
··· 5 5 /// </summary> 6 6 public sealed class Day17() : Day(2018, 17, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day18.cs
··· 5 5 /// </summary> 6 6 public sealed class Day18() : Day(2018, 18, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day19.cs
··· 5 5 /// </summary> 6 6 public sealed class Day19() : Day(2018, 19, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day20.cs
··· 5 5 /// </summary> 6 6 public sealed class Day20() : Day(2018, 20, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
+1 -5
AOC2018/Day21.cs
··· 5 5 /// </summary> 6 6 public sealed class Day21() : Day(2018, 21, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 - public override object Part1() => ""; 8 + public override object Part1() => ""; 13 9 14 10 public override object Part2() => ""; 15 11 }
-4
AOC2018/Day22.cs
··· 5 5 /// </summary> 6 6 public sealed class Day22() : Day(2018, 22, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day23.cs
··· 5 5 /// </summary> 6 6 public sealed class Day23() : Day(2018, 23, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day24.cs
··· 5 5 /// </summary> 6 6 public sealed class Day24() : Day(2018, 24, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2018/Day25.cs
··· 5 5 /// </summary> 6 6 public sealed class Day25() : Day(2018, 25, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2019/Day18.cs
··· 2 2 3 3 public sealed class Day18() : Day(2019, 18, "Many-Worlds Interpretation") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() => ""; 10 6 11 7 public override object Part2() => "";
-4
AOC2019/Day20.cs
··· 2 2 3 3 public sealed class Day20() : Day(2019, 20, "Donut Maze") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() => ""; 10 6 11 7 public override object Part2() => "";
+2 -16
AOC2019/Day21.cs
··· 1 1 namespace AOC2019; 2 2 3 - public sealed class Day21 : Day 3 + public sealed class Day21() : Day(2019, 21, "Springdroid Adventure") 4 4 { 5 - private readonly IntCodeVM _vm; 6 - 7 - public Day21() : base(2019, 21, "Springdroid Adventure") => 8 - _vm = new(Input.First()); 9 - 10 - public override void ProcessInput() 11 - { 12 - } 13 - 14 - public override object Part1() 15 - { 16 - _vm.Reset(); 17 - var halt = _vm.Run(); 18 - return ""; 19 - } 5 + public override object Part1() => ""; 20 6 21 7 public override object Part2() => ""; 22 8 }
-4
AOC2019/Day22.cs
··· 2 2 3 3 public sealed class Day22() : Day(2019, 22, "Slam Shuffle") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() => ""; 10 6 11 7 public override object Part2() => "";
-4
AOC2019/Day23.cs
··· 2 2 3 3 public sealed class Day23() : Day(2019, 23, "Category Six") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() 10 6 { 11 7 var vms = Enumerable.Range(0, 50)
-4
AOC2019/Day24.cs
··· 2 2 3 3 public sealed class Day24() : Day(2019, 24, "Planet of Discord") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() => ""; 10 6 11 7 public override object Part2() => "";
-4
AOC2019/Day25.cs
··· 2 2 3 3 public sealed class Day25() : Day(2019, 25, "Cryostasis") 4 4 { 5 - public override void ProcessInput() 6 - { 7 - } 8 - 9 5 public override object Part1() => ""; 10 6 11 7 public override object Part2() => "";
+17 -23
AOC2020/Day11.cs
··· 5 5 /// </summary> 6 6 public sealed class Day11() : Day(2020, 11, "Seating System") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() 13 9 { 14 10 var prev = new LifeGame(Input); ··· 73 69 { 74 70 var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() }; 75 71 for (var y = 0; y < _h; y++) 76 - for (var x = 0; x < _w; x++) 77 - next.Grid[y][x] = Grid[y][x] switch 78 - { 79 - 'L' when CountAdjacent(y, x) == 0 => '#', 80 - '#' when CountAdjacent(y, x) >= 4 => 'L', 81 - _ => Grid[y][x] 82 - }; 72 + for (var x = 0; x < _w; x++) 73 + next.Grid[y][x] = Grid[y][x] switch 74 + { 75 + 'L' when CountAdjacent(y, x) == 0 => '#', 76 + '#' when CountAdjacent(y, x) >= 4 => 'L', 77 + _ => Grid[y][x] 78 + }; 83 79 84 80 // next.PrintBoard(); 85 81 return next; ··· 91 87 private int CountAdjacent(int y, int x) => 92 88 new[] 93 89 { 94 - At(y - 1, x - 1), At(y - 1, x + 0), At(y - 1, x + 1), 95 - At(y + 0, x - 1), At(y + 0, x + 1), 90 + At(y - 1, x - 1), At(y - 1, x + 0), At(y - 1, x + 1), At(y + 0, x - 1), At(y + 0, x + 1), 96 91 At(y + 1, x - 1), At(y + 1, x + 0), At(y + 1, x + 1) 97 92 }.Count(c => c == '#'); 98 93 ··· 100 95 { 101 96 var next = new LifeGame { _h = _h, _w = _w, Grid = Grid.Select(s => s.ToArray()).ToArray() }; 102 97 for (var y = 0; y < _h; y++) 103 - for (var x = 0; x < _w; x++) 104 - next.Grid[y][x] = Grid[y][x] switch 105 - { 106 - 'L' when CanSee(y, x) == 0 => '#', 107 - '#' when CanSee(y, x) >= 5 => 'L', 108 - _ => Grid[y][x] 109 - }; 98 + for (var x = 0; x < _w; x++) 99 + next.Grid[y][x] = Grid[y][x] switch 100 + { 101 + 'L' when CanSee(y, x) == 0 => '#', 102 + '#' when CanSee(y, x) >= 5 => 'L', 103 + _ => Grid[y][x] 104 + }; 110 105 111 106 // next.PrintBoard(); 112 107 return next; ··· 115 110 private int CanSee(int y, int x) => 116 111 new[] 117 112 { 118 - TraceRay(y, x, -1, -1), TraceRay(y, x, -1, +0), TraceRay(y, x, -1, +1), 119 - TraceRay(y, x, +0, -1), TraceRay(y, x, +0, +1), 120 - TraceRay(y, x, +1, -1), TraceRay(y, x, +1, +0), TraceRay(y, x, +1, +1) 113 + TraceRay(y, x, -1, -1), TraceRay(y, x, -1, +0), TraceRay(y, x, -1, +1), TraceRay(y, x, +0, -1), 114 + TraceRay(y, x, +0, +1), TraceRay(y, x, +1, -1), TraceRay(y, x, +1, +0), TraceRay(y, x, +1, +1) 121 115 }.Count(c => c == '#'); 122 116 123 117 private char TraceRay(int y, int x, int dy, int dx)
-4
AOC2020/Day12.cs
··· 5 5 /// </summary> 6 6 public sealed class Day12() : Day(2020, 12, "Rain Risk") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static void Swap(ref int x, ref int y) => (y, x) = (x, y); 13 9 14 10 private (int x, int y, int sx, int sy) ProcessInstructions()
-4
AOC2020/Day14.cs
··· 5 5 /// </summary> 6 6 public sealed class Day14() : Day(2020, 14, "Docking Data") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static readonly char[] SquareBrackets = ['[', ']']; 13 9 private static readonly char[] BracketsAndEquals = [.. SquareBrackets, '=']; 14 10
-4
AOC2020/Day20.cs
··· 8 8 [GeneratedRegex("(?<=#.{77})#.{4}#{2}.{4}#{2}.{4}#{3}(?=.{77}#.{2}#.{2}#.{2}#.{2}#.{2}#)")] 9 9 private static partial Regex MonsterRegex(); 10 10 11 - public override void ProcessInput() 12 - { 13 - } 14 - 15 11 public override object Part1() 16 12 { 17 13 var puzzlePieces = ParsePiecesFromInput(Input.ToArray());
-4
AOC2020/Day25.cs
··· 5 5 /// </summary> 6 6 public sealed class Day25() : Day(2020, 25, "Combo Breaker") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static long Transform(long subject, int loopSize) 13 9 { 14 10 var value = 1L;
-4
AOC2021/Day02.cs
··· 5 5 /// </summary> 6 6 public sealed class Day02() : Day(2021, 2, "Dive!") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() 13 9 { 14 10 int horiz = 0, depth = 0;
-4
AOC2021/Day05.cs
··· 5 5 /// </summary> 6 6 public sealed partial class Day05() : Day(2021, 5, "Hydrothermal Venture") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private int Solve(bool diagonals = false) => 13 9 Input 14 10 .Select(s => NonDigits().Split(s).Select(int.Parse).ToList())
-4
AOC2021/Day08.cs
··· 9 9 "abcdefg".ToCharArray().Permute().Select(m => m.ToArray()).ToList(); 10 10 private static readonly int[] SearchValues = { 2, 3, 4, 7 }; 11 11 12 - public override void ProcessInput() 13 - { 14 - } 15 - 16 12 private static int MatchDigit(string lit) => 17 13 lit switch 18 14 {
+1 -5
AOC2022/Day03.cs
··· 5 5 /// </summary> 6 6 public sealed class Day03() : Day(2022, 3, "Rucksack Reorganization") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => 13 9 Input.Sum(rucksack => RankItem(rucksack.Chunk(rucksack.Length / 2).Aggregate<IEnumerable<char>>((a, b) => a.Intersect(b)).Single())); 14 10 ··· 16 12 Input.Chunk(3).Sum(group => RankItem(group.Aggregate<IEnumerable<char>>((a, b) => a.Intersect(b)).Single())); 17 13 18 14 private static int RankItem(char item) => item - (char.IsUpper(item) ? '&' : '`'); 19 - } 15 + }
-4
AOC2022/Day16.cs
··· 5 5 /// </summary> 6 6 public sealed class Day16() : Day(2022, 16, "Proboscidea Volcanium") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day17.cs
··· 5 5 /// </summary> 6 6 public sealed class Day17() : Day(2022, 17, "Pyroclastic Flow") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day18.cs
··· 5 5 /// </summary> 6 6 public sealed class Day18() : Day(2022, 18, "Boiling Boulders") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day19.cs
··· 5 5 /// </summary> 6 6 public sealed class Day19() : Day(2022, 19, "Not Enough Minerals") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day20.cs
··· 5 5 /// </summary> 6 6 public sealed class Day20() : Day(2022, 20, "Grove Positioning System") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day21.cs
··· 5 5 /// </summary> 6 6 public sealed class Day21() : Day(2022, 21, "Monkey Math") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day22.cs
··· 5 5 /// </summary> 6 6 public sealed class Day22() : Day(2022, 22, "Monkey Map") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day23.cs
··· 5 5 /// </summary> 6 6 public sealed class Day23() : Day(2022, 23, "Unstable Diffusion") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day24.cs
··· 5 5 /// </summary> 6 6 public sealed class Day24() : Day(2022, 24, "Blizzard Basin") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
-4
AOC2022/Day25.cs
··· 5 5 /// </summary> 6 6 public sealed class Day25() : Day(2022, 25, "Full of Hot Air") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 public override object Part1() => ""; 13 9 14 10 public override object Part2() => "";
+3 -4
AOC2023/Day01.cs
··· 1 1 namespace AOC2023; 2 2 3 + /// <summary> 4 + /// <a href="https://adventofcode.com/2023/day/2">Day 1</a> 5 + /// </summary> 3 6 public class Day01() : Day(2023, 1, "Trebuchet?!") 4 7 { 5 8 private static readonly List<string> SingleDigits = 6 9 ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; 7 - 8 - public override void ProcessInput() 9 - { 10 - } 11 10 12 11 public override object Part1() => 13 12 Input.Sum(line => (line.First(char.IsAsciiDigit) - '0') * 10 + (line.Last(char.IsAsciiDigit) - '0'));
+1 -5
AOC2023/Day02.cs
··· 1 1 namespace AOC2023; 2 2 3 3 /// <summary> 4 - /// Day 2: <a href="https://adventofcode.com/2023/day/ 2"/> 4 + /// <a href="https://adventofcode.com/2023/day/2">Day 2</a> 5 5 /// </summary> 6 6 public sealed class Day02() : Day(2023, 2, "Cube Conundrum") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 8 private static bool PossibleGame(string line) 13 9 { 14 10 var rounds = line.Split(": ", 2)[1];
+1 -1
AOC2023/Day03.cs
··· 1 1 namespace AOC2023; 2 2 3 3 /// <summary> 4 - /// Day 3: <a href="https://adventofcode.com/2023/day/ 3"/> 4 + /// <a href="https://adventofcode.com/2023/day/3">Day 3</a> 5 5 /// </summary> 6 6 public sealed class Day03() : Day(2023, 3, "Gear Ratios") 7 7 {
+1 -1
AOC2023/Day04.cs
··· 1 1 namespace AOC2023; 2 2 3 3 /// <summary> 4 - /// Day 4: <a href="https://adventofcode.com/2023/day/ 4"/> 4 + /// <a href="https://adventofcode.com/2023/day/4">Day 4</a> 5 5 /// </summary> 6 6 public sealed class Day04() : Day(2023, 4, "Scratchcards") 7 7 {
+11
AOC2023/Day05.cs
··· 1 + namespace AOC2023; 2 + 3 + /// <summary> 4 + /// <a href="https://adventofcode.com/2023/day/5">Day 5</a> 5 + /// </summary> 6 + public class Day05() : Day(2023, 5, "If you Give A Seed A Fertilizer") 7 + { 8 + public override object Part1() => ""; 9 + 10 + public override object Part2() => ""; 11 + }
+250
AOC2023/input2023/day05.in
··· 1 + seeds: 28965817 302170009 1752849261 48290258 804904201 243492043 2150339939 385349830 1267802202 350474859 2566296746 17565716 3543571814 291402104 447111316 279196488 3227221259 47952959 1828835733 9607836 2 + 3 + seed-to-soil map: 4 + 3680121696 1920754815 614845600 5 + 1920754815 3846369604 448597692 6 + 193356576 570761634 505124585 7 + 2369352507 2535600415 31531965 8 + 2400884472 2567132380 1279237224 9 + 0 459278395 111483239 10 + 698481161 97868205 361410190 11 + 1059891351 0 15994868 12 + 111483239 15994868 81873337 13 + 14 + soil-to-fertilizer map: 15 + 1633669237 1273301814 72865265 16 + 2398515176 2671190790 99210785 17 + 2397916384 3018946373 598792 18 + 4034325916 3061716397 20017393 19 + 3298612516 3793795301 14249501 20 + 4030007411 3051046904 2833129 21 + 1906984482 224872691 14620134 22 + 864506893 1590633724 149044542 23 + 1029530319 442871336 36727018 24 + 1921604616 770934113 68546178 25 + 3560536321 3114405501 28822192 26 + 1019762634 1263534129 9767685 27 + 3852235341 3579014714 60339892 28 + 2385228698 1577946038 12687686 29 + 2234322470 239492825 150906228 30 + 0 170310676 54562015 31 + 3208946111 3808044802 89666405 32 + 1209615399 839480291 424053838 33 + 4032840540 4041982568 1485376 34 + 2497725961 2174737461 293042810 35 + 2002543511 1346167079 231778959 36 + 3312862017 3475611771 103402943 37 + 318739997 1739678266 354749094 38 + 1013551435 3012735174 6211199 39 + 4014277153 4160859076 15730258 40 + 3589358513 3143227693 230682158 41 + 1990150794 2467780271 12392717 42 + 3051046904 3081733790 32671711 43 + 3820040671 3761600631 32194670 44 + 148429321 0 170310676 45 + 673489091 2480172988 191017802 46 + 1066257337 627576051 143358062 47 + 2790768771 2770401575 242333599 48 + 3091554979 4043467944 117391132 49 + 3416264960 3897711207 144271361 50 + 3912575233 3373909851 101701920 51 + 4072291714 3639354606 104297620 52 + 3083718615 3053880033 7836364 53 + 54562015 3019545165 13557205 54 + 1759006785 479598354 147977697 55 + 68119220 2094427360 80310101 56 + 1706534502 390399053 52472283 57 + 4054343309 3743652226 17948405 58 + 59 + fertilizer-to-water map: 60 + 0 1095885172 129797665 61 + 2661548513 1044284418 17872363 62 + 3282164642 3678907615 214830258 63 + 1440687421 2218635146 325889720 64 + 3496994900 4208791298 25912548 65 + 3253828209 4136945159 5561683 66 + 1797056017 864689597 109403664 67 + 3259389892 4186016548 22774750 68 + 2578517508 1225682837 83031005 69 + 3193832718 3618912124 59995491 70 + 3695649169 3214450646 211194594 71 + 820325042 974093261 70191157 72 + 1284591017 1074888739 20996433 73 + 2929761569 3893737873 85668135 74 + 1305587450 2605461705 73959171 75 + 2168339930 1062156781 12731958 76 + 2465234843 2135490203 52666067 77 + 3522907448 4108091872 882860 78 + 3523790308 4255675252 39292044 79 + 2517900910 1308713842 60616598 80 + 3563082352 3176039879 38410767 81 + 3015429704 3979406008 128685864 82 + 1913427402 2131043562 4446641 83 + 2235159285 1419841841 190190495 84 + 3673886186 4108974732 21762983 85 + 891504291 1610032336 393086726 86 + 3927815169 3425645240 193266884 87 + 4121082053 3002154636 173885243 88 + 2084864581 2004107154 83475349 89 + 1917874043 557612753 69524983 90 + 890516199 2003119062 988092 91 + 766355924 2551492587 53969118 92 + 1379546621 0 61140800 93 + 3187625274 4130737715 6207444 94 + 528804063 627137736 237551861 95 + 1987399026 230411125 97465555 96 + 1906459681 2544524866 6967721 97 + 2184647884 1369330440 50511401 98 + 2425349780 2091158499 39885063 99 + 2181071888 2087582503 3575996 100 + 3144115568 4142506842 43509706 101 + 1766577141 2188156270 30478876 102 + 359533738 61140800 169270325 103 + 129797665 327876680 229736073 104 + 3906843763 4234703846 20971406 105 + 3601493119 2929761569 72393067 106 + 107 + water-to-light map: 108 + 2375927917 1595026882 126334140 109 + 1307603095 818620477 43777869 110 + 2050676589 1855896418 112224406 111 + 3618302244 2909504698 119958941 112 + 3078570200 3088215627 6211083 113 + 3084781283 3094426710 141266337 114 + 524666822 53020621 149058240 115 + 673725062 862398346 147671362 116 + 2364320682 2577001713 11607235 117 + 1941578413 1584221500 10805382 118 + 2162900995 2536766467 40235246 119 + 162015400 237365123 4480592 120 + 821396424 241845715 141336168 121 + 166495992 1138498800 212882164 122 + 4277433486 4220367555 17533810 123 + 3226047620 2229635217 307131250 124 + 2909428734 1968120824 34606070 125 + 1885573816 3954749082 56004597 126 + 2711875933 2868267590 41237108 127 + 0 726306378 92314099 128 + 2944034804 1721361022 134535396 129 + 1584221500 3392008740 301352316 130 + 962732592 34415039 18605582 131 + 2235705153 2101019688 128615529 132 + 4252936467 4237901365 24497019 133 + 92314099 202078861 35286262 134 + 981338174 400041457 326264921 135 + 379378156 1010069708 128429092 136 + 3591930858 3693361056 26371386 137 + 3785017329 3719732442 235016640 138 + 2502262057 4010753679 209613876 139 + 3533178870 3029463639 58751988 140 + 3738261185 2821511446 46756144 141 + 4020033969 2806534555 14976891 142 + 1952383795 2002726894 98292794 143 + 127600361 0 34415039 144 + 2753113041 3235693047 156315693 145 + 507807248 383181883 16859574 146 + 2203136241 4262398384 32568912 147 + 4035010860 2588608948 217925607 148 + 149 + light-to-temperature map: 150 + 2137189745 1335050925 100355790 151 + 639139367 2440321747 987829 152 + 1663612748 1778059435 153830272 153 + 1122754252 1950103191 82536600 154 + 1929621334 1199531530 135519395 155 + 1286703174 2032639791 207137687 156 + 245313533 981575774 217955756 157 + 2597564380 2824691125 293777778 158 + 895004176 331442633 25226735 159 + 1493840861 236388681 616173 160 + 1494457034 764560381 107637728 161 + 1817443020 1435406715 112178314 162 + 1205290852 356669368 33552643 163 + 474799702 0 164339665 164 + 2341054397 2260378974 100255179 165 + 1043066658 2360634153 79687594 166 + 125852143 390222011 119461390 167 + 3924383937 3130691909 13614218 168 + 2467721984 3747288823 76649669 169 + 2065140729 164339665 72049016 170 + 920230911 1673437172 104622263 171 + 640127196 509683401 254876980 172 + 1024853174 1931889707 18213484 173 + 2331983314 2251307891 9071083 174 + 2237545535 237004854 94437779 175 + 3912160931 3118468903 12223006 176 + 1238843495 933716095 47859679 177 + 3326002417 3517222025 230066798 178 + 3556069215 3144306127 241363224 179 + 3797432439 4180238804 114728492 180 + 1602094762 872198109 61517986 181 + 2544371653 4127046077 53192727 182 + 2891342158 3823938492 303107585 183 + 463269289 2239777478 11530413 184 + 3194449743 3385669351 131552674 185 + 3937998155 2467721984 356969141 186 + 0 1547585029 125852143 187 + 188 + temperature-to-humidity map: 189 + 2687600833 2313887435 187105587 190 + 3281196981 2291603041 22284394 191 + 1771250828 1899269239 314167725 192 + 784031720 478456148 306959384 193 + 2605226464 1771250828 58348072 194 + 2085418553 3793564740 111907603 195 + 1090991104 785415532 575136195 196 + 3437652344 1829598900 69670339 197 + 2874706420 2500993022 389039942 198 + 3303481375 3905472343 134170969 199 + 305575572 0 478456148 200 + 3263746362 2890032964 17450619 201 + 2527060387 2213436964 78166077 202 + 2428623843 3695128196 98436544 203 + 2663574536 4270940999 24026297 204 + 3507322683 2907483583 787644613 205 + 2197326156 4039643312 231297687 206 + 0 1360551727 305575572 207 + 208 + humidity-to-location map: 209 + 1919184105 1156349110 51114849 210 + 4031284281 3411510751 25609498 211 + 0 171183359 79004094 212 + 1253227229 2072782209 122019778 213 + 4056893779 3437120249 136289693 214 + 3402931364 4156827458 101778985 215 + 84557792 1207463959 134801591 216 + 635909965 1371746366 266495395 217 + 4029464617 4127764171 1819664 218 + 4193183472 2857352625 101783824 219 + 1375247007 2200355685 41445634 220 + 1996492203 0 171183359 221 + 3601595563 3699895117 427869054 222 + 2218993186 1133540977 22808133 223 + 3217192942 2959136449 140385316 224 + 2987922009 4258606443 9236491 225 + 2628749093 2543337773 86365212 226 + 2167675562 369831582 51317624 227 + 3504710349 2446452559 96885214 228 + 902405360 421149206 108869392 229 + 3357578258 2811999519 45353106 230 + 1196458443 1638241761 56768786 231 + 1178674352 693035436 17784091 232 + 1970298954 530018598 26193249 233 + 2868723842 3099521765 91954544 234 + 1522874936 895259169 18612073 235 + 2841599480 4267842934 27124362 236 + 1880563756 1695010547 38620349 237 + 1011274752 913871242 137918784 238 + 219359383 556211847 136823589 239 + 1785350971 250187453 95212785 240 + 2960678386 4129583835 27243623 241 + 540622614 1977494858 95287351 242 + 356182972 710819527 184439642 243 + 1498443592 345400238 24431344 244 + 1416692641 1051790026 81750951 245 + 1541487009 1733630896 243863962 246 + 79004094 2194801987 5553698 247 + 1149193536 1342265550 29480816 248 + 2997158500 3191476309 220034442 249 + 2715114305 3573409942 126485175 250 + 2446452559 2629702985 182296534
+33
AOC2023/input2023/test05.in
··· 1 + seeds: 79 14 55 13 2 + 3 + seed-to-soil map: 4 + 50 98 2 5 + 52 50 48 6 + 7 + soil-to-fertilizer map: 8 + 0 15 37 9 + 37 52 2 10 + 39 0 15 11 + 12 + fertilizer-to-water map: 13 + 49 53 8 14 + 0 11 42 15 + 42 0 7 16 + 57 7 4 17 + 18 + water-to-light map: 19 + 88 18 7 20 + 18 25 70 21 + 22 + light-to-temperature map: 23 + 45 77 23 24 + 81 45 19 25 + 68 64 13 26 + 27 + temperature-to-humidity map: 28 + 0 69 1 29 + 1 0 69 30 + 31 + humidity-to-location map: 32 + 60 56 37 33 + 56 93 4
+3 -13
DayXX.cs.txt
··· 1 1 namespace AOCYYYY; 2 2 3 3 /// <summary> 4 - /// Day Q: <a href="https://adventofcode.com/YYYY/day/Q"/> 4 + /// <a href="https://adventofcode.com/YYYY/day/Q">Day Q</a> 5 5 /// </summary> 6 6 public sealed class DayXX() : Day(YYYY, Q, "Puzzle Name") 7 7 { 8 - public override void ProcessInput() 9 - { 10 - } 11 - 12 - public override object Part1() 13 - { 14 - return ""; 15 - } 8 + public override object Part1() => ""; 16 9 17 - public override object Part2() 18 - { 19 - return ""; 20 - } 10 + public override object Part2() => ""; 21 11 }