Explorar o código

Day 13 part 1

Lukas Angerer %!s(int64=2) %!d(string=hai) anos
pai
achega
79e80f5c1b
Modificáronse 5 ficheiros con 1559 adicións e 2 borrados
  1. 75 0
      Day13/Image.cs
  2. 17 2
      Day13/Parser.cs
  3. 33 0
      Day13/Program.cs
  4. 1419 0
      Day13/inputs/input-lar.txt
  5. 15 0
      Day13/inputs/sample1.txt

+ 75 - 0
Day13/Image.cs

@@ -0,0 +1,75 @@
+namespace Day13;
+
+public class Image
+{
+    private readonly IList<string> _lines;
+
+    public Image(IList<string> lines)
+    {
+        _lines = lines;
+    }
+
+    public void Print()
+    {
+        foreach (var line in _lines)
+        {
+            Console.WriteLine(line);
+        }
+    }
+
+    public int FindFold()
+    {
+        var map = new Dictionary<string, List<int>>();
+        for (var i = 0; i < _lines.Count; i++)
+        {
+            if (!map.ContainsKey(_lines[i]))
+            {
+                map[_lines[i]] = new List<int>();
+            }
+            map[_lines[i]].Add(i + 1);
+        }
+
+        var centers = map
+            .Where(kvp => kvp.Value.Count >= 2)
+            .SelectMany(kvp =>
+                Pairs(kvp.Value.Count)
+                    .Select(p => 
+                        new AxisInfo(
+                        (kvp.Value[p.Left] + kvp.Value[p.Right]) / 2,
+                        Math.Min(kvp.Value[p.Left], kvp.Value[p.Right]),
+                        Math.Max(kvp.Value[p.Left], kvp.Value[p.Right]))
+                    )
+                    .Where(info => (info.Upper - info.Lower) % 2 == 1)
+            ).GroupBy(info => info.Center);
+
+        foreach (var group in centers)
+        {
+            var toBorder = Math.Min(group.Key, _lines.Count - group.Key);
+            if (group.Count() == toBorder)
+            {
+                return group.Key;
+            }
+        } 
+        return -1;
+    }
+
+    public Image Rotate()
+    {
+        return new Image(Enumerable.Range(0, _lines[0].Length)
+            .Select(i => new string(_lines.Select(x => x[i]).ToArray()))
+            .ToList());
+    }
+
+    private static IEnumerable<(int Left, int Right)> Pairs(int n)
+    {
+        for (var i = 0; i < n - 1; i++)
+        {
+            for (var j = i + 1; j < n; j++)
+            {
+                yield return (i, j);
+            }
+        }
+    }
+
+    private record AxisInfo(int Center, int Lower, int Upper);
+}

+ 17 - 2
Day13/Parser.cs

@@ -7,13 +7,28 @@ public partial class Parser
     [GeneratedRegex(@".*")]
     private partial Regex LineMatch();
     
-    public void Parse(string inputFile)
+    public IEnumerable<Image> Parse(string inputFile)
     {
         using var reader = File.OpenText(inputFile);
-        
+
+        var buffer = new List<string>();
         while (!reader.EndOfStream)
         {
             var line = reader.ReadLine()!;
+            if (string.IsNullOrEmpty(line) && buffer.Count > 0)
+            {
+                yield return new Image(buffer);
+                buffer = new List<string>();
+            }
+            else
+            {
+                buffer.Add(line);
+            }
+        }
+
+        if (buffer.Count > 0)
+        {
+            yield return new Image(buffer);
         }
     }
 }

+ 33 - 0
Day13/Program.cs

@@ -16,5 +16,38 @@ if (args.Length < 1)
 
 var inputFile = args[0];
 var parser = new Parser();
+var images = parser.Parse(inputFile).ToList();
+
+var sum = 0;
+foreach (var img in images)
+{
+    var fold = img.FindFold();
+    if (fold > 0)
+    {
+        img.Print();
+        Console.WriteLine($"Original (Row): {fold}");
+        sum += 100 * fold;
+    }
+    else
+    {
+        var img2 = img.Rotate();
+        fold = img2.FindFold();
+        if (fold > 0)
+        {
+            img.Print();
+            Console.WriteLine($"Rotated (Col): {fold}");
+            sum += fold;
+        }
+        else
+        {
+            Console.WriteLine("Nope");
+            img.Print();
+            break;
+        }
+    }
+}
+
+Console.WriteLine();
+Console.WriteLine($"Total: {sum}");
 
 return 0;

+ 1419 - 0
Day13/inputs/input-lar.txt

@@ -0,0 +1,1419 @@
+#..###..#####
+###..#.......
+.##.#.#.###..
+#####....####
+#####....####
+.##.#.#.###..
+###..#.......
+#..###..#####
+#.##.##.....#
+#########.###
+#.##.#..#.###
+#.##.#..#.###
+#########.###
+#.##.##.....#
+#.####..#####
+###..#.......
+.##.#.#.###..
+
+.....#########.
+#.#..#...#..#..
+.####...#.#.#..
+#####...#.#.#..
+#.#..#...#..#..
+.....#########.
+###..#....####.
+.#...###..#...#
+...#########.#.
+##.##.##.#####.
+##.##.##.#####.
+...#########.#.
+.#...###..#...#
+###..#....####.
+.....#########.
+#.#..#...#..#..
+#####...#.#.#..
+
+#.####..#####
+.##..##...###
+...##...#####
+##..#.##.....
+..##.#.#.####
+.##....######
+.#...###.####
+##.##..#.####
+#...##.#.....
+...#.###.#..#
+#.#...###.##.
+....#..#..##.
+##.......#..#
+.#.##..#.####
+.#.##..#.####
+##.......#..#
+....#..#..##.
+
+####.#.
+##.#.##
+#..#...
+.#.#...
+######.
+...#.#.
+...#.#.
+######.
+.#.#...
+#.##...
+##.#.##
+####.#.
+###..#.
+##.###.
+.....#.
+.....#.
+##.###.
+
+....##...
+..##....#
+...#.#.##
+...#.#.##
+..##....#
+....##...
+##...#..#
+..#.#..#.
+...###..#
+##.####.#
+..#...#..
+.#...###.
+...#..#..
+
+.#.######.#....
+##.#....#.##..#
+#.##.##.##.####
+#.#...#..#.####
+############..#
+...#.##.#......
+...#....#......
+###.#..#.###..#
+..########..##.
+.##########....
+.#.##..##.#.##.
+
+##..#.#
+....##.
+##...##
+#...###
+..#.###
+.##..#.
+...#.#.
+...#.#.
+.#...#.
+.#...#.
+...#.#.
+...#.#.
+.##..#.
+
+.####..###...
+..##.......##
+##..##..#.#..
+........#####
+#.##.####..##
+#.##.###.#...
+##..##.#.....
+#.##.######.#
+..##..##.#.##
+#....##..#.##
+##..##...#...
+########.##..
+#....####.#..
+..##..#..####
+######.###.##
+######.#.##..
+..##...#..###
+
+...##.....#..##
+..#..#.....#...
+##.##.##.#..#..
+..#..#...##..##
+..........##...
+..#..#..##..#..
+#......###.#...
+#..##..#..#.###
+........#.#....
+##....##.#.##..
+##.##.###.#..##
+##....###.##.##
+#.####.#.#..#..
+.######...##...
+...##..##..#.##
+.##..##.#.###..
+.#....#.##.##..
+
+.#.##..##.#
+..##.##.##.
+##..#..#..#
+.#..####..#
+#..........
+..##....##.
+..##....##.
+##..####..#
+.##########
+#....##....
+..##.##.##.
+#..........
+#####..####
+
+#....##....
+.#....#.#..
+..#...#.###
+###...###..
+....#.#.###
+#.#.##.####
+..#######..
+.##...#.#..
+.##...#.#..
+..#######..
+#.#.##.####
+....#.#.###
+.##...###..
+..#...#.###
+.#....#.#..
+
+.#....##..#
+#.#..###..#
+#.##...#..#
+#..#####..#
+####.#.#..#
+.#.###.#..#
+####...#..#
+.##.#.#.##.
+#....#.####
+#.##...#..#
+##..####..#
+.###..##..#
+.#.#..##..#
+##..####..#
+#.##...#..#
+
+#..##.#.#.#..
+#..##.#.#.##.
+.##..#.....#.
+.##..##......
+#####..######
+#.###.##...##
+...##.#..##..
+#.##...#..#.#
+...#..###..##
+#.#.##..#.#.#
+.....#..#####
+#.#...#.#...#
+#.#...#.#...#
+.....#..#####
+#.#.##..#.#.#
+...#..###..##
+#.##...#..#.#
+
+#..#.##..####
+####...#.####
+.##..#..##..#
+.#..#.#.##..#
+.###...#.....
+#.#.###.#####
+#.#.#########
+
+#.##.##.##.##..##
+...#....#...#....
+.....##.....#.###
+#...####...#.#...
+..#.####.#..#.#..
+#....##....####..
+#...#..#...#.####
+.#.######.#..#.##
+##.#.##.#.#####..
+.##......##.#.###
+..###..###....###
+............##...
+###.####.###..###
+#..##..##..#.....
+.#..#.##..#...#..
+
+.......#..##.##
+..##...#.##.#.#
+##..##.##.#..#.
+##..######...#.
+######..######.
+..##..#.####..#
+#.##.#.#.#..##.
+######...##..##
+##########...##
+##..####.##....
+######...##....
+..##..####.##.#
+..##..###.#.#.#
+
+#####.#.######.
+#.##.#####.##.#
+...#...#..##.##
+.#......#..#.##
+.#......#..#.##
+...#...#..##.##
+#.##.#####.##.#
+#####.#.######.
+....#.####.####
+...####..#.###.
+...####.#.#.###
+...####.#...###
+...####..#.###.
+
+###..####
+....###.#
+....###.#
+#.#.##...
+..#.....#
+..#.....#
+#.#.##...
+....###.#
+....###.#
+###..##.#
+....#.#..
+##....##.
+.#.#.....
+.#.#.....
+##....##.
+
+....##.
+.##....
+..##..#
+#.#####
+##.####
+###....
+##.....
+##.####
+#.#####
+..##..#
+.##....
+....##.
+.#..##.
+#.#....
+.#..##.
+
+..#..#....##..#
+..#..#......##.
+##....##..#...#
+.######.##..##.
+##....###.##..#
+.#.##.#...#....
+#.####.#.##....
+
+.#.#...#.#.#..#
+...###...##.##.
+.##.....#......
+.##.....#......
+...###...##.##.
+.#.#...#.#.#..#
+#..##...###.#..
+..#.#.#.#..###.
+..#.#.#.#..###.
+#..##...###.#..
+.#.#...#.#.#..#
+...###...##.##.
+###.....#......
+
+..#..#.#..#
+..#..#.#..#
+###..##...#
+######.#.##
+##....#####
+..##.#.##..
+..##...###.
+...#....###
+..#.##..#..
+##.......##
+##..##...#.
+##..####.##
+##..#.....#
+.####..#..#
+..##.....#.
+
+##..########...
+#....###...#...
+.......#.#...##
+#....##..#.##.#
+#######.#..#.##
+..##...##....#.
+#.##.#.#.###..#
+#.##.##.#.##...
+#.##.#.####...#
+.#..#..#.#...##
+.#..#..#.#...##
+#.##.#.####...#
+#.##.##.#.##..#
+
+##.##.###.....#
+.....###.###.##
+...#.#.##..##..
+..#.######..#..
+...#.#..#.##.##
+..#..#.###.....
+..##..#....##..
+
+.#.###..##.
+.#...#####.
+#..##.###.#
+..####.#...
+#..#...#...
+####.##..##
+..###......
+..###......
+####.##..##
+#..#...#...
+..####.#...
+#..##.#.#.#
+.#...#####.
+.#.###..##.
+.#.###..##.
+
+##..##..#####..
+#.##.##..#...#.
+#....#.##.#..##
+##..######..###
+..##...##..##..
+..##...##..##..
+##..######..###
+#....#.##.#..##
+#.##.##..#...#.
+##..##..#####..
+....#.##..##.##
+#.##.##.##..##.
+.#..#.#..##.###
+
+.#..########..#..
+#...#......#...##
+.#....####....#..
+######.##.#######
+...##.#..#.##....
+#....######.#..##
+###....##....####
+##.###.##.###.###
+##.#..####..#.###
+#..##......##..##
+#.##...##...##.##
+....########.....
+.###.##..##.###..
+.##..##..##..##..
+##...#.##.#...###
+
+..#.##.#....#
+##.#..#.####.
+.########..##
+#.#.##.#.##.#
+..######....#
+#..#..#..##..
+#.#.##.#.##.#
+.#..##..#..#.
+...#..#......
+#...##...##..
+#.##..##.##.#
+#.######.##.#
+##.#..#.###..
+
+..#.#####..
+###..#.#.##
+..##..##.#.
+..##..####.
+###..#.#.##
+..#.#####..
+....##.####
+..##.#.....
+..#.##.####
+#####...#..
+#####......
+###.#.#.#..
+..#...#####
+
+.##.#..#.#..##...
+..#..##.......#..
+###..###.#..##.##
+###.#.#####....##
+....#.###.###.###
+##.#.#...##.##...
+###.#.####.#.#...
+..#.#.###.##..###
+##.#.#.....#.....
+.....##.##..#.###
+..#.#..######.###
+..#..##.#####.###
+##..##.##..###.##
+
+...#...##
+.#....###
+..#.#.#..
+.#.###.##
+.##......
+#..#..#..
+#...#####
+#.#.###..
+#.#.#.#..
+.##...###
+.##...###
+..#.#.#..
+#.#.###..
+
+....####.##..##
+#..###.#.#...##
+#..###.#.#...##
+....####.##..##
+...##..##.#..#.
+##.##.##....##.
+#.#...##...#.##
+..###.....#.#..
+#.##.#..###.#..
+...##.#....#..#
+#...##.######..
+##.###...#....#
+##.#.##...##..#
+####........###
+####........###
+##.#.##...##..#
+#..###...#....#
+
+..#......#..#..
+..#......#..#..
+##..####..##.##
+.##########.#..
+.#.#....#.#.###
+##.######.###..
+##.######.##...
+..########.#.##
+.#........#...#
+....####......#
+############...
+####.##.####.##
+.#.#....#.#.#..
+
+##..###.#..##
+#.##.#.###.#.
+#.##.#.###.#.
+##..###.#..##
+.....#.#.##..
+........#....
+..##.....#..#
+#.##.#.#..#..
+.####..#.###.
+.####..#.#.##
+.####.#....#.
+
+#..#..#.#.###
+#...#.##.##.#
+..##....#....
+####..###...#
+####..###...#
+..###...#....
+#...#.##.##.#
+#..#..#.#.###
+###.##...#...
+.##..#.###.##
+..##...##..##
+..#.#..##...#
+..#.#..##...#
+..##...##..##
+.##..#.###.##
+
+##.##..
+...#..#
+...#..#
+##.##..
+#.#####
+##.#...
+##.#.##
+..#..##
+####.##
+
+..#......#.#...
+.##......##...#
+##..####..####.
+.....##.....###
+##..#..#..##.#.
+.#.##..##.#...#
+#...#..#...#..#
+#...#..#...#..#
+.#.##..##.#...#
+##..#..#..##.#.
+.....##.....###
+##..####..####.
+.##......##...#
+
+#.#..#...
+#.#..#...
+...####.#
+.##....##
+###....##
+...####.#
+#.#..#...
+
+...#.#.##.#.#..
+.#..#......#..#
+#.##.#.##.#.##.
+#.##.#.##.#.##.
+.#..#......#..#
+...#.#.##.#.#..
+..#.#.#..#.#.#.
+.#.#...##...#.#
+.###.######.###
+####.#....#.###
+...#..####..#..
+..#...#..#...#.
+#...#.####.#...
+#..##########..
+#...##.##.##..#
+#...#.#..#.#...
+##.#.######.#.#
+
+####....###
+###.####.##
+....#..#...
+....####...
+..#......#.
+##...##...#
+..########.
+..###..###.
+..##.##.##.
+####.##.###
+##..####..#
+###..##..##
+..##....##.
+####.##..##
+##...##...#
+####....###
+##..#..#..#
+
+.##.###.###
+.##.##..###
+.##.##..###
+.##.###.###
+...#.#..#.#
+..##...#...
+##.#.#..#.#
+#.##..#..#.
+...###...#.
+..#..##....
+..#.##.####
+......##...
+##.#...#..#
+
+......#..#...
+...#.###.#...
+##.#...###.##
+##.#...###.##
+...#.###.#...
+...#..#..#...
+###.####.#..#
+###.#.#..##..
+#######.#.###
+##.##..#.###.
+....##.#.##.#
+###.###.#..#.
+...#####...##
+
+#.##...#.#..###
+##.#..#.#....#.
+#..#..#.#....#.
+#.##...#.#..###
+##.###.##..#...
+...#......#...#
+.#.....#..#.##.
+.###..#...#.###
+.#...#####..##.
+.#...#####..##.
+.###..#...#.###
+.#.....#..#.##.
+...#......#...#
+
+...###..##..#
+..###..###..#
+..####.###..#
+...###..##..#
+..#...#.###..
+..#...###.#..
+..#..#.#.....
+##..###.###.#
+...##..#..#.#
+...#..#..##..
+###.##...#.##
+..##.#.#..#..
+..##.####.###
+
+##.##.##...##..
+#.#.#..###.##.#
+#.#.#..###.##.#
+##.##.##...##..
+#..###..#..##..
+##..##.###.##.#
+.#..###...####.
+.#.#####.#..#.#
+#..#...##.#..#.
+
+######.
+..#....
+##..#.#
+.###.#.
+#.#####
+....#.#
+....#.#
+#.#####
+.#.#.#.
+##..#.#
+..#....
+######.
+######.
+
+##..#.#....
+##..#.#....
+..#.#.#....
+#######.##.
+#.###...##.
+###.##..##.
+..#........
+.####.#....
+#.##...##.#
+####...####
+..##.#..##.
+..#.#......
+..##.#.....
+
+.##.##...
+#...#.#..
+.##....#.
+........#
+#..##..#.
+.##.#.#.#
+....#..#.
+####..##.
+####..#.#
+####..#.#
+####..##.
+
+##..##.#..#.##.
+####..#.##.#..#
+..#.#...##...#.
+.#..##.####.##.
+#.##..##..##..#
+.##.##.#..#.##.
+.##....#..#....
+#..#####..#####
+#.#############
+.#..##.####.##.
+.#..##.#..#.##.
+#..#..#.##.#..#
+.######.##.####
+
+.#..#...#####....
+#.#.#.#.###...###
+.#..##..#.#.#.#.#
+.#######..#.#.###
+...#.......######
+.##...##.#.##..##
+.#.##...###.#.###
+.#.##...###.#.###
+.##...##.#.##..##
+
+###..####.#
+###..####..
+#....##.#..
+#.....#.###
+.#.##..###.
+.#.##....#.
+.##.##..#.#
+.#..##.#...
+...#.##.##.
+...#.##.##.
+.#..##.#...
+.##.##..#.#
+.#.##....#.
+.#.##..###.
+#.....#.###
+
+.#.##.#
+#......
+.##..##
+...##..
+...##..
+.##..##
+#......
+.######
+.#....#
+#.#..#.
+###..##
+..#..#.
+#......
+##....#
+.######
+##....#
+.#....#
+
+.#..#.#.##....#
+.....#.##...#.#
+.....#.##...#.#
+.#..#.#.##....#
+.####..#..##..#
+...###...##.##.
+..##.#..##..#..
+##..#.#####...#
+#.###.#.....#.#
+#.#.##.##..##.#
+#.#.##.##..##.#
+#.###.#.....#.#
+##..#.#####...#
+..##.#..##..#..
+...###...##..#.
+
+..#.##.###.#.
+#..##...#.#..
+#.##...#..##.
+#.###.##.#...
+.#.##....#...
+#.##.###..#..
+......#.#.#.#
+......#.#.#.#
+#.##.###..#..
+.#.##....#...
+#.###.##.#...
+#.##...#..##.
+#..##...#.#.#
+..#.##.###.#.
+..#.##.###.#.
+
+.##.#.#.##.
+.##.##....#
+.##.##....#
+.##.#.#.##.
+.##.##.#.##
+#..#..#.#..
+.....##.##.
+.##.##.....
+....###...#
+.#####....#
+#####.#...#
+#####...#..
+#..#.#.####
+.##.#####.#
+.##..##..##
+
+...##.#..#.
+.#.##.####.
+.#...#.##.#
+#.#########
+..#########
+##...#....#
+##...#.##.#
+..#########
+#.#########
+
+###..##..########
+....#..#.#..####.
+#.#..##..#.#....#
+..#..##..#..#..#.
+##.#....#.#######
+###......###....#
+.#.##..##.#.####.
+#...####...######
+.#.#.##.#.#......
+###.####.###....#
+#..........#....#
+..#.####.#..#..#.
+...##..##....##..
+.#.##..##.#..##..
+...##..##........
+.#.#....#.#......
+..##.##.##...##..
+
+..#.#....##
+......#....
+...#...#.#.
+.###..#.#..
+.#.#.##..##
+#..####..##
+#..####..##
+
+....#...#
+###.#...#
+#####..##
+#######..
+..#.##.#.
+##..#....
+###..##.#
+###..##.#
+##.##....
+
+..##.#...#..#
+..#..###..###
+###.....#.#..
+..##..#...#.#
+##....#..##..
+##....#..##..
+..##..#...#.#
+###.....###..
+..#..###..###
+..##.#...#..#
+####...#..###
+..#.##..#..##
+..#...##.#...
+
+..#..##.##..#.#
+#####....#.##..
+.#..##..######.
+#####...##.####
+..##.#.##....##
+...#####.#.####
+..##..#...#.###
+.###..#...#.###
+...#####.#.####
+..##.#.##....##
+#####...##.####
+.#..##..######.
+#####....#.##..
+..#..##.##..#.#
+.###..###.#.#.#
+.###..###.#.#.#
+..#..##.##..#.#
+
+#...#.#..
+#...#.#..
+..##.#...
+##..##...
+.#...##..
+#..###.##
+#.#####..
+.#....##.
+.#..###..
+
+#..##..#.#...##.#
+......#....####.#
+.##.####.######.#
+........####.#..#
+#####.#..##.#....
+#..##..#.###..#.#
+#..####.########.
+#..####..#######.
+#..##..#.###..#.#
+#####.#..##.#....
+........####.#..#
+
+#...##.##.#..
+##.##..###.##
+#.######...##
+##.#.########
+.#....#......
+#.#..##.##...
+.##.#.##...##
+##..###.#....
+..####...#.##
+.##.####..###
+#...##.#.##..
+#...##.#.##..
+..#.####..###
+
+#....#.
+#.###..
+#.###..
+#....#.
+..###..
+.####..
+.....#.
+...#.#.
+####..#
+..###..
+#...#..
+......#
+##...#.
+##...#.
+......#
+#...#..
+...##..
+
+#..#..#.####.#.
+..#.###.#####..
+.....#.###...#.
+..#....#.#.##.#
+..##..##.#.####
+..#####.....#..
+..#####.....#..
+.###..##.#.####
+..#....#.#.##.#
+.....#.###...#.
+..#.###.#####..
+#..#..#.####.#.
+.#####.##.#..##
+.#####.##.#..##
+#..#..#.####.#.
+
+......#
+..##...
+......#
+.#..#.#
+##..###
+#....##
+##..##.
+##..###
+##..###
+##..##.
+#....##
+##..##.
+.#..#.#
+......#
+..##...
+
+#....##.#
+.######.#
+#.#..##.#
+.#.###.##
+.#.###.##
+#.#..##.#
+.######.#
+#....##.#
+#..###...
+..#.#..#.
+#.###.##.
+###.#####
+.###..##.
+#.###.##.
+#.###.##.
+.####.##.
+###.#####
+
+.#.##.#.#..#.
+.#.##.#.#....
+##.##.##....#
+..###...##..#
+...##....#.##
+.....##.##.##
+###.....#.###
+.##.###.#..#.
+.##.###.#..#.
+###.....#.###
+.....##.##.##
+
+######.######
+.##....#...##
+#####.#.##...
+.##.#.###..##
+.....#...#...
+#..#####.#.##
+#######.#....
+.##...#..#.##
+....##..###..
+##.###...#...
+.##.##.......
+.....#.###...
+#####.##...##
+.##.......###
+.##..##..##..
+
+#......#..#....##
+#..##..##....####
+#.####.##..#.##.#
+..#..#..#..#..#.#
+.#....#..#.##..#.
+##.##.###.##.####
+........#.#...#..
+.#....#.##.....#.
+...........##..##
+##.##.#####......
+##..#.##.#..#.##.
+#..##..#.#.####.#
+#..##..#.#.####.#
+
+.#..#..#..#
+.###....###
+#..#.##.#..
+####....###
+####....###
+#..#.##.#..
+.###.##.###
+
+....#..##..#.....
+.##.#......#.##..
+.######..###.##..
+.......##........
+##.#........#.###
+#..#..####..#..##
+.##...####...##..
+####........#####
+..###.#..#.###...
+.####.####.####..
+.#..###..###..#..
+.###..####..###..
+..#.#.####.#.#...
+..#.##.##.##.#...
+##....####....###
+#.##..####..##.##
+###..#.##.#..####
+
+.##.##.....##
+#.#..#...#.#.
+..##...##.###
+..##...##.###
+#.#..#...#.#.
+.##.##....###
+##..#.....#.#
+.#..#..#.####
+....#####.##.
+....#####.##.
+.#..#..#.####
+
+#..#..######..#..
+.##.#.#....#.#.#.
+#.#.#...##...#.#.
+.....##....##....
+.#.#..#....#..#.#
+#.....##..##.....
+#.....##..##.....
+
+.####.##.##.##.
+..##...#....#..
+.####.#.####.#.
+.......######..
+..##...........
+#....#...##...#
+.####...####...
+.......#....#..
+......#.####.#.
+##..###########
+######.##..##.#
+.####.#.#..#.#.
+......##....##.
+#.##.##########
+.......#.####..
+
+#.#....#.#..#
+.###..###.#..
+.##....##...#
+...#..#....##
+#........#.#.
+####..####...
+....##....##.
+....##....##.
+####..####.#.
+
+.###.#.###..#
+.....#####.##
+.#.##.##..##.
+...##..#.##..
+######...#...
+######...#...
+...##..#.##..
+.#.##.##..##.
+.....#####.##
+.###.#.###..#
+###...##.#.#.
+..#..##.#.#.#
+###.#..#...#.
+#.##.##.#..##
+#.##.##.#..##
+###.#..#...#.
+.....##.#.#.#
+
+...#..#.#.#
+#...#.#..##
+...#.#.#.#.
+#.###...#..
+....#...##.
+....#...##.
+#.###...#..
+...###.#.#.
+#...#.#..##
+...#..#.#.#
+.#...###...
+####....#..
+####....#..
+.#...###...
+...#..#.#.#
+#...#.#..##
+...###.#.#.
+
+.#...#.
+.#...#.
+#...#..
+##.#..#
+#####.#
+..#....
+##...##
+##...##
+#.#....
+#####.#
+##.#..#
+#...#..
+.#...#.
+
+.....###......#
+.##...#...#....
+#..##..##.###..
+....##.#....#.#
+#####...###....
+.##..##....#.#.
+#..#..#..#...##
+####.#.#####.#.
+.##...##....#..
+....#.##.#####.
+....#.##.#####.
+.##...##...##..
+####.#.#####.#.
+#..#..#..#...##
+.##..##....#.#.
+#####...###....
+....##.#....#.#
+
+.##..##..#.
+.######..#.
+#.####.##..
+#.#....#.#.
+.######.##.
+#..##..#..#
+###..###.##
+#..##..#...
+.#.##.#..#.
+#.####.#...
+.######..#.
+#########.#
+#.####.#...
+.#.##.#..##
+.######.##.
+.######.##.
+.#.##.#..##
+
+#.#....###....#
+#.#.####.######
+.####.#...#..#.
+#....#..#######
+##.#.#....####.
+#####..#.######
+#####..#.######
+##.#.#....####.
+#.......#######
+
+.#..##.##
+#.....###
+.##.#.###
+#..#.#...
+#..##..##
+...##....
+#...#..##
+.####.#..
+##..#####
+.#....#..
+.#..#....
+......#..
+......#..
+.#..#....
+.#...##..
+##..#####
+.####.#..
+
+...##############
+..##.....##......
+#.....###.##.##.#
+#.#.##.#####....#
+##.#....#.....#..
+#...#..##.#.####.
+.##.#..#.##.#..#.
+#...##..#..#....#
+#...##..#..#....#
+
+.##.#####
+#...#..#.
+#.#..##.#
+##....#..
+.#..##.#.
+.#..##.#.
+##....#..
+#.#..##.#
+#...#..#.
+..#.#####
+.##.#.##.
+..#..#.##
+#####..#.
+#####..#.
+..#..#.##
+
+.#.#......#.#..
+#..########..##
+.####....####..
+#..###..###..##
+#.##..##..##.##
+..#........#...
+.############..
+#..#.#..#.#..##
+##.########.###
+.##.###.##.##..
+.#....##....#..
+###...##...####
+##..##..##..###
+
+.##.#..#..#..
+.......#..#..
+.###.#.####.#
+..####.#..#.#
+......######.
+.#####.#..#.#
+.##..########
+..##.#.#..#.#
+....###....#.
+#...#..#..#..
+#...#..#..#..
+
+##..#..#.
+##..#..#.
+#.###.##.
+#..#...##
+.#.#...##
+.##....##
+....##..#
+....##..#
+.##....##
+.#.#...##
+#..#...#.
+
+##.##.#..
+..#....#.
+######.##
+..####.#.
+....#.##.
+###.###..
+..###.#.#
+##...#.##
+..##.#.##
+##..#..#.
+..#.###.#
+....#..##
+..#...##.
+..###.##.
+..#.##...
+###.#.###
+###.#####
+
+##..##..#
+.##.#.#.#
+...#.##..
+#..#.##..
+.#####...
+..##.####
+..#..####
+..#..####
+..##.####
+
+...####....
+##......###
+#.#....#.##
+#.######.##
+#..#..#..##
+#.##..##.##
+##..##..#..
+
+.....##.###..###.
+#....##.###..###.
+.##....##.####.##
+.#.##.#####..####
+#.....#.###..###.
+##..#.#..#.##.#..
+##.#.....#....#..
+#.#.#.##..####..#
+####..###.#..#.##
+
+.#..##.#.#####.
+.#..##.#.#####.
+#..#.#.###.#...
+.#.#.#.##..#...
+..#...#.#...##.
+......#.####.##
+###...##.#..###
+##....##.#..###
+......#.####.##
+
+#.###.#
+####...
+.#....#
+.#....#
+####...
+#.###.#
+#.###..
+###.###
+.....##
+.##..##
+###...#
+##....#
+.##..##
+.....##
+###.###
+
+#.##.##.##.#..#
+..##....##..###
+.####..####...#
+.####..####..##
+#.##.##.##.#..#
+############.#.
+############...
+#.##.##.##.#...
+############...
+#.##.##.##.#.##
+.####..####.##.
+##..####..##...
+#.##.##.##.####
+#....##....###.
+############.#.
+............###
+..###..###..##.
+
+.#..#.#.#.#.#....
+#########.##.####
+#########.##.####
+.#..#.#.#.#.##...
+#.##.#.#..#.#....
+..#####.#.#..#...
+.##.#.#...##.#...
+...###.#.##..#...
+#.....###....#.#.
+..#..####.##..##.
+#.#..#...####....
+#.#..#...####....
+..#..####.##..##.
+#.....###....#.#.
+...###.#.##..#...
+.##.#.#...##.#...
+..#####.#.#..#...
+
+.##.##.##..##
+...####..##..
+#..#.....##..
+.##.##.#.##.#
+####.#...##..
+#..#####.##.#
+.##.#.#.#..#.
+######.######
+....#.##.##.#
+
+.#######..#..
+...#.#.#...##
+...#.#.#....#
+.#######..#..
+.#######..#..
+...#.#.#....#
+...#.#.#...##
+.#######..#..
+.#..#.#.##.#.
+....####.....
+#..##.#.#####
+##...########
+.##.#...#..#.
+
+..#..##..##
+..#..##..##
+##...#.#.#.
+#.#.#.#....
+.###..####.
+##.#.....##
+..#.#.##..#
+...#...##..
+#########.#
+#####.###.#
+...#...##..
+..#.#.##..#
+##.#.....##
+.###..####.
+#.#.#.#....

+ 15 - 0
Day13/inputs/sample1.txt

@@ -0,0 +1,15 @@
+#.##..##.
+..#.##.#.
+##......#
+##......#
+..#.##.#.
+..##..##.
+#.#.##.#.
+
+#...##..#
+#....#..#
+..##..###
+#####.##.
+#####.##.
+..##..###
+#....#..#