diff --git a/2025/day12/input b/2025/day12/input new file mode 100644 index 0000000..b299cc5 --- /dev/null +++ b/2025/day12/input @@ -0,0 +1,1030 @@ +0: +### +.#. +### + +1: +..# +.## +### + +2: +### +### +..# + +3: +.## +### +#.# + +4: +##. +.## +..# + +5: +#.# +#.# +### + +47x49: 60 48 64 49 52 78 +48x36: 57 34 45 38 49 43 +47x36: 45 33 51 41 39 49 +41x38: 38 34 41 43 47 38 +44x49: 61 59 59 40 68 49 +38x40: 20 32 27 21 26 29 +41x44: 34 36 34 28 23 27 +37x35: 24 19 15 23 20 31 +42x49: 33 33 29 37 38 53 +42x38: 41 40 48 40 39 37 +39x37: 36 32 42 36 39 37 +35x45: 39 29 39 40 44 51 +36x45: 37 39 44 49 48 34 +40x49: 36 41 38 39 31 23 +35x47: 28 32 24 17 32 32 +49x37: 43 23 30 33 38 25 +50x49: 61 63 65 67 62 59 +39x46: 38 34 26 34 29 33 +43x46: 37 33 33 37 32 37 +36x37: 21 25 26 23 26 22 +41x36: 17 22 38 20 30 28 +50x48: 78 52 58 60 61 59 +35x42: 46 46 29 40 35 31 +41x36: 21 25 26 31 24 28 +39x47: 42 49 51 44 49 48 +37x37: 37 28 31 40 43 33 +36x36: 24 25 22 27 21 24 +42x45: 52 50 60 40 44 44 +39x43: 37 31 29 24 32 29 +39x44: 45 51 44 47 36 40 +39x50: 39 49 49 64 43 54 +50x45: 67 55 56 55 54 58 +50x48: 63 67 62 51 60 67 +43x35: 25 25 19 22 37 26 +48x36: 47 38 48 45 43 44 +41x37: 40 42 39 43 32 36 +40x40: 39 40 46 36 47 40 +45x49: 44 49 39 29 47 31 +47x45: 55 59 41 61 53 57 +44x41: 33 32 27 24 33 32 +50x49: 63 72 65 59 54 63 +36x49: 39 34 34 30 34 20 +46x44: 34 35 34 32 29 45 +46x38: 27 31 34 27 28 33 +48x45: 54 36 37 39 35 39 +42x39: 38 44 35 49 40 46 +46x40: 38 29 30 32 31 34 +49x46: 69 61 62 59 60 37 +40x38: 30 21 26 27 29 22 +39x39: 50 37 38 29 32 46 +48x46: 78 43 56 54 49 56 +36x35: 28 33 32 35 24 40 +44x44: 41 35 33 21 28 38 +43x36: 44 43 37 25 47 45 +46x49: 57 63 62 50 55 60 +50x46: 41 45 43 33 42 35 +44x41: 27 24 36 41 30 24 +47x46: 52 67 55 48 57 56 +49x35: 37 45 46 46 50 42 +44x38: 27 27 42 27 23 21 +38x50: 44 45 43 64 49 47 +45x35: 38 41 43 41 38 41 +45x35: 24 26 35 27 29 24 +44x42: 40 33 31 27 35 30 +37x42: 30 27 33 25 33 19 +47x38: 35 23 28 33 29 31 +49x45: 31 34 52 36 47 40 +47x43: 56 55 56 53 42 47 +42x43: 47 48 46 50 45 42 +42x41: 39 32 47 44 39 61 +46x36: 34 26 35 30 30 25 +46x35: 25 26 39 25 24 26 +49x45: 39 37 46 43 42 33 +40x37: 37 32 39 36 38 45 +38x48: 23 37 29 38 32 32 +42x42: 69 38 31 49 46 38 +41x48: 36 38 32 24 43 34 +46x41: 34 26 28 31 39 36 +43x47: 31 32 33 41 42 30 +40x43: 44 39 39 53 58 35 +38x43: 29 26 24 27 31 30 +50x50: 55 60 70 65 74 63 +48x47: 37 53 33 43 36 37 +36x45: 29 41 30 24 28 27 +40x40: 45 46 36 42 44 35 +42x38: 33 30 37 20 22 26 +37x36: 16 23 27 18 26 33 +43x39: 22 29 36 34 35 25 +47x49: 47 38 32 55 30 38 +40x49: 30 42 39 33 36 27 +45x44: 41 52 43 59 50 60 +49x48: 34 39 50 47 57 29 +49x42: 54 54 44 55 60 52 +39x46: 32 31 36 28 33 34 +39x35: 18 15 33 29 16 32 +44x49: 50 27 37 30 43 37 +50x45: 59 51 57 66 59 54 +50x39: 34 34 35 32 35 37 +36x37: 26 36 39 34 29 40 +40x40: 28 29 28 23 31 29 +44x40: 27 30 25 29 35 36 +35x48: 29 55 39 46 38 52 +45x35: 40 44 41 38 44 37 +41x50: 59 62 44 49 63 43 +47x40: 32 37 38 29 29 29 +45x37: 45 42 37 37 42 53 +39x45: 27 30 34 35 35 34 +42x42: 34 35 25 38 39 24 +42x49: 42 39 30 36 36 40 +49x36: 37 49 50 45 51 42 +48x42: 29 39 44 40 39 33 +41x36: 37 24 30 47 43 46 +41x41: 36 30 23 25 26 29 +39x49: 38 32 39 37 28 33 +46x47: 52 67 46 60 46 61 +47x38: 46 60 43 41 46 41 +37x47: 27 31 35 27 30 29 +35x36: 23 21 31 19 15 23 +41x35: 19 25 25 25 19 30 +38x38: 42 32 36 28 45 41 +41x46: 42 51 49 54 45 49 +48x46: 54 64 62 59 49 51 +50x41: 51 56 57 47 59 48 +37x44: 39 36 41 43 35 54 +35x40: 31 40 44 33 32 35 +42x40: 41 41 44 49 41 42 +50x35: 46 36 38 51 51 48 +50x50: 47 81 81 51 74 56 +37x36: 41 40 30 32 27 34 +39x41: 44 44 31 42 52 37 +50x35: 40 55 50 42 41 42 +41x46: 46 56 40 47 54 50 +39x39: 38 49 37 49 36 26 +50x50: 55 44 35 42 45 35 +38x40: 37 45 34 45 28 43 +37x43: 45 39 42 38 45 37 +48x43: 49 66 53 49 50 52 +49x40: 57 44 56 53 51 40 +37x43: 36 29 23 25 30 25 +50x37: 32 28 33 25 38 36 +39x47: 45 42 53 49 49 44 +46x39: 39 31 25 35 33 31 +43x38: 31 34 21 26 30 25 +37x42: 23 30 39 26 24 25 +50x39: 42 46 50 59 55 49 +48x43: 39 44 27 32 44 38 +36x40: 28 35 43 44 39 33 +46x35: 27 32 24 17 23 41 +44x48: 32 33 40 42 30 47 +43x35: 20 30 35 27 22 19 +44x44: 35 37 35 33 32 23 +45x35: 44 36 46 36 48 34 +46x49: 63 58 53 52 50 69 +39x45: 46 45 48 46 48 38 +44x47: 45 60 52 53 51 58 +35x46: 31 40 32 27 23 12 +48x47: 52 38 37 39 36 38 +43x39: 21 35 36 24 36 30 +50x36: 51 39 55 38 60 37 +45x45: 50 59 44 58 52 50 +35x50: 46 45 41 56 39 41 +49x36: 55 46 41 52 43 34 +39x39: 25 26 32 31 31 24 +46x39: 52 41 51 43 44 44 +38x48: 32 33 41 26 29 30 +45x40: 46 49 47 42 40 52 +49x41: 28 28 43 46 29 33 +50x43: 53 51 61 60 54 51 +42x43: 45 30 25 30 30 35 +48x38: 50 44 48 37 42 58 +39x39: 35 38 47 49 38 27 +49x41: 27 33 41 35 33 39 +45x50: 41 37 45 32 36 48 +45x43: 35 32 36 35 39 32 +45x43: 37 34 39 30 29 40 +44x37: 51 41 43 46 36 32 +36x47: 51 51 43 28 44 45 +42x35: 29 24 31 29 19 21 +36x47: 48 46 35 45 40 46 +42x37: 30 25 30 29 33 20 +47x48: 40 42 33 43 39 43 +50x42: 56 59 49 54 54 52 +42x37: 41 47 41 29 45 39 +40x47: 46 35 48 52 53 55 +46x48: 41 46 32 40 43 38 +45x40: 39 43 31 28 27 27 +44x42: 60 42 45 51 44 41 +50x45: 65 61 58 56 48 56 +42x46: 62 49 54 49 45 37 +39x43: 47 48 40 37 50 39 +41x45: 53 48 39 44 47 53 +50x44: 56 56 55 59 50 61 +45x40: 53 54 47 48 41 34 +38x40: 31 25 27 25 23 24 +39x50: 49 38 59 56 59 40 +41x40: 35 30 31 16 30 26 +48x38: 52 31 41 52 44 58 +40x46: 52 60 43 31 50 50 +43x38: 39 37 40 56 38 40 +40x50: 35 31 47 31 33 30 +47x40: 45 54 36 52 51 53 +38x40: 24 35 45 48 44 39 +39x47: 45 58 46 43 48 44 +39x40: 38 32 39 37 46 49 +37x49: 36 31 25 29 33 37 +48x41: 33 34 31 40 30 39 +50x41: 39 55 70 51 53 48 +40x50: 35 34 41 30 35 33 +50x40: 46 40 53 56 47 63 +39x40: 42 39 23 43 40 53 +50x36: 31 27 37 28 29 39 +38x40: 33 19 26 25 27 26 +37x39: 33 32 37 46 42 33 +38x49: 63 41 47 43 45 46 +35x39: 33 24 22 19 26 19 +44x38: 26 30 27 24 40 21 +46x45: 31 32 44 38 39 41 +41x41: 31 29 25 25 23 36 +39x35: 19 20 23 29 28 24 +44x44: 49 46 49 46 48 59 +36x47: 32 34 24 27 25 38 +40x38: 27 30 26 27 19 26 +48x49: 62 68 55 55 67 58 +49x43: 43 55 48 57 56 66 +42x45: 37 34 37 37 31 34 +42x42: 47 51 46 49 37 40 +49x35: 28 28 25 26 28 40 +49x35: 46 45 40 43 50 42 +38x37: 36 36 41 32 31 39 +47x44: 61 51 39 59 59 51 +49x41: 27 42 48 39 28 24 +46x46: 36 50 32 39 34 34 +37x48: 36 30 32 28 29 36 +50x44: 31 46 35 28 49 34 +37x38: 24 33 24 19 23 21 +48x35: 42 43 41 47 47 40 +38x42: 40 35 43 42 45 41 +36x42: 29 31 26 32 23 27 +44x40: 49 34 44 48 50 46 +40x48: 52 42 49 53 44 53 +41x44: 49 43 50 38 59 42 +35x43: 40 40 32 49 42 30 +42x41: 38 25 23 31 28 36 +45x39: 37 44 48 42 55 47 +46x42: 51 44 51 54 54 44 +44x39: 26 40 33 31 33 19 +38x38: 23 31 17 25 27 21 +39x41: 33 36 39 42 49 49 +35x42: 38 41 38 33 31 44 +48x36: 33 35 30 33 33 28 +42x35: 41 36 32 42 44 33 +42x49: 38 61 59 54 66 44 +41x45: 57 44 51 41 45 45 +41x48: 40 31 28 29 42 37 +47x45: 34 40 33 35 32 51 +37x47: 41 40 47 44 51 46 +45x50: 65 62 58 50 47 62 +41x35: 38 37 33 45 37 31 +41x37: 41 45 30 39 34 44 +47x42: 30 30 44 38 36 31 +37x48: 33 52 42 41 41 64 +41x36: 32 51 39 39 48 23 +36x39: 37 40 29 32 36 43 +39x43: 35 38 48 47 51 41 +43x40: 38 27 28 22 34 33 +37x36: 31 35 35 36 47 25 +47x35: 42 52 40 39 39 42 +40x50: 35 29 34 34 38 37 +50x47: 40 33 44 44 40 38 +48x38: 41 27 36 28 31 28 +42x41: 28 43 25 31 32 22 +42x45: 31 44 27 38 28 41 +49x35: 38 33 51 51 52 40 +42x44: 33 38 33 26 35 31 +45x42: 56 42 57 46 41 46 +46x39: 21 33 33 36 47 24 +42x47: 42 40 27 34 30 36 +45x36: 46 39 41 39 45 40 +40x35: 38 29 34 46 23 41 +50x36: 39 34 32 27 38 22 +41x39: 40 35 39 46 50 38 +46x43: 48 58 48 41 69 47 +47x50: 42 33 39 38 40 48 +39x39: 26 28 26 29 22 37 +39x38: 32 33 30 20 20 21 +36x48: 51 47 40 44 39 44 +47x36: 19 35 31 29 36 29 +35x50: 25 30 30 34 33 24 +47x41: 44 42 37 55 51 67 +37x35: 22 13 30 22 14 30 +50x38: 33 30 32 29 30 38 +45x40: 28 32 21 29 41 44 +44x37: 41 46 38 35 44 48 +46x44: 61 43 51 47 61 50 +41x47: 36 33 26 30 37 32 +50x49: 45 46 39 46 41 38 +43x38: 42 35 45 40 50 41 +39x44: 42 50 42 40 43 48 +37x49: 37 43 31 27 24 29 +35x47: 41 42 38 50 31 48 +47x41: 42 50 50 57 53 46 +44x43: 30 32 42 31 27 34 +40x46: 31 38 34 27 32 33 +42x47: 53 46 49 55 46 53 +36x46: 44 48 37 43 47 38 +46x36: 44 46 32 47 41 45 +35x38: 34 48 27 26 41 33 +46x43: 53 51 44 58 48 50 +47x41: 47 57 57 37 46 53 +35x35: 32 36 24 33 27 36 +50x48: 57 62 72 45 70 66 +38x46: 31 26 34 19 37 33 +36x48: 28 35 36 30 39 24 +48x36: 26 27 38 26 40 35 +37x49: 25 31 30 32 36 38 +41x47: 46 68 58 40 44 42 +45x35: 37 42 29 44 45 47 +47x40: 51 50 44 52 49 44 +49x37: 48 47 53 44 42 44 +47x45: 48 27 37 37 34 41 +48x46: 45 41 41 43 40 29 +45x41: 48 44 48 53 48 43 +42x48: 54 53 51 50 49 53 +43x39: 48 43 47 50 35 33 +36x47: 42 55 37 41 49 40 +47x49: 68 62 65 66 52 40 +42x47: 37 59 50 44 57 60 +41x36: 26 25 26 20 26 32 +41x48: 46 60 56 45 56 43 +49x50: 45 41 34 57 38 40 +49x43: 53 58 55 48 58 54 +44x46: 33 36 26 41 35 39 +37x35: 20 21 21 21 23 25 +41x36: 40 39 35 35 40 39 +46x49: 72 60 53 43 53 65 +35x35: 36 25 32 38 32 25 +37x44: 45 48 40 40 46 34 +43x39: 36 21 34 38 33 19 +49x43: 39 42 40 36 37 29 +50x50: 56 61 71 54 62 80 +35x41: 19 29 20 24 24 27 +50x37: 48 47 46 44 51 50 +38x46: 28 28 27 32 32 32 +48x41: 59 54 45 46 45 53 +42x37: 45 38 30 48 39 39 +44x43: 30 27 38 28 41 31 +43x50: 58 49 49 60 69 49 +39x40: 25 26 32 27 31 28 +43x37: 30 31 29 21 31 25 +43x36: 42 47 35 37 42 37 +43x47: 61 55 45 50 50 50 +48x35: 52 36 41 47 54 31 +41x39: 45 43 39 40 42 38 +40x39: 40 35 38 37 49 43 +40x36: 21 24 25 23 33 30 +49x44: 39 43 23 40 42 36 +37x48: 51 48 54 34 43 43 +39x48: 33 45 27 44 27 32 +40x40: 42 34 45 44 47 35 +47x35: 33 20 35 26 30 20 +45x47: 45 53 52 57 52 66 +45x38: 29 46 54 51 48 37 +37x44: 46 41 45 34 40 44 +43x46: 33 28 42 35 28 44 +36x39: 33 33 50 26 37 37 +48x47: 49 70 45 62 68 58 +43x38: 44 34 46 40 50 39 +36x44: 50 45 36 37 32 42 +49x44: 42 37 28 48 29 39 +45x41: 25 35 40 41 19 34 +37x37: 45 29 35 31 38 33 +49x41: 59 42 43 62 55 48 +48x45: 62 53 61 57 58 42 +38x36: 34 34 34 29 40 41 +47x36: 32 37 27 22 30 31 +48x41: 35 33 39 32 33 35 +43x44: 47 48 53 47 54 44 +45x49: 64 57 51 55 61 53 +43x45: 55 43 42 49 60 51 +48x46: 56 55 54 60 58 57 +39x50: 29 38 41 35 30 34 +39x48: 32 31 31 40 38 35 +49x46: 38 45 34 41 39 42 +38x42: 28 29 22 29 28 31 +45x38: 32 28 32 28 26 33 +46x43: 36 31 31 37 35 39 +44x38: 27 31 27 29 29 25 +48x39: 34 40 28 33 40 32 +39x42: 32 35 29 29 22 35 +36x38: 41 35 40 36 26 30 +35x36: 19 24 23 25 21 20 +37x46: 34 31 31 33 24 27 +41x45: 54 38 53 58 44 35 +37x49: 31 22 29 32 42 35 +50x47: 61 63 48 68 60 62 +50x35: 48 46 39 48 32 53 +40x47: 41 25 35 38 31 24 +46x40: 48 55 50 53 35 40 +45x35: 35 23 32 28 18 28 +35x40: 41 33 39 36 39 28 +39x40: 29 22 27 31 31 29 +35x50: 40 46 46 39 53 48 +37x47: 56 40 46 45 37 41 +45x45: 32 35 36 42 37 42 +50x35: 35 35 24 26 35 21 +41x50: 34 35 30 27 36 46 +39x35: 28 22 31 18 26 17 +47x39: 34 34 25 35 33 33 +36x44: 25 22 28 35 24 33 +40x43: 27 37 27 34 25 31 +42x35: 40 44 34 33 40 37 +41x50: 37 41 23 37 38 32 +42x49: 36 40 39 39 35 35 +44x44: 26 36 35 30 35 33 +47x37: 47 53 33 42 44 50 +49x38: 26 29 33 39 35 29 +35x47: 19 22 25 36 40 23 +39x35: 28 20 32 22 24 17 +47x42: 25 44 29 34 45 32 +47x41: 23 37 23 35 39 37 +49x36: 33 29 30 35 28 36 +35x36: 19 20 29 16 30 18 +35x36: 24 15 18 25 22 28 +36x45: 21 40 26 33 33 27 +42x40: 45 52 39 51 33 37 +42x35: 31 49 34 39 34 40 +40x45: 29 31 34 39 29 32 +50x39: 44 45 48 56 55 53 +50x49: 61 63 64 67 65 58 +38x38: 37 40 33 41 41 32 +47x40: 36 44 42 47 52 69 +36x45: 41 41 42 45 40 40 +42x42: 56 31 42 47 54 42 +35x35: 20 36 29 30 41 36 +39x48: 27 31 37 36 34 43 +40x37: 39 42 35 39 36 37 +41x38: 36 46 37 48 41 33 +39x47: 38 49 43 52 48 53 +50x47: 38 42 30 37 54 39 +35x42: 30 42 39 35 41 41 +43x48: 65 50 37 64 51 50 +38x44: 49 39 33 63 36 35 +44x44: 42 38 31 26 31 28 +37x45: 28 27 29 31 21 44 +48x44: 37 54 27 35 41 30 +42x38: 41 44 38 37 51 38 +35x47: 42 46 37 47 42 40 +40x45: 44 49 42 52 48 43 +39x50: 24 37 39 32 41 35 +38x40: 37 44 32 35 46 43 +49x36: 35 50 46 43 47 52 +45x42: 54 54 45 45 42 50 +44x43: 31 28 25 41 35 35 +42x37: 29 32 35 19 21 31 +46x46: 44 58 49 60 57 59 +44x49: 59 56 49 55 52 60 +43x41: 33 26 30 32 27 34 +37x35: 22 23 24 25 20 18 +44x43: 29 42 29 30 33 32 +42x50: 48 33 33 37 36 36 +46x44: 65 42 61 54 51 37 +40x43: 31 29 24 36 28 33 +35x37: 23 26 24 17 22 20 +40x47: 49 48 47 49 50 47 +39x43: 26 34 31 28 24 38 +36x40: 34 40 38 34 40 37 +38x37: 23 27 17 21 27 29 +41x35: 45 29 39 34 40 34 +47x50: 73 60 50 59 64 57 +47x40: 53 36 55 42 49 53 +37x37: 25 19 27 22 25 26 +50x35: 38 48 48 42 42 51 +38x37: 42 35 39 35 34 31 +50x41: 34 37 35 35 40 26 +41x46: 33 23 45 32 32 29 +44x39: 49 44 41 54 39 36 +39x41: 21 33 33 29 29 23 +40x47: 31 29 35 31 30 39 +39x38: 37 24 50 42 40 34 +39x36: 35 28 21 28 27 17 +41x36: 25 29 28 31 22 21 +46x38: 35 43 42 49 52 50 +48x37: 32 29 32 32 29 37 +37x49: 45 62 44 43 48 40 +48x39: 51 44 65 38 45 44 +35x39: 30 29 35 39 30 45 +47x44: 48 54 51 65 48 51 +46x44: 64 48 48 57 41 50 +36x45: 25 31 38 23 27 36 +49x36: 36 35 35 29 33 23 +46x47: 47 61 67 55 56 48 +46x36: 30 28 34 22 31 34 +47x45: 61 65 47 48 53 53 +45x44: 49 39 53 54 53 56 +39x42: 36 38 54 42 46 37 +40x38: 33 29 40 48 47 38 +37x41: 22 29 22 21 31 30 +36x46: 40 42 43 40 50 42 +36x47: 32 29 19 29 40 30 +43x49: 44 61 50 56 56 59 +41x48: 36 42 28 39 28 34 +43x41: 49 43 43 51 51 36 +36x44: 31 26 33 26 24 28 +44x41: 45 43 52 44 48 46 +46x45: 58 61 44 44 60 55 +44x42: 33 41 32 32 30 28 +48x40: 51 50 43 59 57 38 +42x36: 36 21 27 25 29 29 +36x35: 21 21 28 24 12 25 +47x44: 40 26 33 41 35 34 +49x43: 60 53 39 56 56 61 +39x47: 48 46 46 44 53 47 +40x50: 45 27 20 36 41 38 +43x36: 42 43 37 47 36 33 +44x43: 33 30 27 29 43 33 +44x49: 42 31 33 38 50 30 +46x36: 40 48 45 35 43 45 +38x48: 62 44 30 41 48 56 +36x38: 25 20 22 21 31 24 +36x45: 31 33 29 30 31 26 +45x47: 50 43 34 39 26 33 +35x48: 25 35 34 27 26 29 +50x40: 34 36 35 38 38 26 +49x41: 50 30 30 35 39 23 +50x40: 44 49 48 59 56 53 +46x41: 56 50 47 50 53 36 +50x40: 50 57 57 44 48 52 +37x38: 41 36 38 29 34 38 +50x44: 54 58 49 65 57 56 +35x47: 22 28 25 38 27 24 +38x45: 43 43 51 48 33 42 +44x42: 43 55 56 40 42 48 +48x37: 30 29 33 33 32 34 +39x45: 53 46 46 37 44 44 +48x42: 54 58 38 52 51 58 +49x36: 47 54 49 43 39 39 +38x36: 25 24 23 34 23 15 +37x50: 62 43 49 39 43 47 +41x49: 44 35 26 35 31 37 +38x44: 29 33 29 26 29 22 +39x48: 45 46 41 51 58 50 +40x44: 38 24 31 33 30 25 +45x49: 37 38 37 36 44 48 +42x40: 23 31 26 34 39 28 +35x42: 26 37 42 39 33 48 +49x37: 31 32 25 26 38 39 +44x50: 39 47 38 29 32 39 +50x36: 53 48 52 45 45 34 +49x37: 30 25 34 35 39 29 +46x40: 22 35 27 35 40 35 +44x35: 39 50 32 34 41 43 +36x40: 29 20 17 24 39 27 +39x35: 21 20 23 26 32 21 +35x46: 43 44 36 48 37 39 +50x49: 63 54 64 63 70 64 +35x43: 29 26 20 30 29 20 +49x43: 37 40 42 46 31 28 +50x48: 47 43 40 41 42 42 +45x39: 51 49 39 45 39 46 +44x45: 44 59 48 49 57 51 +35x45: 23 21 37 28 30 25 +49x47: 36 34 40 38 44 47 +43x35: 25 22 21 25 35 26 +39x50: 35 39 34 34 36 30 +45x45: 52 56 52 53 50 49 +40x42: 32 32 33 26 26 32 +50x39: 65 39 40 47 47 60 +42x45: 59 50 47 33 48 54 +38x43: 34 24 25 20 36 28 +45x38: 31 33 34 28 26 27 +44x45: 40 35 32 34 33 35 +50x50: 59 65 64 70 75 55 +48x37: 24 27 28 33 44 35 +46x40: 38 29 26 36 26 39 +46x35: 37 40 42 46 42 41 +41x43: 58 34 52 41 39 44 +37x50: 46 52 45 53 45 44 +37x44: 33 30 23 23 28 30 +43x44: 56 48 43 41 51 53 +38x37: 30 26 16 20 17 34 +41x47: 41 49 46 57 54 51 +45x47: 33 35 34 37 40 46 +45x48: 34 47 46 37 48 28 +39x48: 52 43 50 47 49 47 +40x43: 48 44 47 41 48 38 +35x43: 23 32 27 26 23 22 +42x42: 34 35 36 35 26 29 +35x48: 33 29 29 27 28 29 +48x46: 38 41 38 36 51 36 +38x49: 51 35 58 36 45 59 +45x36: 37 45 55 39 42 32 +40x49: 37 40 32 33 34 31 +40x36: 26 16 29 28 35 21 +38x47: 48 43 51 41 51 42 +40x50: 31 31 28 41 41 35 +49x41: 31 37 49 33 28 29 +40x38: 37 42 35 34 40 47 +37x36: 38 28 25 42 40 33 +40x40: 36 29 28 19 22 35 +48x37: 30 32 25 26 37 41 +39x47: 46 45 50 61 47 33 +37x43: 32 30 38 21 18 28 +41x49: 58 54 50 52 53 43 +42x42: 38 26 23 27 43 38 +39x43: 33 35 26 32 27 28 +37x42: 28 26 22 30 28 33 +43x45: 55 54 39 45 55 52 +49x42: 44 54 49 48 60 64 +44x50: 42 33 26 49 37 36 +37x36: 36 29 30 34 33 42 +40x48: 50 51 47 46 53 50 +45x36: 29 34 26 29 31 30 +44x38: 51 41 36 42 42 45 +47x48: 56 64 49 69 61 50 +42x40: 22 23 36 33 36 32 +43x38: 43 48 46 34 50 34 +35x41: 29 21 29 21 19 23 +45x43: 54 52 45 40 56 53 +35x39: 27 25 25 21 18 26 +35x35: 18 21 19 22 18 23 +43x40: 36 51 59 47 37 34 +50x39: 36 28 39 36 34 35 +36x39: 16 31 22 32 28 26 +44x49: 43 35 35 37 40 34 +37x42: 27 45 35 48 50 38 +38x50: 31 25 38 28 41 29 +49x43: 47 68 44 57 60 52 +36x49: 45 49 36 51 44 47 +44x46: 45 60 44 54 60 52 +37x45: 37 53 37 42 50 41 +42x40: 28 37 28 28 34 26 +36x46: 42 31 45 44 48 45 +45x41: 35 48 37 54 54 58 +47x42: 62 41 54 48 41 54 +40x50: 41 50 63 54 48 51 +43x47: 48 53 51 54 61 47 +38x45: 24 34 38 24 26 33 +41x36: 32 22 27 24 28 23 +49x43: 46 58 66 53 43 56 +42x45: 31 24 42 36 45 31 +50x36: 57 43 53 46 44 33 +35x50: 54 50 45 46 26 44 +36x47: 45 46 51 43 40 35 +35x36: 29 26 23 37 39 41 +40x36: 15 39 18 28 24 32 +37x44: 40 37 40 52 38 42 +41x36: 24 21 18 32 41 19 +39x39: 37 23 32 25 23 28 +35x40: 38 43 31 32 40 34 +38x35: 33 40 46 26 35 26 +39x39: 24 18 23 26 46 31 +43x35: 27 22 29 25 21 29 +39x35: 39 36 29 34 37 36 +41x44: 47 49 34 51 49 49 +46x43: 42 51 56 44 49 62 +50x47: 56 66 54 66 61 60 +42x36: 25 32 33 39 18 20 +44x41: 25 29 37 38 32 21 +47x47: 44 44 31 31 33 41 +42x37: 27 26 29 28 26 31 +38x42: 45 43 36 45 37 39 +40x35: 32 37 41 33 29 42 +45x44: 52 54 39 53 56 53 +49x45: 26 39 43 39 38 55 +39x50: 53 42 55 46 50 53 +36x50: 36 34 28 26 40 28 +50x42: 47 57 53 51 58 59 +41x40: 31 27 28 20 34 28 +39x39: 30 34 52 33 55 34 +44x47: 37 32 30 37 34 40 +45x50: 38 48 46 36 32 39 +49x47: 34 47 42 39 38 40 +49x40: 52 55 40 44 59 55 +36x48: 41 48 52 44 53 31 +35x37: 27 42 33 25 34 40 +44x39: 21 46 45 55 49 50 +41x44: 48 33 48 55 53 41 +47x37: 34 24 34 29 24 35 +36x36: 27 22 26 29 20 19 +47x37: 36 32 32 26 32 22 +35x41: 20 21 24 30 23 25 +49x45: 51 44 48 56 79 66 +49x49: 52 60 60 65 50 79 +50x36: 38 22 25 38 35 34 +39x48: 35 30 48 32 32 31 +38x35: 39 33 32 37 39 26 +40x49: 34 32 36 33 42 30 +40x36: 43 29 37 41 34 36 +37x44: 45 47 40 38 44 38 +48x39: 36 38 33 29 35 37 +39x46: 38 27 32 27 35 35 +46x45: 50 40 59 61 46 59 +45x39: 36 41 27 23 34 33 +37x39: 42 40 37 34 35 34 +42x40: 30 30 28 29 38 27 +47x42: 30 33 31 45 39 31 +47x44: 51 50 38 60 67 56 +45x36: 28 35 28 26 32 30 +48x50: 49 57 72 71 59 60 +38x47: 22 30 32 31 31 33 +35x49: 22 35 34 24 23 38 +49x47: 69 56 72 53 51 51 +42x36: 32 32 29 25 27 22 +41x36: 31 38 45 33 37 43 +39x45: 51 39 30 52 51 48 +49x37: 31 32 35 37 27 30 +37x47: 28 30 27 32 29 34 +41x44: 26 31 30 35 34 26 +44x46: 50 50 46 67 50 48 +47x40: 30 28 41 32 28 36 +38x49: 49 48 43 42 48 57 +49x35: 31 27 37 26 21 34 +41x46: 45 57 43 50 57 42 +45x47: 35 45 46 34 34 31 +40x41: 46 30 40 48 46 42 +42x41: 39 34 34 23 29 23 +45x38: 43 39 42 49 49 42 +46x49: 44 37 48 29 40 42 +50x42: 62 50 62 45 44 57 +42x43: 42 58 48 46 36 47 +43x43: 39 31 30 32 34 29 +46x49: 63 71 49 56 65 47 +41x46: 55 48 45 44 54 46 +39x44: 37 25 32 29 27 32 +48x49: 66 58 55 56 64 64 +48x37: 50 46 49 37 43 48 +45x38: 31 30 28 34 30 26 +42x46: 38 39 35 35 29 34 +37x44: 27 18 21 34 32 35 +39x49: 28 36 38 26 42 37 +37x46: 43 40 45 43 49 43 +43x42: 29 38 31 31 26 40 +42x48: 47 54 60 50 42 55 +42x35: 32 43 37 36 37 42 +43x47: 41 31 36 37 39 26 +48x43: 41 40 33 36 40 34 +41x35: 37 27 44 35 42 36 +49x40: 33 45 28 38 31 32 +50x37: 49 55 42 39 62 43 +40x41: 30 22 28 31 29 28 +38x41: 49 42 47 28 36 37 +42x48: 40 44 29 39 31 41 +39x46: 60 38 37 48 49 44 +40x48: 39 35 36 28 38 31 +35x35: 18 19 13 28 15 27 +49x50: 61 64 63 66 65 59 +36x37: 27 27 23 24 21 22 +44x45: 28 38 42 34 42 26 +43x48: 49 54 49 59 64 46 +43x47: 29 33 44 32 42 30 +44x45: 54 41 52 52 53 52 +43x37: 27 27 27 33 28 26 +40x42: 54 42 45 41 38 37 +38x50: 30 42 27 33 26 34 +45x36: 26 23 34 32 35 30 +46x47: 43 40 36 36 33 37 +44x36: 30 32 28 28 22 28 +47x47: 32 40 38 40 28 47 +50x49: 70 62 43 84 55 61 +49x46: 39 48 33 46 34 40 +47x37: 28 23 33 31 33 31 +37x43: 39 34 46 38 41 46 +46x47: 51 65 46 58 54 60 +38x38: 37 36 34 32 33 49 +46x47: 45 37 35 43 30 35 +41x45: 41 58 45 45 62 39 +49x40: 32 37 44 33 26 36 +47x39: 39 39 41 47 64 56 +37x49: 37 26 35 33 29 32 +47x42: 58 42 59 46 52 46 +35x47: 52 44 34 42 44 38 +44x40: 27 35 36 24 24 35 +41x49: 20 37 25 42 49 35 +49x36: 48 53 36 48 53 37 +50x50: 69 72 58 59 71 59 +35x38: 29 34 36 28 42 38 +36x45: 52 35 41 32 39 49 +47x36: 33 39 43 45 50 52 +48x38: 60 48 37 44 53 41 +50x45: 39 43 40 42 43 33 +44x36: 23 23 34 37 19 32 +44x49: 34 39 38 46 39 27 +41x47: 34 35 31 29 33 32 +41x42: 35 55 52 39 42 43 +47x38: 51 50 43 37 50 46 +48x36: 40 29 34 25 27 36 +39x49: 42 35 34 31 35 30 +45x43: 46 55 49 42 64 47 +35x36: 22 32 18 22 15 23 +48x45: 32 39 47 42 39 41 +41x42: 43 44 42 38 47 52 +42x35: 45 38 41 31 36 35 +38x42: 29 30 23 31 33 22 +47x42: 57 45 48 53 60 43 +44x38: 34 44 46 49 48 38 +43x41: 44 45 45 50 50 39 +35x50: 33 28 29 29 25 32 +35x41: 26 25 21 24 24 22 +43x41: 31 46 44 61 50 41 +37x50: 30 36 54 53 57 56 +48x41: 58 52 49 45 64 39 +46x44: 55 41 47 55 55 58 +47x43: 61 47 42 52 47 60 +50x37: 34 31 33 36 31 26 +46x35: 30 26 34 26 26 22 +50x46: 37 37 44 49 36 37 +40x36: 24 31 28 21 27 25 +43x46: 47 46 50 60 54 48 +49x50: 68 58 61 52 72 68 +49x46: 55 55 61 63 48 62 +47x40: 47 40 50 52 50 50 +39x44: 49 50 38 43 43 42 +50x47: 42 48 37 39 38 35 +42x35: 39 38 34 40 33 41 +37x50: 47 55 37 52 54 43 +47x48: 45 40 46 36 41 31 +45x41: 55 46 51 35 54 45 +40x46: 50 48 50 53 42 39 +50x44: 36 43 41 36 31 36 +49x39: 33 40 42 22 34 37 +37x37: 20 41 18 21 26 18 +49x35: 27 27 25 31 29 37 +43x40: 33 54 47 39 40 52 +50x44: 63 53 58 51 55 58 +50x42: 46 46 30 37 28 36 +46x42: 46 58 54 47 47 46 +45x45: 53 45 53 50 63 50 +45x48: 44 35 35 38 54 34 +44x46: 54 39 52 58 52 55 +39x37: 44 31 35 31 49 35 +41x39: 37 50 40 46 42 33 +41x50: 54 65 54 54 44 44 +40x36: 27 33 25 28 24 18 +38x40: 31 43 49 39 33 38 +45x47: 42 42 40 30 39 32 +46x35: 38 39 53 39 43 36 +41x36: 48 37 35 38 37 32 +37x48: 28 42 33 17 33 39 +35x47: 33 21 29 24 25 33 +46x38: 37 51 46 46 38 50 +44x35: 26 25 29 15 36 22 +36x41: 23 23 25 30 29 26 +36x38: 22 25 26 20 25 25 +43x43: 36 24 35 42 29 29 +38x42: 43 38 40 37 47 42 +45x36: 42 38 45 40 35 47 +36x36: 30 30 20 22 19 22 +45x40: 48 41 48 48 48 44 +50x48: 60 62 65 55 67 62 +36x50: 48 48 52 47 30 48 +35x46: 31 32 21 26 31 24 +39x49: 37 37 25 36 40 33 +42x44: 45 55 46 52 48 40 +50x43: 37 36 28 43 31 48 +46x50: 37 46 44 35 31 46 +38x43: 33 52 41 46 35 44 +40x40: 38 38 47 38 41 44 +45x38: 37 46 50 39 49 44 +37x41: 25 23 34 25 26 23 +44x48: 31 41 41 38 35 37 +47x41: 50 52 42 57 49 47 +37x36: 18 25 32 17 31 20 +47x41: 30 36 26 32 38 33 +44x47: 27 34 40 35 34 40 +35x37: 18 27 18 23 22 24 +45x49: 63 55 58 53 63 49 +35x45: 24 31 28 29 27 25 +38x50: 50 65 44 46 52 39 +42x43: 35 32 27 29 39 34 +46x38: 36 53 45 41 50 47 +39x47: 41 19 31 29 40 34 +43x39: 37 37 29 29 27 22 +39x45: 49 46 39 46 47 44 +37x43: 46 34 49 34 40 41 +44x42: 31 35 30 38 30 32 +46x44: 53 59 59 42 56 45 +49x50: 36 34 44 45 48 49 +37x40: 37 35 41 43 39 33 +38x40: 25 27 30 27 21 26 +46x50: 31 34 40 33 51 51 +46x45: 51 52 52 63 44 54 +40x44: 21 39 39 32 26 25 +41x46: 27 24 33 36 43 31 +42x41: 34 30 31 30 32 25 +41x48: 43 47 26 30 33 29 +49x47: 67 56 51 71 59 50 +47x43: 48 50 49 60 56 49 +38x46: 46 44 48 40 45 46 +43x35: 25 20 27 28 24 30 +46x40: 38 29 30 26 37 35 +38x46: 39 54 55 48 50 26 +40x44: 24 37 25 30 28 37 +48x48: 44 44 48 47 42 31 +50x39: 23 33 45 37 33 36 +37x35: 38 31 35 43 25 25 +36x41: 38 38 49 35 33 33 +40x46: 35 40 32 31 24 33 +40x37: 37 45 36 40 28 40 +44x42: 49 42 60 37 52 45 +36x38: 26 25 21 21 23 27 +47x47: 44 68 49 56 64 63 +48x39: 33 42 36 36 34 26 +36x42: 20 23 35 34 24 32 +41x48: 37 35 39 31 34 32 +35x38: 25 19 20 23 20 25 +45x35: 24 36 26 25 29 24 +46x50: 40 45 44 38 43 30 +48x48: 64 51 69 55 61 54 +50x50: 41 45 36 53 45 35 +46x36: 26 31 34 28 35 25 +39x40: 31 26 23 35 31 23 +50x42: 51 58 55 53 51 55 +39x49: 41 37 38 35 24 33 +38x41: 41 40 40 40 36 42 +35x48: 32 27 26 33 30 27 +45x46: 56 53 53 62 51 43 +39x44: 26 28 35 30 32 30 +46x48: 55 41 34 42 32 36 +42x37: 31 35 48 39 38 47 +40x48: 39 49 44 56 54 55 +49x38: 47 48 45 48 49 50 +37x45: 33 23 24 30 38 32 +47x43: 41 34 47 25 27 36 +42x41: 46 37 52 37 44 48 +50x42: 63 46 51 43 70 54 +42x37: 30 44 43 49 37 36 +38x36: 42 46 33 29 37 26 +36x35: 32 35 35 30 41 24 +48x37: 51 44 45 43 52 40 +45x49: 61 60 51 53 57 58 +36x43: 36 46 37 51 32 35 +41x49: 33 44 32 30 29 40 +50x49: 63 60 76 66 43 63 +47x40: 45 57 43 52 59 38 +36x49: 30 36 24 32 29 41 +40x35: 30 33 36 41 39 37 +50x35: 45 42 44 42 45 51 +38x46: 39 41 53 49 39 46 +42x37: 45 36 37 38 41 42 +38x45: 29 29 31 35 29 27 +38x48: 46 45 52 48 45 44 +43x38: 40 49 48 35 33 45 +50x50: 65 57 68 61 82 56 +45x40: 32 33 37 37 29 27 +37x36: 35 32 33 35 34 36 +48x42: 43 55 55 45 49 63 +46x43: 49 54 47 45 51 59 +41x49: 44 37 27 37 30 33 +38x44: 23 30 27 30 26 32 +43x49: 48 57 48 68 54 50 +49x37: 48 44 40 47 50 51 +47x36: 35 28 28 44 24 20 +47x49: 61 55 58 67 62 52 +40x37: 29 20 26 26 30 24 +46x43: 27 25 35 42 36 44 +46x36: 30 38 32 30 35 15 +48x45: 39 30 51 30 45 45 +44x40: 22 37 26 32 35 29 +40x49: 58 56 37 54 48 49 +38x44: 36 34 39 49 59 44 +49x48: 46 45 58 71 68 74 +46x48: 53 54 73 56 51 51 +45x36: 30 23 31 30 21 44 +42x48: 39 35 40 45 31 33 +38x40: 40 39 38 44 31 40 +50x36: 28 18 36 39 32 38 +44x45: 30 47 24 38 48 23 +36x45: 32 27 31 33 16 40 +40x37: 19 22 28 31 19 36 +47x42: 48 53 47 56 50 50 +46x35: 24 25 28 30 30 28 +49x46: 54 54 56 69 56 57 +44x35: 30 31 20 28 19 25 +50x45: 40 46 40 58 29 27 +36x42: 44 45 30 27 46 44 +49x35: 27 30 34 30 34 21 +41x35: 35 36 40 40 37 33 +40x41: 36 49 40 44 51 36 +39x43: 39 44 48 49 34 42 +50x39: 33 36 41 30 30 38 +41x38: 27 48 46 38 40 42 +37x38: 36 38 32 45 37 29 +39x47: 25 36 36 25 34 38 +43x47: 56 48 45 60 46 54 +47x35: 26 30 22 30 28 29 +48x37: 52 44 43 40 38 54 +48x35: 37 49 56 45 31 38 +37x39: 45 30 34 26 39 48 +45x40: 54 46 43 43 52 41 +45x40: 43 51 49 39 53 45 +50x40: 40 56 61 48 46 56 +35x39: 24 25 22 25 33 13 +39x42: 29 27 25 40 27 33 +36x35: 31 18 29 15 25 13 +36x44: 32 25 30 30 27 24 +39x49: 44 33 41 27 31 31 +44x46: 41 32 38 32 45 21 +39x37: 36 47 29 37 35 39 +47x37: 47 45 49 37 38 50 +49x38: 34 26 33 31 41 26 diff --git a/2025/day12/main.go b/2025/day12/main.go new file mode 100644 index 0000000..a765223 --- /dev/null +++ b/2025/day12/main.go @@ -0,0 +1,78 @@ +package main + +import ( + "bytes" + "fmt" + + h "git.bullercodeworks.com/brian/adventofcode/helpers" +) + +func main() { + inp := h.StdinToStringSlice() + part1(inp) + fmt.Println() + part2(inp) +} + +func part1(inp []string) { + p, r := parseInput(inp) + + var acc int + for i := range r { + area := r[i].x * r[i].y + size := 0 + for j := range r[i].req { + size += r[i].req[j] * p[j].area + } + if area > size { + acc++ + } + } + fmt.Println("Part 1") + fmt.Println(p) + fmt.Println(acc) +} + +func part2(inp []string) { +} + +type Region struct { + x, y int + req []int +} +type Present struct { + area int +} + +func BuildPresent(inp []string) Present { + area := 0 + for _, row := range inp { + area += bytes.Count([]byte(row), []byte{'#'}) + } + return Present{area: area} +} + +func parseInput(inp []string) ([]Present, []Region) { + // All presents are 3x3, we have 6 of them + var presents []Present + var regions []Region + for i := 0; i < 30; i += 5 { + if len(presents) == 6 { + break + } + presents = append(presents, BuildPresent(inp[i+1:i+4])) + } + + for i := 30; i < len(inp); i++ { + // Parse regions + r := Region{} + var p0, p1, p2, p3, p4, p5 int + fmt.Sscanf( + inp[i], "%dx%d: %d %d %d %d %d %d", + &r.x, &r.y, &p0, &p1, &p2, &p3, &p4, &p5, + ) + r.req = []int{p0, p1, p2, p3, p4, p5} + regions = append(regions, r) + } + return presents, regions +} diff --git a/2025/day12/problem b/2025/day12/problem new file mode 100644 index 0000000..1da302e --- /dev/null +++ b/2025/day12/problem @@ -0,0 +1,185 @@ +[1]Advent of Code + br0xen [7](AoC++) 24* + +--- Day 12: Christmas Tree Farm --- + + You're almost out of time, but there can't be much left to decorate. + Although there are no stairs, elevators, escalators, tunnels, chutes, + teleporters, firepoles, or conduits here that would take you deeper into + the North Pole base, there is a ventilation duct. You jump in. + + After bumping around for a few minutes, you emerge into a large, well-lit + cavern full of Christmas trees! + + There are a few Elves here frantically decorating before the deadline. + They think they'll be able to finish most of the work, but the one thing + they're worried about is the presents for all the young Elves that live + here at the North Pole. It's an ancient tradition to put the presents + under the trees, but the Elves are worried they won't fit. + + The presents come in a few standard but very weird shapes. The shapes and + the regions into which they need to fit are all measured in standard + units. To be aesthetically pleasing, the presents need to be placed into + the regions in a way that follows a standardized two-dimensional unit + grid; you also can't stack presents. + + As always, the Elves have a summary of the situation (your puzzle input) + for you. First, it contains a list of the presents' shapes. Second, it + contains the size of the region under each tree and a list of the number + of presents of each shape that need to fit into that region. For example: + + 0: + ### + ##. + ##. + + 1: + ### + ##. + .## + + 2: + .## + ### + ##. + + 3: + ##. + ### + ##. + + 4: + ### + #.. + ### + + 5: + ### + .#. + ### + + 4x4: 0 0 0 0 2 0 + 12x5: 1 0 1 0 2 2 + 12x5: 1 0 1 0 3 2 + + The first section lists the standard present shapes. For convenience, each + shape starts with its index and a colon; then, the shape is displayed + visually, where # is part of the shape and . is not. + + The second section lists the regions under the trees. Each line starts + with the width and length of the region; 12x5 means the region is 12 units + wide and 5 units long. The rest of the line describes the presents that + need to fit into that region by listing the quantity of each shape of + present; 1 0 1 0 3 2 means you need to fit one present with shape index 0, + no presents with shape index 1, one present with shape index 2, no + presents with shape index 3, three presents with shape index 4, and two + presents with shape index 5. + + Presents can be rotated and flipped as necessary to make them fit in the + available space, but they have to always be placed perfectly on the grid. + Shapes can't overlap (that is, the # part from two different presents + can't go in the same place on the grid), but they can fit together (that + is, the . part in a present's shape's diagram does not block another + present from occupying that space on the grid). + + The Elves need to know how many of the regions can fit the presents + listed. In the above example, there are six unique present shapes and + three regions that need checking. + + The first region is 4x4: + + .... + .... + .... + .... + + In it, you need to determine whether you could fit two presents that have + shape index 4: + + ### + #.. + ### + + After some experimentation, it turns out that you can fit both presents in + this region. Here is one way to do it, using A to represent one present + and B to represent the other: + + AAA. + ABAB + ABAB + .BBB + + The second region, 12x5: 1 0 1 0 2 2, is 12 units wide and 5 units long. + In that region, you need to try to fit one present with shape index 0, one + present with shape index 2, two presents with shape index 4, and two + presents with shape index 5. + + It turns out that these presents can all fit in this region. Here is one + way to do it, again using different capital letters to represent all the + required presents: + + ....AAAFFE.E + .BBBAAFFFEEE + DDDBAAFFCECE + DBBB....CCC. + DDD.....C.C. + + The third region, 12x5: 1 0 1 0 3 2, is the same size as the previous + region; the only difference is that this region needs to fit one + additional present with shape index 4. Unfortunately, no matter how hard + you try, there is no way to fit all of the presents into this region. + + So, in this example, 2 regions can fit all of their listed presents. + + Consider the regions beneath each tree and the presents the Elves would + like to fit into each of them. How many of the regions can fit all of the + presents listed? + + Your puzzle answer was 485. + +--- Part Two --- + + The Elves thank you profusely for the help and start rearranging the + oddly-shaped presents. As you look up, you notice that a lot more Elves + have arrived here at the Christmas tree farm. + + In fact, many of these new arrivals look familiar: they're the Elves you + helped while decorating the North Pole base. Right on [16]schedule, each + group seems to have brought a star to put atop one of the Christmas trees! + + Before any of them can find a ladder, a particularly large Christmas tree + suddenly flashes brightly when a large star magically appears above it! As + your eyes readjust, you think you notice a portly man with a white beard + disappear into the crowd. + + You go look for a ladder; only 23 stars to go. + + If you like, you can [17][ [Decorate the North Pole Again] ] . + + Both parts of this puzzle are complete! They provide two gold stars: ** + + At this point, all that is left is for you to [18]admire your Advent + calendar. + +References + + Visible links + 1. https://adventofcode.com/ + 2. https://adventofcode.com/2025/about + 3. https://adventofcode.com/2025/events + 4. https://adventofcode.com/2025/shop + 5. https://adventofcode.com/2025/settings + 6. https://adventofcode.com/2025/auth/logout + 7. Advent of Code Supporter + https://adventofcode.com/2025/support + 8. https://adventofcode.com/2025 + 9. https://adventofcode.com/2025 + 10. https://adventofcode.com/2025/support + 11. https://adventofcode.com/2025/sponsors + 12. https://adventofcode.com/2025/leaderboard/private + 13. https://adventofcode.com/2025/stats + 14. https://adventofcode.com/2025/sponsors + 15. https://adventofcode.com/2025/sponsors/redirect?url=https%3A%2F%2Fwww%2Eshopify%2Ecom%2Fcareers + 16. https://adventofcode.com/2025/day/1 + 18. https://adventofcode.com/2025 + 19. https://adventofcode.com/2025/day/12/input diff --git a/2025/day12/testinput b/2025/day12/testinput new file mode 100644 index 0000000..e5e1b3d --- /dev/null +++ b/2025/day12/testinput @@ -0,0 +1,33 @@ +0: +### +##. +##. + +1: +### +##. +.## + +2: +.## +### +##. + +3: +##. +### +##. + +4: +### +#.. +### + +5: +### +.#. +### + +4x4: 0 0 0 0 2 0 +12x5: 1 0 1 0 2 2 +12x5: 1 0 1 0 3 2