From bbd000a14f1ea5939e170ff492fe6fc1a88f9a84 Mon Sep 17 00:00:00 2001 From: didier amyot Date: Fri, 2 Jan 2026 12:01:29 -0500 Subject: [PATCH] foo --- csharp/adventOfCode.sln.DotSettings.user | 1 + csharp/adventOfCode/day12/Day12.cs | 99 ++++++++++++++++++++++++ csharp/adventOfCode/day12/Inputs.cs | 9 +++ csharp/adventOfCode/day8/Main.cs | 4 +- csharp/adventOfCode/day9/Day9.cs | 71 +++++++++++++++++ csharp/adventOfCode/day9/inputs.cs | 7 ++ 6 files changed, 189 insertions(+), 2 deletions(-) create mode 100644 csharp/adventOfCode/day12/Day12.cs create mode 100644 csharp/adventOfCode/day12/Inputs.cs create mode 100644 csharp/adventOfCode/day9/Day9.cs create mode 100644 csharp/adventOfCode/day9/inputs.cs diff --git a/csharp/adventOfCode.sln.DotSettings.user b/csharp/adventOfCode.sln.DotSettings.user index f7624e0..3bf4f11 100644 --- a/csharp/adventOfCode.sln.DotSettings.user +++ b/csharp/adventOfCode.sln.DotSettings.user @@ -2,6 +2,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded <SessionState ContinuousTestingMode="0" IsActive="True" Name="UnitTest1" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> <TestAncestor> diff --git a/csharp/adventOfCode/day12/Day12.cs b/csharp/adventOfCode/day12/Day12.cs new file mode 100644 index 0000000..915323b --- /dev/null +++ b/csharp/adventOfCode/day12/Day12.cs @@ -0,0 +1,99 @@ +namespace adventOfCode.day12; + + +record Pin(int X, int Y); + +class Block +{ + private HashSet Pins; + + public Block(HashSet pins) + { + Pins = pins; + } + + public static Block CreateBlock(string blockSection) + { + blockSection = blockSection.Replace("\n", ""); + var pins = new HashSet(9); + for (var i = 0; i < 3; i++) + { + for (var j = 0; j < 3; j++) + { + if (blockSection[3 *i + j] == '#') + { + pins.Add(new Pin(i, j)); + } + } + } + + return new Block(pins); + } + + public override string ToString() + { + var ret = ""; + for (var i = 0; i < 3; i++) + { + for (var j = 0; j < 3; j++) + { + ret += Pins.Contains(new Pin(i, j)) ? "#" : "."; + + } + + ret += "\n"; + } + return ret; + } + + public Block Flip() + { + return new Block((from pin in Pins select new Pin(pin.Y, pin.X)).ToHashSet()); + } +}; + +public class Day12 +{ + private static string GetBlockSections(string document) + { + var xIndex = document.IndexOf("x"); + + var index = -1; + while (true) + { + var newIndex = document.IndexOf("\n", index + 1); + if (newIndex > xIndex) + { + return document.Substring(0, index -1); + } + + index = newIndex; + } + } + + static string ToBlockString(string blockSection) + { + return blockSection.Substring(blockSection.IndexOf("\n")); + + } + + static List ParseBlocks(string document) + { + var blockSections = GetBlockSections(document).Split("\n\n"); + return (from blockSection in blockSections select Block.CreateBlock(ToBlockString(blockSection))).ToList(); + } + + + + public static void Main(string[] args) + { + var b = Block.CreateBlock("###\n##.\n##."); + Console.WriteLine(b); + Console.WriteLine("\n\n\n"); + Console.WriteLine(b.Flip()); + + Console.WriteLine("\n\n\n"); + Console.WriteLine(b.Flip().Flip()); + + } +} \ No newline at end of file diff --git a/csharp/adventOfCode/day12/Inputs.cs b/csharp/adventOfCode/day12/Inputs.cs new file mode 100644 index 0000000..307e4cb --- /dev/null +++ b/csharp/adventOfCode/day12/Inputs.cs @@ -0,0 +1,9 @@ +namespace adventOfCode.day12; + +public class Inputs +{ + public static readonly string Example = + "0:\n###\n##.\n##.\n\n1:\n###\n##.\n.##\n\n2:\n.##\n###\n##.\n\n3:\n##.\n###\n##.\n\n4:\n###\n#..\n###\n\n5:\n###\n.#.\n###\n\n4x4: 0 0 0 0 2 0\n12x5: 1 0 1 0 2 2\n12x5: 1 0 1 0 3 2"; + public static readonly string Input = + "0:\n##.\n###\n#.#\n\n1:\n###\n..#\n###\n\n2:\n###\n.#.\n###\n\n3:\n###\n###\n..#\n\n4:\n###\n.##\n..#\n\n5:\n#..\n##.\n.##\n\n38x36: 46 32 39 35 27 29\n48x43: 30 44 44 35 32 39\n48x41: 49 54 45 54 42 61\n49x50: 61 81 61 57 58 57\n48x39: 32 23 34 35 48 35\n50x43: 52 64 63 59 46 42\n35x43: 30 28 21 22 24 29\n45x44: 55 52 54 43 45 57\n40x37: 38 38 48 33 38 31\n46x43: 34 35 29 37 38 37\n44x39: 27 32 25 32 33 33\n37x45: 42 36 46 48 42 42\n48x35: 35 29 29 27 24 31\n47x42: 33 25 42 45 34 30\n42x43: 37 30 29 30 38 32\n36x43: 43 40 33 43 33 48\n39x45: 45 42 52 41 52 37\n45x35: 44 49 32 46 41 27\n46x48: 53 53 61 52 66 56\n36x43: 29 56 38 34 35 48\n42x36: 28 27 23 32 26 32\n45x43: 32 34 40 34 24 45\n47x42: 33 34 36 39 30 38\n37x40: 20 37 28 25 22 24\n36x35: 30 23 28 39 47 28\n38x37: 20 19 25 32 25 22\n47x37: 24 28 27 35 30 36\n49x48: 60 57 66 59 59 61\n38x39: 23 28 26 29 25 24\n45x47: 58 56 48 55 43 68\n44x45: 40 36 35 32 29 38\n49x50: 40 38 49 35 50 44\n35x46: 41 43 38 39 40 49\n49x42: 30 33 42 39 38 42\n37x47: 42 40 40 53 47 47\n45x44: 60 51 47 51 48 46\n42x45: 43 46 54 55 40 53\n36x35: 37 40 28 23 46 18\n46x43: 52 57 40 63 57 31\n48x41: 50 61 45 49 55 41\n36x43: 39 49 32 35 41 44\n40x49: 40 51 42 60 51 61\n43x49: 56 56 65 42 51 54\n45x39: 44 41 39 53 49 45\n39x44: 35 54 41 42 54 38\n47x42: 32 42 32 26 38 39\n37x49: 41 45 50 47 48 49\n49x37: 53 45 44 46 43 48\n48x41: 27 36 44 37 28 35\n46x49: 37 36 39 39 45 44\n50x44: 54 65 73 50 47 45\n49x48: 40 41 46 34 48 47\n36x43: 45 48 34 32 42 37\n43x36: 30 20 27 32 32 26\n46x48: 42 34 44 44 41 35\n39x43: 34 32 32 28 29 27\n48x43: 41 35 27 39 44 37\n42x35: 23 15 25 31 28 32\n37x48: 37 42 49 58 42 45\n43x48: 50 48 51 54 59 58\n38x44: 26 31 25 28 28 30\n37x41: 41 31 45 35 41 42\n39x50: 37 37 39 36 31 28\n42x50: 40 28 47 39 34 35\n42x47: 35 42 31 27 35 40\n46x50: 53 67 58 57 73 44\n43x48: 36 39 41 39 36 33\n42x50: 53 26 40 33 35 36\n44x43: 46 46 49 56 50 43\n45x38: 23 38 29 33 28 28\n43x38: 36 41 49 48 38 38\n47x37: 38 49 58 47 37 35\n41x44: 40 60 46 43 54 32\n36x38: 18 24 33 28 16 24\n50x38: 24 29 26 34 46 33\n40x38: 36 30 16 29 21 24\n47x49: 66 69 59 58 42 58\n48x35: 42 48 40 54 33 39\n46x47: 68 54 49 56 59 44\n44x42: 22 29 41 41 33 30\n48x40: 25 27 33 41 44 37\n39x47: 26 32 38 35 33 31\n39x48: 39 32 31 39 38 28\n45x47: 56 61 59 40 60 49\n46x40: 46 46 47 46 51 48\n40x45: 28 36 28 38 32 33\n48x49: 39 40 42 43 50 42\n43x42: 33 24 44 35 34 26\n36x50: 41 26 30 34 24 37\n49x37: 34 35 25 25 32 41\n41x49: 54 44 51 51 52 60\n46x50: 30 34 45 44 42 44\n50x36: 30 46 32 30 33 21\n48x36: 34 31 26 28 40 32\n41x37: 41 42 37 43 38 30\n50x43: 37 35 40 43 38 31\n40x35: 37 47 39 25 31 36\n36x44: 48 39 36 39 43 39\n45x45: 40 26 41 40 41 37\n40x42: 23 31 29 41 27 31\n45x41: 32 25 43 33 33 29\n42x44: 52 36 45 58 47 46\n41x35: 33 26 26 19 20 18\n48x49: 70 61 57 48 61 67\n49x44: 50 29 32 40 33 39\n47x36: 39 45 45 39 54 39\n37x41: 43 33 39 40 40 39\n39x39: 42 31 37 49 36 39\n44x36: 30 48 40 44 36 47\n44x48: 39 61 55 56 56 60\n39x49: 35 36 34 36 36 31\n48x47: 59 59 53 58 65 53\n41x48: 45 35 33 40 29 26\n44x38: 25 24 32 29 22 35\n45x47: 49 53 59 62 51 50\n35x36: 19 23 24 24 23 19\n46x37: 29 26 36 33 29 26\n39x41: 39 42 41 43 35 47\n41x41: 33 22 29 32 33 19\n35x49: 32 29 22 25 38 30\n47x50: 58 56 69 59 59 61\n39x35: 21 19 20 22 30 30\n49x49: 44 43 39 43 58 29\n50x47: 41 38 35 46 34 46\n47x39: 41 55 54 49 37 44\n41x44: 54 51 33 45 54 40\n45x38: 37 31 29 24 27 32\n42x43: 51 47 37 49 49 45\n42x48: 40 38 29 33 44 39\n43x38: 42 42 38 40 42 50\n36x46: 32 34 34 32 20 27\n45x46: 49 60 55 55 49 49\n49x50: 39 43 48 41 37 47\n42x42: 41 48 57 39 40 46\n46x45: 55 50 53 60 46 54\n49x39: 39 33 23 32 44 36\n35x44: 24 20 26 30 27 26\n48x50: 40 41 47 46 45 37\n40x46: 30 38 30 24 31 41\n38x35: 19 24 25 28 18 18\n48x44: 51 51 57 51 60 57\n39x39: 32 25 29 27 25 30\n41x49: 41 44 45 61 60 63\n46x41: 29 38 34 32 34 27\n37x48: 38 55 48 53 35 42\n50x35: 45 47 50 44 39 43\n44x50: 59 62 45 62 46 66\n45x40: 37 46 61 48 39 45\n46x48: 61 56 61 54 57 49\n42x40: 40 25 41 24 21 30\n35x46: 28 39 24 28 18 27\n42x44: 41 30 30 26 44 25\n48x47: 43 40 35 37 38 46\n42x38: 18 33 24 32 25 36\n45x49: 38 42 42 47 39 31\n36x40: 29 26 26 19 25 30\n40x46: 53 44 36 56 50 44\n50x48: 46 31 46 41 51 40\n44x43: 50 44 49 52 44 53\n36x40: 32 34 17 20 27 26\n48x49: 62 74 49 65 55 55\n49x48: 34 42 45 39 45 50\n44x40: 33 49 52 44 56 36\n47x50: 34 42 31 37 54 42\n38x42: 27 29 36 26 27 23\n36x50: 33 30 38 21 36 34\n44x46: 35 36 32 27 52 28\n36x47: 50 35 47 40 46 43\n35x49: 47 47 46 34 44 47\n45x42: 42 32 23 43 32 38\n40x41: 29 29 28 24 36 22\n39x38: 30 25 24 23 27 26\n39x39: 40 34 41 47 29 43\n44x40: 59 37 37 37 47 58\n43x44: 49 56 44 48 51 42\n35x36: 20 23 28 22 22 17\n41x36: 42 43 39 37 32 32\n38x49: 45 21 40 26 29 31\n49x39: 52 42 47 52 41 63\n35x36: 27 23 20 22 28 11\n37x36: 29 38 28 38 33 41\n38x49: 34 39 21 32 32 33\n38x43: 30 25 25 37 20 31\n43x42: 32 31 26 38 33 35\n39x49: 36 35 32 30 37 37\n47x37: 47 45 37 39 54 48\n39x44: 29 31 23 35 27 37\n41x40: 29 24 22 35 28 30\n40x41: 36 48 42 46 42 37\n39x35: 41 44 26 25 36 40\n50x42: 41 38 30 39 34 41\n43x46: 31 40 48 26 39 26\n40x48: 31 26 37 35 49 29\n39x47: 40 38 20 34 29 33\n42x45: 32 35 31 45 27 39\n37x36: 22 34 20 24 25 19\n39x35: 26 21 30 18 26 21\n50x35: 28 26 26 32 29 34\n40x41: 24 24 27 38 27 28\n36x35: 19 21 17 25 19 30\n43x36: 35 39 31 46 39 52\n41x44: 19 24 29 34 41 34\n43x50: 59 54 63 61 48 41\n36x50: 35 34 29 27 30 37\n46x36: 36 28 33 28 22 33\n45x41: 43 52 55 36 44 56\n36x37: 36 35 39 34 30 29\n47x41: 38 64 47 47 47 55\n44x37: 32 47 37 42 40 57\n37x38: 23 24 17 22 27 30\n37x41: 35 40 43 37 40 39\n35x48: 34 21 27 35 36 23\n43x40: 37 29 32 23 25 36\n41x40: 41 46 51 50 30 29\n35x45: 25 25 31 30 20 33\n42x44: 31 29 35 35 35 31\n42x40: 41 35 55 46 43 37\n38x42: 46 51 39 28 35 48\n50x40: 57 52 46 48 51 55\n38x35: 21 22 18 25 24 22\n43x45: 36 26 38 29 35 45\n46x42: 43 32 39 33 36 27\n38x38: 27 22 32 23 24 15\n42x44: 49 52 38 51 41 55\n43x39: 40 31 60 27 54 50\n47x36: 31 24 26 34 33 31\n50x44: 57 61 60 47 61 52\n36x41: 36 35 42 32 38 47\n48x35: 33 30 28 22 28 34\n47x46: 58 57 43 61 60 54\n47x42: 44 42 54 53 54 60\n39x44: 32 23 33 28 28 37\n49x38: 45 47 51 46 55 42\n38x45: 55 42 42 40 43 40\n48x43: 31 42 39 41 40 31\n46x40: 51 48 46 53 37 47\n46x44: 32 30 39 40 37 31\n40x43: 31 31 33 36 17 34\n40x43: 42 45 54 34 48 42\n44x49: 27 34 43 37 40 43\n46x36: 35 31 35 28 28 22\n41x42: 35 32 33 24 25 32\n48x45: 32 42 44 40 37 44\n43x46: 44 57 43 44 54 68\n48x49: 49 29 49 41 53 34\n46x37: 28 25 33 34 29 30\n47x43: 37 30 37 28 42 35\n38x35: 21 20 30 21 19 20\n46x46: 31 32 46 43 38 34\n48x47: 39 52 33 48 36 31\n47x39: 29 34 39 29 37 26\n44x49: 31 44 33 29 43 43\n50x45: 38 45 35 49 43 30\n38x44: 39 43 47 39 44 47\n42x35: 30 27 23 27 21 26\n41x46: 33 43 52 53 65 46\n38x36: 22 30 26 26 24 16\n48x44: 49 49 53 68 45 62\n46x45: 54 57 49 54 60 43\n44x47: 51 55 61 43 56 53\n36x44: 27 23 29 27 25 36\n39x35: 22 26 24 19 33 19\n36x48: 48 42 47 39 38 54\n41x35: 42 35 31 36 38 40\n36x41: 50 34 33 29 36 48\n38x48: 28 32 37 29 31 34\n44x41: 54 43 39 52 36 55\n38x48: 40 31 20 33 35 32\n38x45: 30 31 32 30 32 24\n48x43: 41 36 32 44 35 35\n49x40: 51 51 55 59 44 37\n37x43: 36 41 46 49 35 36\n40x44: 31 31 35 30 35 20\n49x48: 36 36 45 42 53 44\n44x39: 48 53 40 35 45 43\n39x47: 52 49 45 49 44 41\n38x47: 50 44 45 45 40 52\n40x48: 35 38 36 35 24 40\n49x46: 45 36 27 45 45 42\n35x50: 30 34 27 29 25 30\n48x45: 54 55 59 53 56 56\n37x49: 47 56 56 30 42 48\n37x49: 35 22 30 25 45 34\n37x47: 45 38 46 52 43 43\n40x37: 35 43 40 41 30 38\n42x36: 20 37 26 26 26 32\n41x41: 36 32 26 22 19 33\n39x49: 47 35 34 33 35 24\n42x41: 40 33 42 58 48 45\n35x41: 29 24 25 19 29 16\n35x44: 17 25 30 30 22 29\n41x41: 26 29 31 29 26 27\n40x41: 27 30 28 21 29 34\n40x38: 23 35 26 22 18 31\n50x44: 44 56 66 68 44 60\n38x47: 38 27 41 22 23 29\n46x36: 36 42 52 35 42 50\n48x39: 43 50 51 56 53 31\n47x49: 40 34 43 41 37 45\n47x43: 43 53 52 50 52 65\n36x47: 33 34 27 29 29 28\n50x37: 29 35 37 27 28 36\n44x36: 32 46 45 41 43 36\n35x42: 46 36 37 35 34 38\n44x45: 41 26 35 31 41 36\n50x49: 41 46 35 49 46 39\n49x37: 26 29 32 45 29 30\n39x36: 33 38 30 53 29 31\n40x37: 35 26 25 16 31 23\n37x45: 41 46 34 45 40 53\n38x36: 19 33 29 26 17 20\n41x37: 44 45 41 31 32 40\n35x46: 30 26 25 29 34 21\n48x41: 34 42 31 35 36 29\n38x39: 33 36 37 43 41 39\n42x35: 24 27 27 25 23 27\n41x36: 28 26 33 25 18 25\n38x38: 22 30 30 24 18 20\n43x37: 31 25 33 21 28 30\n49x37: 48 39 49 49 54 39\n39x50: 30 39 36 25 50 27\n43x39: 52 42 54 28 36 46\n47x48: 44 43 48 35 39 30\n48x43: 57 50 59 57 44 48\n37x37: 28 24 30 24 17 21\n42x37: 29 42 41 44 48 35\n36x41: 37 39 42 34 40 35\n38x48: 46 41 53 40 42 63\n48x42: 49 54 60 44 53 50\n38x35: 14 22 30 26 17 22\n50x41: 59 49 62 48 52 43\n35x36: 23 24 17 20 24 24\n47x46: 48 59 59 58 60 47\n42x48: 37 40 30 41 48 28\n44x42: 45 46 43 50 51 51\n46x39: 26 37 36 33 29 34\n38x41: 35 36 42 44 37 48\n38x49: 27 31 23 39 37 34\n50x35: 25 28 29 25 36 32\n45x40: 46 48 49 41 49 44\n38x43: 45 39 46 40 41 40\n47x37: 29 30 34 32 24 31\n38x42: 30 25 29 25 28 31\n38x47: 19 38 39 36 26 21\n37x45: 35 29 23 36 28 28\n48x41: 57 57 52 34 55 48\n44x49: 46 38 37 41 31 31\n42x41: 30 27 19 40 25 40\n41x41: 23 28 32 34 24 28\n43x35: 44 40 34 36 39 39\n38x37: 27 19 23 20 30 25\n39x42: 45 34 49 47 35 41\n50x44: 30 36 30 32 48 48\n41x44: 52 49 50 36 42 49\n48x42: 44 45 35 35 35 30\n39x42: 38 46 41 40 36 54\n43x47: 63 51 59 39 48 50\n44x42: 33 29 38 27 35 34\n40x36: 30 22 32 28 19 24\n46x47: 29 49 35 42 36 34\n45x49: 41 40 45 38 43 33\n50x45: 50 63 65 54 57 57\n50x45: 44 39 42 37 41 36\n41x47: 40 33 31 32 32 27\n44x47: 56 54 50 52 55 51\n42x35: 19 31 23 29 24 27\n45x38: 23 33 36 27 32 28\n36x44: 44 50 31 34 48 37\n46x35: 42 49 38 48 39 28\n41x42: 22 34 30 22 30 43\n42x46: 38 30 33 38 31 39\n35x39: 26 38 40 37 31 39\n49x48: 44 34 50 38 46 44\n37x44: 46 37 40 41 48 39\n35x49: 31 29 26 20 37 32\n45x42: 23 33 44 45 28 37\n37x47: 28 35 32 25 28 32\n48x44: 33 31 45 36 32 47\n42x36: 30 46 42 44 35 34\n44x36: 41 43 39 38 44 39\n47x37: 33 25 38 27 30 26\n49x45: 36 38 51 23 45 47\n50x42: 44 37 33 43 36 31\n35x39: 31 41 32 32 44 30\n43x41: 50 48 48 40 44 40\n46x39: 23 27 33 40 36 35\n40x39: 43 33 50 32 40 43\n45x46: 46 57 56 56 51 52\n37x36: 29 34 32 35 39 38\n42x42: 31 35 40 29 28 33\n35x46: 41 33 38 52 34 52\n41x45: 51 52 51 39 35 57\n39x37: 39 38 42 25 42 37\n36x41: 47 39 40 28 35 38\n36x41: 28 40 35 46 41 38\n47x36: 26 31 28 33 34 27\n40x48: 60 47 40 49 50 50\n39x50: 51 45 49 52 59 44\n35x45: 28 44 32 52 50 37\n45x37: 30 31 21 33 31 34\n39x41: 28 30 29 28 28 25\n38x38: 44 41 29 39 31 38\n50x44: 39 38 31 43 35 38\n36x39: 35 33 42 39 32 34\n50x35: 29 39 24 24 32 28\n41x46: 57 55 50 49 35 40\n41x49: 40 29 33 39 32 34\n37x45: 35 32 30 32 25 26\n47x39: 31 35 35 31 29 34\n37x38: 16 22 25 28 24 28\n46x40: 42 35 51 50 51 58\n44x45: 33 35 26 40 42 33\n46x39: 32 38 58 55 49 44\n43x44: 59 34 51 55 45 46\n50x48: 61 73 60 62 56 55\n42x36: 27 27 30 28 22 33\n41x45: 23 37 27 38 33 37\n35x45: 44 41 32 35 53 39\n50x38: 29 27 39 33 33 31\n48x44: 55 60 59 50 45 55\n47x47: 59 63 55 51 49 64\n50x45: 30 43 39 46 42 40\n48x49: 70 65 67 48 55 55\n35x47: 44 47 39 41 36 47\n44x48: 30 42 32 43 45 32\n43x44: 38 38 34 34 23 29\n36x36: 49 38 25 22 36 29\n41x50: 48 55 68 50 41 52\n41x37: 31 32 13 33 16 30\n48x50: 41 50 51 36 42 36\n38x45: 27 32 31 35 25 29\n42x40: 34 26 34 22 33 33\n39x48: 28 39 30 39 31 40\n37x48: 53 38 49 51 37 44\n37x38: 20 19 23 27 35 19\n36x37: 31 29 44 34 34 33\n39x45: 45 54 45 43 52 27\n46x49: 57 61 57 45 60 71\n43x46: 26 33 42 36 36 36\n46x36: 28 37 30 24 35 25\n36x36: 32 23 20 30 16 22\n35x38: 23 25 30 19 13 21\n37x43: 32 48 36 38 51 42\n46x44: 42 62 61 53 46 45\n35x37: 23 20 27 17 22 23\n35x36: 35 27 31 34 33 35\n42x38: 27 26 26 32 36 21\n42x38: 39 33 48 46 41 38\n49x48: 37 50 39 43 40 46\n50x35: 23 36 29 30 32 26\n40x49: 53 48 48 49 52 53\n46x42: 37 38 34 35 39 26\n41x39: 28 29 26 31 25 30\n49x44: 59 64 55 43 62 48\n35x43: 24 28 25 28 22 27\n42x43: 26 24 41 32 34 38\n49x37: 35 33 26 35 33 29\n37x36: 38 35 28 38 27 40\n39x38: 42 47 31 38 38 30\n36x43: 40 52 38 37 35 34\n36x50: 27 35 25 26 40 39\n49x36: 38 23 38 32 32 29\n35x43: 40 43 26 36 51 37\n40x44: 43 43 46 51 41 47\n39x39: 27 30 23 23 38 28\n47x44: 51 48 51 56 63 50\n46x38: 33 44 40 51 49 56\n43x39: 44 42 39 41 46 48\n42x47: 53 40 46 58 51 58\n46x47: 60 57 47 48 60 64\n40x35: 30 29 26 23 17 18\n40x47: 38 57 50 63 36 42\n50x45: 34 29 29 49 49 50\n48x39: 38 55 39 52 56 50\n46x37: 34 31 32 29 25 29\n47x41: 24 34 29 33 33 41\n45x42: 35 19 35 36 37 47\n48x35: 43 57 33 42 41 42\n37x48: 45 33 47 41 62 49\n46x46: 46 50 58 70 45 56\n49x44: 54 48 52 60 59 61\n50x35: 27 30 22 36 36 24\n48x35: 42 36 42 46 45 50\n43x49: 47 34 29 38 39 37\n46x45: 52 45 57 55 55 56\n47x47: 42 26 40 37 39 40\n45x46: 32 50 34 47 23 38\n45x49: 41 45 34 35 51 34\n40x48: 36 35 31 36 34 35\n38x46: 43 45 49 34 48 53\n35x37: 23 21 24 25 22 16\n42x36: 23 35 43 46 50 37\n35x48: 42 47 28 47 54 42\n46x38: 48 37 49 42 42 53\n36x42: 44 33 33 42 50 30\n37x46: 44 39 48 47 42 41\n47x40: 40 52 51 43 46 61\n39x40: 39 39 34 48 42 38\n41x36: 41 23 24 21 19 27\n46x38: 47 43 40 43 48 50\n49x41: 38 37 27 34 26 45\n38x44: 21 26 25 34 27 34\n47x44: 30 38 42 29 33 37\n39x39: 30 23 32 27 23 33\n37x47: 42 47 45 42 43 50\n45x44: 38 53 64 47 59 43\n36x45: 30 33 32 34 30 20\n46x36: 47 48 38 48 30 42\n45x50: 36 42 36 37 43 46\n39x42: 28 31 34 29 35 24\n43x41: 33 28 26 24 37 34\n37x44: 32 30 18 25 34 29\n41x47: 32 35 32 33 29 33\n37x39: 39 38 35 34 43 33\n36x43: 37 21 29 29 32 20\n49x38: 55 61 36 44 47 42\n35x43: 46 34 46 31 38 36\n37x36: 28 27 30 20 19 20\n50x35: 28 30 26 28 29 34\n47x45: 43 38 35 41 26 42\n50x41: 56 55 47 49 57 52\n35x41: 38 38 39 31 39 36\n47x46: 33 38 47 29 34 43\n37x43: 27 30 37 23 29 22\n49x42: 61 54 52 51 60 35\n37x49: 35 34 32 20 35 36\n37x42: 30 32 24 17 31 34\n49x46: 40 42 38 45 37 37\n44x43: 51 44 46 43 57 53\n37x41: 41 39 41 40 33 39\n49x35: 38 44 44 45 44 51\n44x45: 39 47 62 47 57 55\n37x44: 27 25 25 37 32 21\n39x44: 34 36 30 23 30 28\n50x39: 56 43 54 40 45 66\n41x50: 59 58 44 55 46 53\n38x46: 35 22 37 24 35 27\n44x36: 29 31 26 24 28 29\n46x39: 25 39 44 29 29 28\n49x46: 57 51 65 53 54 70\n37x37: 25 32 38 34 49 35\n45x41: 38 34 29 32 25 37\n48x48: 51 37 42 46 51 29\n47x45: 35 33 46 35 35 41\n49x49: 39 39 50 47 46 34\n37x46: 45 37 48 46 42 44\n42x36: 45 37 34 42 33 42\n41x50: 59 52 49 54 53 47\n49x42: 49 59 64 42 46 57\n44x41: 29 36 30 36 31 20\n43x37: 29 24 26 28 32 28\n39x44: 40 52 41 44 38 50\n48x44: 58 55 51 62 51 45\n50x37: 30 41 31 32 26 31\n43x45: 26 35 40 36 37 35\n37x47: 24 29 25 28 40 33\n45x49: 43 44 44 34 42 32\n35x48: 33 26 30 29 37 21\n46x36: 31 31 28 34 31 25\n49x35: 24 25 30 25 32 39\n49x50: 76 68 70 49 51 61\n47x36: 24 31 34 32 24 34\n47x39: 31 38 30 33 28 34\n39x48: 44 55 46 52 49 40\n47x49: 24 40 55 45 41 35\n40x37: 35 25 30 18 23 24\n45x47: 34 28 45 45 34 38\n42x38: 30 34 27 28 23 25\n49x38: 31 37 37 22 32 32\n36x48: 44 38 38 45 56 48\n48x39: 46 33 41 57 60 55\n48x41: 39 39 42 27 27 34\n43x38: 31 26 20 22 31 37\n43x46: 47 48 51 48 57 56\n43x42: 38 32 39 29 20 38\n40x40: 34 38 43 49 48 33\n39x46: 56 43 32 55 40 51\n38x41: 19 22 25 38 27 25\n36x48: 36 34 30 32 27 32\n37x48: 19 41 35 32 28 37\n39x46: 31 36 29 28 40 31\n40x41: 39 41 42 43 42 47\n50x44: 51 58 59 51 60 62\n46x38: 34 28 30 30 27 31\n36x49: 45 42 37 63 41 42\n36x50: 49 37 58 49 47 34\n41x44: 45 44 50 43 46 51\n36x49: 27 41 24 30 36 33\n35x46: 43 40 32 52 39 42\n41x48: 49 50 50 46 61 48\n41x40: 32 32 27 23 26 29\n38x43: 43 40 37 45 41 47\n47x40: 50 42 35 52 64 49\n40x40: 27 26 32 29 29 26\n46x35: 44 39 37 39 40 52\n40x50: 37 36 33 33 39 30\n37x36: 43 34 25 31 37 36\n38x35: 16 26 24 19 19 27\n36x38: 37 37 37 30 37 32\n42x47: 32 44 23 37 31 42\n47x44: 58 64 58 46 44 45\n49x42: 52 44 69 47 57 47\n42x39: 29 26 26 33 34 33\n41x40: 45 36 38 55 40 37\n37x48: 33 25 37 27 38 31\n41x49: 56 53 52 47 44 58\n43x48: 54 43 55 49 53 68\n41x41: 39 22 23 27 31 27\n47x44: 36 41 30 38 32 32\n49x38: 36 22 32 30 41 31\n42x47: 33 41 38 31 34 33\n50x44: 68 50 58 55 51 56\n44x46: 62 50 49 51 46 53\n40x42: 42 45 37 36 56 45\n47x49: 59 59 52 71 54 59\n41x47: 29 28 27 38 32 40\n50x45: 54 50 54 62 62 68\n37x42: 29 36 36 17 20 29\n42x43: 28 26 42 37 30 32\n37x40: 28 26 31 23 22 25\n48x39: 51 46 48 59 45 35\n48x48: 37 42 43 43 53 38\n42x43: 41 43 50 54 42 48\n38x47: 45 44 48 32 56 54\n41x50: 59 50 54 49 59 43\n45x49: 57 65 56 57 42 62\n48x47: 32 38 42 40 49 38\n40x46: 27 42 34 33 30 28\n41x37: 24 29 24 30 33 15\n41x46: 50 43 49 47 45 59\n47x38: 29 28 34 27 35 27\n44x50: 65 51 49 60 53 62\n35x41: 27 21 27 21 28 19\n35x36: 16 21 30 19 23 22\n47x48: 32 37 45 38 43 44\n43x46: 29 31 37 38 30 45\n40x42: 46 41 44 33 55 41\n49x35: 45 46 44 32 48 52\n44x46: 39 24 34 39 29 44\n45x40: 50 43 48 36 53 49\n48x43: 51 64 48 46 57 52\n49x47: 39 42 37 40 39 43\n49x38: 32 31 29 34 35 30\n49x35: 27 28 29 30 26 36\n46x47: 38 40 40 33 39 34\n43x40: 33 34 26 30 26 32\n48x49: 46 35 38 43 53 41\n46x39: 42 23 33 39 30 27\n50x48: 56 57 65 59 78 55\n50x48: 53 64 59 71 64 58\n48x36: 42 52 40 45 46 40\n50x50: 54 59 82 63 71 54\n37x42: 34 40 21 27 20 26\n44x38: 23 34 32 27 23 29\n35x48: 29 27 35 30 22 33\n48x44: 49 66 54 50 56 49\n43x39: 27 32 26 28 34 35\n40x44: 35 35 27 25 32 27\n48x45: 45 33 42 33 38 48\n45x35: 20 32 23 29 32 29\n35x42: 35 24 20 26 23 26\n36x40: 33 24 19 26 31 23\n45x40: 29 37 26 37 37 29\n36x44: 37 43 43 43 33 45\n36x47: 27 43 34 25 24 27\n40x42: 27 37 24 33 35 26\n39x42: 43 37 38 50 44 40\n40x50: 33 34 41 33 42 24\n37x48: 58 39 49 40 46 40\n48x41: 30 30 41 38 41 27\n47x49: 65 67 45 59 53 67\n48x46: 43 37 44 48 29 39\n35x48: 36 40 43 47 44 51\n36x49: 43 41 42 41 57 51\n37x50: 30 27 34 29 34 38\n50x36: 52 40 36 55 42 54\n50x42: 56 64 46 57 50 48\n35x40: 20 29 21 21 23 28\n41x44: 34 27 33 29 28 31\n40x47: 32 31 37 27 33 35\n42x42: 26 30 37 27 36 39\n50x46: 46 39 41 33 44 37\n50x38: 30 31 33 33 26 39\n38x39: 28 27 32 26 23 19\n42x49: 47 35 31 39 34 38\n40x48: 32 34 39 30 42 30\n40x45: 44 46 43 48 46 52\n43x41: 26 27 43 26 30 29\n50x36: 26 35 33 34 36 28\n43x42: 38 60 45 44 49 41\n41x47: 44 45 48 58 45 59\n40x50: 37 29 35 43 25 39\n37x45: 50 36 37 46 39 50\n42x39: 40 24 36 27 26 29\n38x43: 30 27 32 25 23 30\n44x42: 42 48 44 54 58 37\n50x44: 38 48 27 26 48 36\n45x49: 45 45 46 29 43 31\n43x46: 40 57 46 46 63 56\n36x50: 24 30 32 35 33 37\n50x48: 52 74 59 65 57 62\n41x40: 40 41 44 47 44 35\n50x50: 47 40 43 43 38 44\n45x50: 33 40 40 48 36 42\n39x50: 48 52 57 47 48 47\n49x46: 42 38 39 50 34 37\n43x41: 52 37 40 46 55 42\n37x48: 39 37 36 24 25 31\n35x50: 50 42 43 55 38 39\n48x42: 50 45 51 59 54 52\n48x38: 35 39 32 30 32 24\n40x43: 22 38 19 34 33 36\n45x44: 43 29 31 35 39 33\n38x35: 17 25 26 22 25 17\n45x35: 30 27 25 31 33 18\n44x49: 35 41 32 31 45 40\n38x44: 44 39 54 34 46 40\n41x44: 28 34 34 29 31 26\n42x46: 38 34 29 30 32 47\n41x47: 53 45 51 52 48 47\n46x43: 39 54 42 62 57 52\n41x43: 37 30 25 35 24 31\n46x36: 26 29 27 31 27 39\n42x38: 41 46 41 52 32 29\n46x50: 50 50 60 70 66 59\n43x37: 30 31 47 55 42 40\n39x42: 30 26 29 36 25 36\n36x42: 26 32 32 24 29 24\n50x43: 61 48 63 51 46 63\n40x44: 49 41 50 36 44 53\n43x38: 29 39 24 19 27 30\n50x46: 41 36 46 35 47 35\n43x49: 41 36 37 34 40 35\n42x35: 37 31 31 30 55 48\n36x50: 52 39 53 34 52 49\n41x37: 26 28 29 31 23 19\n46x47: 30 37 26 42 52 37\n37x37: 35 32 30 49 34 29\n47x45: 54 50 63 61 45 50\n48x48: 45 37 45 42 41 45\n38x49: 60 42 42 46 44 54\n47x36: 44 38 42 40 52 47\n45x39: 33 39 50 59 44 45\n50x36: 40 33 19 35 26 39\n49x49: 59 66 52 69 66 57\n40x42: 45 38 57 36 39 43\n49x40: 38 28 38 41 33 30\n44x36: 42 45 31 37 55 34\n50x45: 55 68 62 46 55 61\n36x44: 36 28 18 23 31 31\n50x42: 53 59 50 59 51 50\n50x45: 41 44 35 45 29 46\n48x35: 47 53 34 41 42 41\n35x48: 26 31 23 44 23 29\n47x49: 56 54 62 62 57 65\n38x43: 38 28 24 27 31 20\n49x50: 51 44 36 42 40 43\n47x45: 59 58 56 42 57 54\n46x37: 23 26 42 27 35 27\n43x47: 39 39 37 30 39 25\n42x43: 50 49 46 43 48 41\n49x37: 33 32 32 32 38 25\n45x40: 41 40 45 40 65 50\n36x37: 22 19 37 20 19 26\n39x50: 29 31 32 29 54 33\n38x36: 18 22 18 34 26 26\n40x50: 35 34 35 34 38 31\n47x48: 39 39 33 47 42 39\n38x45: 44 44 35 58 36 46\n37x47: 64 46 32 42 48 33\n50x40: 32 26 37 40 31 42\n40x43: 49 36 48 45 37 51\n38x35: 33 30 29 42 39 32\n39x45: 40 43 40 44 59 47\n50x38: 46 31 28 23 29 34\n49x47: 48 39 37 46 26 43\n45x38: 33 30 20 40 30 26\n42x50: 67 51 41 56 46 64\n45x36: 40 38 48 33 45 48\n49x47: 58 60 50 62 60 67\n39x40: 36 28 25 24 31 24\n35x42: 31 28 25 26 22 22\n46x50: 41 30 42 43 43 41\n43x44: 22 39 35 38 33 28\n37x42: 21 30 39 17 30 31\n50x46: 39 46 36 35 49 34\n35x36: 18 23 29 20 20 22\n50x49: 46 40 37 38 45 50\n45x39: 40 44 32 54 52 51\n43x37: 40 37 36 44 49 40\n46x35: 29 26 36 28 20 26\n39x36: 36 21 22 23 24 29\n44x36: 38 36 38 39 48 48\n42x35: 43 37 32 39 41 34\n35x50: 28 31 20 39 35 23\n45x49: 37 40 46 37 46 34\n35x44: 29 38 47 45 43 34\n40x41: 42 28 30 16 27 26\n49x45: 59 44 57 62 57 62\n36x46: 38 43 58 39 43 31\n40x41: 51 41 35 43 46 35\n44x36: 49 34 45 48 33 31\n39x42: 25 38 37 27 32 23\n43x38: 34 30 27 26 27 23\n46x39: 35 54 54 45 44 43\n43x44: 37 30 27 35 39 27\n37x40: 29 22 25 35 24 20\n45x41: 47 45 45 46 51 52\n39x39: 41 41 37 43 29 43\n44x37: 23 26 24 33 31 31\n50x47: 39 39 36 45 38 43\n38x39: 20 23 25 28 34 26\n38x41: 37 46 45 33 39 40\n44x40: 53 49 45 31 36 60\n48x48: 50 56 64 61 59 67\n40x48: 30 34 33 36 39 36\n47x36: 32 35 34 27 23 28\n41x40: 29 23 26 37 28 26\n48x37: 38 24 29 35 33 32\n49x36: 47 42 45 40 49 51\n46x42: 36 39 38 26 34 36\n50x49: 42 43 46 45 43 36\n49x43: 49 38 31 35 31 39\n36x40: 32 36 38 37 40 40\n49x47: 66 53 67 57 59 50\n47x47: 61 48 56 52 66 59\n43x49: 51 56 57 44 63 55\n47x35: 39 44 44 37 40 52\n39x49: 44 53 51 43 52 53\n35x50: 32 20 32 34 30 27\n43x36: 39 31 37 52 48 30\n37x50: 33 29 22 34 40 34\n46x50: 39 38 46 42 36 39\n49x36: 34 53 47 42 53 43\n35x39: 28 27 19 18 22 28\n38x50: 32 30 37 27 33 33\n48x42: 40 35 28 44 40 37\n46x41: 47 41 52 53 48 50\n37x37: 30 16 27 19 23 28\n37x46: 31 29 35 31 29 25\n49x37: 61 48 37 51 31 50\n40x36: 35 40 39 36 36 35\n38x36: 30 26 25 20 17 25\n39x47: 30 35 28 38 28 36\n47x37: 29 28 35 28 29 30\n49x39: 38 24 45 35 33 33\n49x36: 59 38 39 52 41 41\n40x43: 35 32 29 26 26 34\n39x44: 34 35 52 58 40 45\n45x40: 49 37 44 49 50 50\n48x47: 41 50 33 45 43 27\n38x41: 24 27 22 27 25 30\n45x48: 64 57 56 43 58 55\n41x48: 61 45 49 53 44 50\n40x37: 25 34 23 27 23 24\n37x36: 34 13 19 26 18 34\n40x37: 36 34 32 46 36 46\n38x39: 32 34 40 38 45 41\n50x35: 42 38 47 56 46 39\n38x44: 27 30 22 30 27 31\n48x47: 40 41 34 36 48 41\n47x35: 31 37 46 52 46 42\n35x37: 18 18 26 25 21 23\n49x49: 53 64 63 60 58 75\n36x39: 30 25 48 47 37 27\n44x38: 30 25 20 35 31 27\n47x40: 50 52 55 39 41 53\n37x44: 25 31 23 22 40 27\n36x45: 33 31 19 33 35 29\n40x50: 38 35 31 42 37 25\n37x43: 35 38 49 44 40 38\n36x38: 34 35 37 32 29 46\n48x37: 34 28 32 34 30 34\n43x48: 55 62 51 48 39 64\n47x44: 54 53 55 51 55 50\n39x48: 36 42 24 34 31 40\n41x48: 37 26 49 26 29 40\n42x45: 39 34 45 27 26 38\n37x47: 25 27 38 35 30 25\n49x43: 39 37 36 37 37 38\n40x47: 32 42 29 35 27 29\n45x42: 35 31 39 38 38 28\n45x44: 31 37 38 27 42 34\n37x36: 34 43 32 26 28 44\n38x35: 26 22 16 19 23 26\n47x37: 27 33 32 28 28 32\n42x43: 53 37 50 47 40 52\n39x39: 34 26 25 26 32 25\n45x38: 30 25 29 44 27 25\n40x47: 47 51 49 44 49 50\n42x42: 37 31 25 44 32 26\n45x48: 44 30 44 42 37 42\n39x41: 33 41 46 33 45 52\n46x43: 37 32 31 45 35 29\n50x38: 22 29 42 27 46 26\n45x40: 29 39 39 31 30 26\n47x48: 41 40 43 43 37 35\n49x35: 53 48 27 44 48 45\n38x40: 38 33 48 37 44 33\n47x46: 43 35 33 44 36 34\n35x40: 31 19 15 22 32 24\n35x44: 32 36 37 46 45 43\n38x35: 20 23 26 17 18 27\n37x35: 32 32 16 15 19 18\n50x47: 42 41 48 44 35 30\n46x48: 32 41 47 32 37 51\n45x42: 49 52 39 44 59 50\n39x41: 34 31 20 31 33 20\n37x48: 41 46 40 63 43 38\n47x39: 40 37 27 39 26 26\n35x40: 25 24 24 26 15 28\n40x48: 44 31 35 40 28 29\n46x50: 62 74 69 43 52 51\n37x50: 54 44 55 40 46 45\n50x45: 44 38 45 38 34 41\n41x41: 50 38 43 42 47 38\n49x35: 48 46 51 40 41 35\n36x46: 46 42 42 46 31 48\n50x49: 54 79 70 52 56 66\n49x38: 36 26 27 29 37 36\n39x50: 42 55 56 39 47 65\n36x42: 28 37 22 26 34 21\n35x36: 29 17 21 23 24 18\n43x35: 21 26 29 35 16 27\n47x50: 47 41 44 36 32 39\n49x49: 43 35 40 39 54 45\n47x49: 58 50 70 58 58 61\n37x45: 21 28 34 38 36 23\n37x36: 27 36 34 31 39 41\n46x45: 51 47 45 67 57 52\n36x41: 43 38 31 36 43 37\n36x40: 42 35 38 36 40 29\n35x42: 24 20 25 40 24 21\n37x40: 41 21 23 33 21 16\n39x38: 29 19 27 30 27 24\n50x40: 49 56 62 42 49 49\n46x50: 42 37 38 42 42 38\n46x41: 21 41 37 33 28 35\n46x44: 49 53 47 54 50 61\n48x44: 47 38 43 29 32 34\n48x45: 39 39 43 34 44 40\n44x45: 43 36 33 37 31 30\n39x38: 32 23 26 24 27 23\n35x36: 34 34 27 29 40 31\n40x43: 37 32 25 26 35 27\n50x45: 55 50 70 59 55 57\n49x42: 48 54 53 52 51 61\n36x40: 39 43 25 43 31 41\n50x35: 51 47 38 41 47 46\n42x44: 30 32 37 31 35 31\n50x42: 52 55 54 48 59 57\n40x42: 49 37 32 44 44 57\n40x44: 52 43 43 47 42 43\n45x50: 36 39 45 38 40 41\n38x37: 18 24 26 22 25 29\n46x45: 39 35 45 41 27 38\n47x50: 45 47 40 40 25 42\n45x38: 51 49 41 42 42 36\n37x40: 21 31 22 18 31 32\n36x40: 46 29 25 42 34 49\n39x49: 36 38 36 36 27 34\n35x35: 31 35 33 25 33 32\n41x43: 46 42 42 36 59 50\n42x40: 40 54 43 37 53 29\n47x39: 33 22 32 36 35 37\n43x35: 24 24 26 27 28 25\n47x45: 39 45 28 32 49 31\n36x40: 29 26 23 28 25 24\n49x47: 31 44 35 46 42 41\n45x48: 36 40 30 39 41 54\n43x42: 26 26 43 37 36 27\n43x39: 31 29 24 31 36 30\n44x39: 24 29 33 39 22 34\n35x46: 40 40 46 40 41 41\n41x50: 40 38 31 19 39 40\n35x48: 40 38 50 45 45 40\n50x49: 54 68 68 53 66 71\n45x35: 48 30 36 38 49 44\n35x50: 33 29 27 29 29 29\n43x44: 44 26 36 29 33 27\n46x35: 44 46 48 29 37 44\n48x47: 36 35 40 45 42 42\n41x47: 37 31 25 38 31 33\n49x46: 63 51 73 48 61 49\n35x44: 38 48 34 45 42 27\n41x37: 40 39 34 45 37 38\n43x50: 39 33 42 36 40 33\n40x49: 37 31 31 45 32 32\n41x36: 35 47 30 37 39 40\n43x48: 43 39 34 34 42 31\n36x46: 30 27 25 30 35 33\n47x46: 50 68 46 53 49 70\n36x49: 31 33 28 28 33 39\n41x44: 46 55 47 42 37 51\n45x48: 43 34 34 40 56 33\n41x35: 25 27 20 33 21 17\n47x38: 50 43 39 45 54 45\n41x36: 22 26 27 24 31 26\n39x49: 54 40 59 46 45 50\n45x40: 34 35 31 29 32 33"; +} \ No newline at end of file diff --git a/csharp/adventOfCode/day8/Main.cs b/csharp/adventOfCode/day8/Main.cs index 3f7f332..c4b29ca 100644 --- a/csharp/adventOfCode/day8/Main.cs +++ b/csharp/adventOfCode/day8/Main.cs @@ -192,7 +192,7 @@ public class Question var twoPoints = CreateAllPointPairs(points); var circuits = CreateCircuits(twoPoints, n).Get(); - return circuits[0].Count() * circuits[1].Count() * circuits[2].Count(); + return circuits[0].Count(); //* circuits[1].Count() * circuits[2].Count(); } static long Question8B(string document) @@ -208,7 +208,7 @@ public class Question return circuits.P1.X * circuits.P2.X; } - public static void Main() + public static void Main_() { Console.WriteLine($"The answer to question 8a is {Question8A(Inputs.Input, 1_000)}" ); Console.WriteLine($"The answer to question 8b is {Question8B(Inputs.Input)}" ); diff --git a/csharp/adventOfCode/day9/Day9.cs b/csharp/adventOfCode/day9/Day9.cs new file mode 100644 index 0000000..d1cb21e --- /dev/null +++ b/csharp/adventOfCode/day9/Day9.cs @@ -0,0 +1,71 @@ +using System.Runtime.InteropServices; +using System.Runtime.Serialization; + +namespace adventOfCode.day9; + +record Point(long X, long Y) +{ + public static Point ParseLine(string line) + { + var x = line.Split(","); + return new Point(long.Parse(x[0]), long.Parse(x[1])); + } + + + public static long Dist(Point p1, Point p2) + { + return (Math.Abs(p1.X - p2.X) + 1) * (Math.Abs(p1.Y - p2.Y) + 1); + } +} + +record Rectangle(Point C1, Point C2) +{ + + + + +} + +public class Day9 +{ + static List ParseInput(string document) + { + return (from line in document.Split("\n") select Point.ParseLine(line)).ToList(); + } + + static IEnumerable> AllPairs(List points) + { + for (var i = 0; i < points.Count; i++) + { + for (var j = i + 1; j < points.Count; j++) + { + yield return new Tuple(points[i], points[j]); + } + } + } + + static long Question9A(string document) + { + var points = ParseInput(document); + return (from pair in AllPairs(points) select Point.Dist(pair.Item1, pair.Item2)).Max(); + } + + static long Question9B(string document) + { + var points = ParseInput(document); + var pairs = from pair in AllPairs(points) orderby Point.Dist(pair.Item1, pair.Item2) descending select pair; + foreach (var pair in pairs) + { + // if + + } + return 23; + + } + + public static void Main_() + { + Console.WriteLine($"Answer to question 9a is: {Question9A(Inputs.Input)}"); + + } +} \ No newline at end of file diff --git a/csharp/adventOfCode/day9/inputs.cs b/csharp/adventOfCode/day9/inputs.cs new file mode 100644 index 0000000..7c47052 --- /dev/null +++ b/csharp/adventOfCode/day9/inputs.cs @@ -0,0 +1,7 @@ +namespace adventOfCode.day9; + +public class Inputs +{ + public static readonly string Example = "7,1\n11,1\n11,7\n9,7\n9,5\n2,5\n2,3\n7,3"; + public static readonly string Input = "97615,50359\n97615,51574\n97880,51574\n97880,52787\n97832,52787\n97832,54045\n98308,54045\n98308,55187\n97455,55187\n97455,56428\n97608,56428\n97608,57577\n97086,57577\n97086,58800\n97054,58800\n97054,60056\n97128,60056\n97128,61283\n97011,61283\n97011,62360\n96295,62360\n96295,63474\n95780,63474\n95780,64718\n95702,64718\n95702,65758\n94990,65758\n94990,67104\n95133,67104\n95133,68247\n94699,68247\n94699,69240\n93917,69240\n93917,70385\n93499,70385\n93499,71581\n93170,71581\n93170,72717\n92702,72717\n92702,73502\n91601,73502\n91601,74745\n91319,74745\n91319,75801\n90706,75801\n90706,76627\n89745,76627\n89745,77961\n89534,77961\n89534,78812\n88622,78812\n88622,79459\n87470,79459\n87470,80349\n86652,80349\n86652,81297\n85905,81297\n85905,82410\n85333,82410\n85333,83641\n84859,83641\n84859,84224\n83712,84224\n83712,85182\n82941,85182\n82941,85489\n81580,85489\n81580,86273\n80667,86273\n80667,87660\n80237,87660\n80237,87896\n78879,87896\n78879,88858\n78085,88858\n78085,89421\n76998,89421\n76998,90264\n76103,90264\n76103,90831\n75024,90831\n75024,91515\n74018,91515\n74018,92447\n73143,92447\n73143,92488\n71787,92488\n71787,93692\n71024,93692\n71024,93312\n69506,93312\n69506,94350\n68637,94350\n68637,94479\n67379,94479\n67379,95144\n66333,95144\n66333,95471\n65160,95471\n65160,96293\n64141,96293\n64141,96243\n62855,96243\n62855,96580\n61686,96580\n61686,97010\n60535,97010\n60535,97390\n59366,97390\n59366,96985\n58055,96985\n58055,97125\n56855,97125\n56855,97277\n55659,97277\n55659,97593\n54477,97593\n54477,97412\n53250,97412\n53250,98188\n52079,98188\n52079,97850\n50851,97850\n50851,97591\n49640,97591\n49640,97613\n48433,97613\n48433,97478\n47232,97478\n47232,97959\n45983,97959\n45983,98122\n44739,98122\n44739,97901\n43531,97901\n43531,97758\n42314,97758\n42314,96719\n41262,96719\n41262,97232\n39921,97232\n39921,96719\n38786,96719\n38786,96225\n37658,96225\n37658,96045\n36448,96045\n36448,95750\n35265,95750\n35265,95184\n34173,95184\n34173,95280\n32840,95280\n32840,94440\n31858,94440\n31858,93838\n30794,93838\n30794,93113\n29795,93113\n29795,93299\n28353,93299\n28353,92192\n27553,92192\n27553,91710\n26435,91710\n26435,91165\n25347,91165\n25347,90253\n24485,90253\n24485,89978\n23217,89978\n23217,88985\n22426,88985\n22426,88304\n21425,88304\n21425,87446\n20559,87446\n20559,87114\n19267,87114\n19267,86006\n18614,86006\n18614,85364\n17561,85364\n17561,84365\n16835,84365\n16835,83879\n15605,83879\n15605,82741\n15031,82741\n15031,81877\n14176,81877\n14176,81139\n13168,81139\n13168,80122\n12482,80122\n12482,79364\n11466,79364\n11466,77950\n11328,77950\n11328,77269\n10183,77269\n10183,75850\n10124,75850\n10124,75271\n8765,75271\n8765,73896\n8695,73896\n8695,72983\n7845,72983\n7845,72127\n6848,72127\n6848,70848\n6673,70848\n6673,69631\n6410,69631\n6410,68724\n5442,68724\n5442,67546\n5091,67546\n5091,66231\n5138,66231\n5138,65210\n4378,65210\n4378,63906\n4476,63906\n4476,62782\n4019,62782\n4019,61592\n3793,61592\n3793,60572\n2824,60572\n2824,59258\n3156,59258\n3156,58109\n2702,58109\n2702,56905\n2535,56905\n2535,55719\n2221,55719\n2221,54475\n2427,54475\n2427,53302\n1837,53302\n1837,52073\n1940,52073\n1940,50856\n1855,50856\n1855,50338\n94918,50338\n94918,48430\n2294,48430\n2294,47210\n2136,47210\n2136,45974\n1928,45974\n1928,44816\n2583,44816\n2583,43602\n2623,43602\n2623,42452\n3100,42452\n3100,41261\n3276,41261\n3276,39997\n3124,39997\n3124,38711\n2970,38711\n2970,37675\n3839,37675\n3839,36558\n4329,36558\n4329,35324\n4431,35324\n4431,34177\n4825,34177\n4825,32887\n4842,32887\n4842,31903\n5669,31903\n5669,30777\n6123,30777\n6123,29546\n6355,29546\n6355,28756\n7505,28756\n7505,27268\n7271,27268\n7271,26599\n8579,26599\n8579,25471\n9042,25471\n9042,24432\n9662,24432\n9662,23524\n10480,23524\n10480,22341\n10894,22341\n10894,21323\n11559,21323\n11559,20292\n12213,20292\n12213,19289\n12911,19289\n12911,18288\n13619,18288\n13619,17248\n14294,17248\n14294,16628\n15419,16628\n15419,16039\n16548,16039\n16548,15220\n17435,15220\n17435,14383\n18306,14383\n18306,13672\n19286,13672\n19286,12373\n19789,12373\n19789,12150\n21156,12150\n21156,11025\n21831,11025\n21831,10536\n22972,10536\n22972,10037\n24092,10037\n24092,9428\n25134,9428\n25134,8698\n26104,8698\n26104,8188\n27203,8188\n27203,7023\n27961,7023\n27961,6535\n29085,6535\n29085,6343\n30338,6343\n30338,5846\n31445,5846\n31445,5498\n32612,5498\n32612,4868\n33671,4868\n33671,4752\n34914,4752\n34914,4301\n36039,4301\n36039,4224\n37274,4224\n37274,3841\n38419,3841\n38419,2952\n39455,2952\n39455,3029\n40716,3029\n40716,2858\n41917,2858\n41917,2054\n43024,2054\n43024,1940\n44247,1940\n44247,2483\n45530,2483\n45530,1888\n46701,1888\n46701,2338\n47943,2338\n47943,1574\n49138,1574\n49138,2240\n50360,2240\n50360,2185\n51572,2185\n51572,1632\n52818,1632\n52818,1686\n54046,1686\n54046,2670\n55174,2670\n55174,2098\n56468,2098\n56468,3008\n57562,3008\n57562,2737\n58839,2737\n58839,2624\n60108,2624\n60108,3047\n61269,3047\n61269,3156\n62506,3156\n62506,3773\n63605,3773\n63605,3923\n64839,3923\n64839,4634\n65889,4634\n65889,5550\n66844,5550\n66844,5123\n68319,5123\n68319,6288\n69150,6288\n69150,6269\n70494,6269\n70494,7268\n71362,7268\n71362,7673\n72517,7673\n72517,8042\n73704,8042\n73704,8701\n74732,8701\n74732,9408\n75727,9408\n75727,10095\n76733,10095\n76733,10720\n77781,10720\n77781,11483\n78733,11483\n78733,12191\n79725,12191\n79725,13168\n80497,13168\n80497,13986\n81391,13986\n81391,14395\n82658,14395\n82658,15550\n83245,15550\n83245,15992\n84524,15992\n84524,17041\n85200,17041\n85200,18048\n85906,18048\n85906,19035\n86624,19035\n86624,19949\n87426,19949\n87426,21071\n87960,21071\n87960,21864\n88927,21864\n88927,22634\n89956,22634\n89956,24072\n89994,24072\n89994,24882\n90983,24882\n90983,25922\n91617,25922\n91617,26848\n92462,26848\n92462,28215\n92481,28215\n92481,29352\n92908,29352\n92908,30328\n93678,30328\n93678,31384\n94298,31384\n94298,32580\n94581,32580\n94581,33691\n95074,33691\n95074,34845\n95453,34845\n95453,35942\n96018,35942\n96018,37096\n96418,37096\n96418,38437\n96085,38437\n96085,39507\n96817,39507\n96817,40609\n97511,40609\n97511,41939\n97013,41939\n97013,43093\n97474,43093\n97474,44316\n97482,44316\n97482,45474\n98107,45474\n98107,46742\n97503,46742\n97503,47930\n97950,47930\n97950,49140\n98289,49140\n98289,50359"; +} \ No newline at end of file