From 4d9d2ea4d6ec921b0be84af45044a07f465f2244 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 11:58:25 +0000 Subject: [PATCH 01/15] Day 1 solutions --- 2025/01/kylepritchard.input | 4484 +++++++++++++++++++++++++++++++++++ 2025/01/kylepritchard.v | 59 + 2 files changed, 4543 insertions(+) create mode 100644 2025/01/kylepritchard.input create mode 100644 2025/01/kylepritchard.v diff --git a/2025/01/kylepritchard.input b/2025/01/kylepritchard.input new file mode 100644 index 0000000..f0e902c --- /dev/null +++ b/2025/01/kylepritchard.input @@ -0,0 +1,4484 @@ +R17 +R28 +R8 +L25 +R33 +L48 +R2 +R42 +R39 +L10 +R29 +L26 +R24 +R44 +L37 +L1 +L4 +R2 +L43 +L6 +L44 +R29 +R47 +L48 +R13 +L18 +R18 +R30 +L44 +R35 +R18 +R2 +L38 +R50 +L28 +R18 +R21 +R32 +L8 +R18 +L33 +R24 +R46 +L6 +L9 +R39 +R7 +R48 +R41 +L26 +L52 +R1 +L1 +L40 +L60 +R18 +L18 +L87 +R73 +L86 +L45 +R69 +L24 +L31 +L69 +L12 +L79 +R84 +R83 +R24 +R70 +L75 +L81 +L38 +R24 +R26 +L26 +L48 +L52 +L10 +L90 +R4 +R54 +L88 +R31 +L3 +R91 +L67 +R65 +L61 +L32 +R63 +R83 +L50 +L90 +R75 +L26 +L23 +L26 +L61 +L89 +L65 +R250 +R60 +R652 +L47 +R88 +R50 +L61 +L113 +R36 +R823 +R26 +L849 +L46 +R27 +R58 +R41 +R68 +L48 +L42 +R15 +L22 +R49 +R78 +R322 +R28 +L28 +L95 +L33 +R56 +L28 +R37 +R63 +R13 +L8 +L57 +R52 +L64 +L36 +L8 +L28 +L313 +R49 +L87 +L13 +R24 +R911 +L35 +L117 +R60 +L65 +R34 +L3 +R52 +R54 +R85 +L371 +L67 +L8 +R668 +L22 +R96 +R51 +R8 +L55 +R69 +R31 +R83 +L49 +L734 +R165 +R35 +R85 +L45 +R60 +R332 +R32 +R36 +L31 +L22 +R233 +L702 +R80 +L23 +R865 +L6 +L94 +R57 +R18 +R225 +R955 +R34 +L47 +R55 +L97 +L9 +R4 +R63 +R43 +L1 +R18 +R7 +R75 +L224 +L76 +R10 +R79 +L898 +L91 +L47 +L3 +L74 +R19 +R50 +L45 +R46 +R54 +R36 +R28 +R8 +L27 +R55 +R41 +L41 +R540 +R60 +R58 +R76 +L3 +L831 +L45 +L78 +L77 +L2 +L50 +R24 +L572 +R3 +L94 +L509 +L53 +L35 +R559 +R21 +L292 +R10 +R16 +L98 +R812 +L40 +R10 +R74 +R16 +R255 +R92 +R670 +L73 +R56 +L59 +L41 +L938 +L62 +L84 +L5 +R89 +L23 +R423 +R62 +L162 +L57 +L698 +L80 +R47 +L413 +L899 +L69 +R92 +R322 +L145 +R59 +R41 +R39 +L39 +R9 +L34 +L28 +L58 +R559 +L59 +L89 +L19 +L13 +R94 +R34 +R77 +L2 +L91 +L86 +L94 +L67 +L63 +R430 +L5 +R5 +R70 +R30 +L67 +R67 +L30 +L39 +L131 +L21 +R19 +R98 +L96 +R36 +R610 +R54 +L72 +L90 +L49 +R11 +L77 +L93 +L30 +L5 +R79 +R67 +R59 +L29 +R63 +R66 +L54 +L546 +L101 +L28 +R4 +L6 +R96 +L1 +R323 +R435 +L22 +L74 +L80 +R54 +R658 +R88 +L46 +R21 +L23 +L89 +L84 +R72 +R3 +R60 +R40 +R48 +L49 +R1 +L5 +L195 +R46 +L20 +R686 +R88 +L80 +R50 +R81 +L31 +L67 +R15 +L398 +L269 +L1 +L722 +L978 +R53 +L153 +R39 +R61 +R7 +R517 +L24 +L19 +R19 +R45 +R135 +R70 +R950 +R67 +L267 +L672 +R41 +R896 +L65 +L33 +R35 +R883 +L72 +L27 +L86 +L81 +R81 +L87 +R13 +R88 +L48 +R52 +L47 +L52 +R117 +L653 +L36 +L88 +R12 +L71 +R25 +R64 +R751 +L7 +L33 +R598 +L98 +R54 +R30 +R766 +R15 +L60 +R695 +L1 +L56 +R39 +R16 +L98 +R101 +R99 +L277 +L564 +R41 +L21 +L79 +L23 +R777 +R246 +R37 +R563 +R40 +R784 +L80 +R56 +L69 +L31 +R3 +R23 +L331 +L95 +L563 +R63 +L5 +L84 +L48 +R16 +R84 +L63 +R78 +L17 +L61 +L30 +R3 +R301 +R26 +R128 +L988 +L13 +L14 +R87 +R15 +R85 +L61 +R48 +L587 +R65 +R72 +R63 +L754 +R733 +L79 +R584 +L81 +R597 +L94 +L40 +L66 +L94 +R94 +R15 +L15 +R24 +R67 +R807 +R82 +R86 +L66 +R20 +L41 +R95 +R26 +R70 +R430 +L3 +R3 +L47 +R31 +L890 +R513 +L7 +R61 +R39 +L75 +R886 +L97 +R86 +R60 +R140 +L87 +R49 +R46 +R23 +L4 +R10 +L276 +L61 +R24 +R76 +L59 +L42 +L530 +L8 +R56 +L696 +L83 +L38 +L290 +R57 +L39 +R99 +R71 +R55 +L381 +R28 +L75 +L26 +R22 +R77 +L4 +L94 +R68 +L68 +L246 +R11 +L65 +L54 +L46 +L58 +R56 +L98 +R94 +L94 +L429 +R29 +R867 +R133 +R41 +R17 +L58 +L9 +R920 +L12 +R1 +L28 +L72 +R769 +R31 +R18 +R82 +R33 +R518 +L375 +L78 +L98 +R92 +L16 +L44 +R31 +L51 +R65 +R40 +L17 +R52 +L879 +R3 +R14 +R382 +R28 +R38 +R23 +R539 +R869 +L46 +L23 +L87 +L3 +R790 +R878 +R563 +L41 +L67 +R50 +R20 +R55 +R42 +L47 +L44 +L78 +L675 +R44 +L578 +L22 +L821 +R21 +R28 +R18 +L682 +R42 +R52 +R8 +L66 +L986 +L80 +L67 +R6 +L38 +L80 +L38 +L85 +L32 +L17 +R95 +L3 +R25 +L19 +R19 +L56 +R178 +L22 +R55 +L355 +L966 +R810 +L8 +L388 +L56 +R485 +R51 +L28 +L50 +L79 +L64 +L32 +L52 +L323 +R61 +L322 +L579 +L37 +R477 +R508 +R46 +R972 +L607 +L919 +L85 +L521 +R25 +R49 +R32 +R23 +R477 +R71 +R92 +L54 +L468 +R59 +L5 +R294 +L274 +R20 +R65 +R287 +R13 +L856 +L71 +L344 +R71 +R77 +L56 +R90 +R333 +R56 +L79 +R4 +R286 +R89 +L78 +R20 +R58 +L313 +R822 +L5 +R5 +R92 +R82 +R17 +R41 +L38 +R50 +L71 +L882 +L75 +R75 +R298 +L43 +R45 +R5 +R21 +R74 +L55 +R58 +L36 +R633 +R57 +R43 +R15 +L8 +R93 +R376 +L781 +R50 +R55 +L68 +R56 +L17 +L71 +R52 +R435 +R73 +R69 +L70 +R97 +R850 +R44 +L50 +L8 +R62 +R18 +L272 +R15 +R85 +L14 +R214 +R46 +L46 +L51 +R751 +R37 +R363 +L18 +L82 +R288 +L68 +L94 +L3 +R2 +R82 +L21 +R32 +R82 +L37 +R37 +L33 +R81 +R52 +R51 +R74 +R75 +L51 +L44 +R52 +R43 +R547 +R753 +R185 +R78 +R83 +R54 +L22 +R25 +L71 +L32 +L47 +R60 +R46 +R80 +L81 +L35 +R894 +R14 +R69 +L54 +R74 +L24 +L6 +R5 +L565 +L30 +L93 +L7 +R28 +L85 +L39 +L63 +R59 +L30 +L345 +L674 +R75 +L354 +L908 +R622 +R10 +R4 +L48 +R55 +L2 +R99 +L3 +L1 +L31 +L54 +R60 +R3 +R84 +R40 +R228 +R92 +L95 +L177 +L50 +L71 +R60 +L38 +R27 +R75 +R47 +L126 +R12 +R287 +R71 +R95 +L39 +L9 +R441 +L92 +L158 +R36 +R5 +R49 +R51 +R877 +L503 +R241 +L38 +R74 +R975 +R49 +L17 +R19 +L53 +R53 +R26 +L41 +L85 +R22 +R260 +L7 +L19 +L70 +L48 +R270 +R9 +R71 +L88 +L87 +R87 +R2 +R14 +R84 +L67 +L33 +L38 +R75 +L37 +R13 +L13 +R43 +L1 +R51 +R7 +R63 +L29 +R15 +L563 +R58 +L19 +R50 +L275 +L10 +R71 +R42 +L83 +L20 +L62 +R88 +L26 +L99 +L1 +R93 +L95 +L36 +L62 +R29 +L61 +R43 +R89 +L10 +R65 +R781 +R64 +R84 +R16 +R76 +R19 +R98 +L730 +L63 +R921 +R83 +L4 +L16 +L84 +R77 +L57 +R91 +R46 +R89 +L546 +R17 +R55 +R51 +L31 +L92 +L63 +R47 +R16 +R20 +R23 +L43 +R18 +R20 +L35 +R97 +R662 +R28 +R26 +L16 +L18 +R88 +R4 +R29 +L3 +L53 +R132 +R21 +L36 +L59 +R95 +R15 +L70 +L80 +R35 +R66 +L66 +R63 +R27 +L358 +R68 +L23 +R423 +R62 +L25 +R63 +L212 +R12 +R50 +L27 +R16 +R23 +R36 +L98 +L13 +R85 +R52 +L302 +R78 +R398 +L198 +R96 +L50 +L46 +R82 +L129 +L80 +L13 +R5 +L73 +L89 +L58 +L335 +R25 +R88 +L164 +L15 +R61 +R95 +R69 +R1 +R30 +R272 +L221 +L79 +R165 +R28 +R43 +R6 +L96 +R82 +R82 +L582 +R18 +R82 +L637 +L70 +L93 +L471 +L633 +L41 +R97 +L252 +R59 +R63 +L38 +R16 +L41 +R61 +R80 +R337 +R94 +R69 +L58 +R36 +R15 +R83 +R924 +R62 +L48 +L14 +L40 +L43 +R46 +R67 +L33 +L20 +R23 +R28 +L737 +R9 +R77 +L77 +R53 +R34 +L87 +L70 +R70 +R67 +L49 +R979 +L87 +L94 +R45 +L701 +L18 +R58 +R59 +L40 +R81 +R76 +R243 +R77 +R540 +L5 +R869 +R12 +R901 +R87 +R40 +L640 +R3 +L522 +L134 +L47 +R54 +L54 +R884 +L19 +L265 +R14 +R143 +R43 +L629 +R19 +R86 +R78 +L47 +L7 +L59 +R55 +R11 +L402 +L29 +R265 +L90 +L62 +R11 +R99 +R101 +L852 +L48 +R92 +R81 +L73 +L41 +R1 +R55 +L64 +L20 +L31 +L169 +L192 +R65 +R96 +R532 +R90 +R15 +R33 +R236 +R16 +R94 +R63 +R2 +R19 +R949 +R51 +R20 +R6 +L71 +R45 +R840 +L2 +R92 +R670 +L26 +R426 +R18 +L55 +R63 +L802 +R89 +R91 +L65 +R60 +R1 +L95 +L97 +L8 +R15 +L19 +R58 +R78 +L32 +L89 +R27 +L48 +R68 +L91 +L673 +R207 +L2 +L999 +L2 +L998 +L66 +R66 +R22 +R30 +L35 +R83 +L93 +L150 +R5 +L39 +L23 +L88 +L28 +R87 +L471 +R68 +L468 +L83 +L17 +L85 +L39 +R71 +L947 +R83 +L33 +R36 +R89 +R25 +R897 +L57 +L40 +R67 +R733 +L19 +L756 +R81 +R849 +R53 +L89 +L50 +R35 +L226 +R618 +L68 +L82 +L946 +L742 +L4 +L58 +L98 +R13 +R70 +L81 +R85 +R15 +L10 +L41 +R43 +R968 +R194 +R46 +R578 +R22 +L58 +L763 +R99 +R53 +L10 +L21 +R14 +R386 +R26 +L25 +L1 +L270 +L89 +L20 +R79 +R66 +L85 +R236 +L1 +R84 +L45 +R68 +L23 +R54 +L54 +L9 +R63 +L54 +R574 +R6 +R190 +L70 +R186 +R81 +L67 +L202 +R121 +R781 +L94 +R94 +L727 +L280 +L80 +R87 +R97 +R82 +L66 +R87 +R461 +L761 +L37 +L648 +R43 +L120 +R60 +R95 +R83 +L43 +R48 +L6 +R25 +L9 +L73 +L738 +L80 +R17 +L17 +L16 +R2 +L11 +L61 +R945 +L59 +L402 +R72 +R519 +L90 +L37 +R859 +L26 +R92 +R13 +L59 +L270 +R713 +L84 +R65 +R35 +L54 +R54 +R81 +L201 +L236 +R89 +L33 +R18 +R82 +L13 +R321 +L8 +L192 +L8 +R75 +R25 +R56 +R44 +L5 +R880 +R404 +R17 +R4 +L49 +L51 +R10 +L10 +R72 +R50 +L3 +L139 +L80 +R974 +R59 +R698 +R41 +R90 +L891 +L53 +L18 +R85 +L79 +R13 +L619 +L546 +R71 +R806 +R69 +L20 +L80 +L86 +R5 +R81 +L64 +R64 +R12 +R88 +L331 +R17 +L3 +R33 +R279 +R21 +L659 +L7 +L25 +R75 +R732 +R75 +R493 +R9 +L639 +R114 +L84 +R82 +R518 +L135 +L82 +R90 +R482 +L724 +R7 +L31 +L46 +L12 +R92 +R33 +L40 +R189 +R77 +L746 +R34 +R412 +L9 +R954 +L945 +L3 +L40 +R43 +R20 +R80 +L81 +R6 +R16 +L432 +L9 +L6 +L94 +L88 +L43 +L69 +R91 +R930 +R29 +L625 +L98 +R73 +L86 +R20 +R557 +R9 +L55 +R40 +R15 +L42 +R42 +R63 +R68 +R57 +R58 +R26 +L93 +L60 +R5 +R6 +L35 +L68 +L27 +L87 +R54 +L81 +R14 +L130 +L15 +R650 +R95 +L22 +L278 +L79 +L321 +R64 +R36 +R96 +L46 +R5 +L59 +R62 +R42 +R82 +R13 +R305 +L62 +L38 +R15 +R85 +R15 +L172 +L129 +L4 +R90 +L62 +L38 +L83 +L32 +L85 +R89 +L89 +R963 +L13 +R85 +R65 +L98 +L43 +R72 +L759 +R52 +R3 +L975 +R59 +L11 +L79 +L221 +R90 +R29 +R81 +L19 +R658 +R71 +R28 +L38 +L45 +R45 +L197 +R7 +L10 +R96 +R889 +L85 +R717 +R59 +L76 +R797 +R3 +L24 +R24 +L24 +R305 +R65 +L46 +L623 +L77 +R429 +L29 +R13 +L131 +L82 +R14 +L85 +R266 +L53 +L82 +R56 +L7 +R91 +R533 +R67 +L45 +L75 +L92 +R103 +L5 +R14 +R19 +R90 +L409 +R938 +L38 +R58 +R72 +R57 +R73 +R48 +L55 +R21 +R34 +L52 +R860 +L8 +L908 +L64 +L84 +L52 +R11 +R77 +L9 +R21 +L97 +R97 +L38 +R38 +L981 +L56 +R85 +L6 +L42 +L231 +R29 +L88 +R89 +R1 +R376 +R24 +R27 +L27 +R86 +R14 +R64 +R96 +R1 +R39 +R31 +L9 +R65 +L91 +L95 +L901 +R644 +R56 +R9 +R8 +L17 +R21 +R9 +R79 +R91 +L289 +R62 +R71 +R21 +R35 +L719 +R22 +R597 +L11 +R86 +R88 +R73 +R32 +R32 +L84 +R82 +R2 +R3 +R9 +L12 +L32 +R22 +L90 +L53 +R53 +L17 +L83 +R42 +R30 +L72 +R38 +L936 +L502 +R621 +L25 +R65 +R935 +R904 +R90 +L90 +L53 +L47 +L19 +R39 +L41 +R557 +L62 +R26 +R316 +L23 +L32 +R39 +R215 +L15 +L45 +R23 +R33 +L47 +L78 +L16 +R20 +L944 +R54 +L19 +R19 +L25 +L23 +L52 +R347 +R53 +R96 +R603 +L99 +L20 +R999 +R87 +L66 +L2 +R23 +R76 +R3 +L4 +R69 +L565 +R41 +R745 +L852 +R66 +L2 +R503 +R99 +L990 +R90 +R310 +L5 +R94 +L36 +R6 +L605 +R61 +L26 +R607 +L93 +R2 +R985 +L915 +R15 +L699 +L1 +R83 +L87 +L296 +R49 +R51 +R69 +L363 +L734 +R28 +R8 +L35 +L556 +R12 +L29 +R635 +L36 +R1 +R46 +L98 +R52 +L27 +L643 +R70 +R739 +R24 +L4 +L959 +R470 +R30 +L46 +L54 +L44 +R79 +L535 +R67 +R676 +L43 +R98 +L90 +L8 +R44 +L52 +L92 +L799 +L91 +L610 +L2 +R2 +R52 +R45 +R123 +L20 +R66 +R67 +R67 +R90 +R946 +R91 +R39 +R69 +R65 +L51 +R61 +R46 +L56 +R88 +L88 +L31 +L5 +L76 +R212 +L439 +L61 +R99 +R1 +L49 +L39 +L54 +L53 +R70 +L664 +R569 +R61 +L9 +R68 +R81 +R19 +R98 +L62 +L50 +R51 +L10 +L43 +R485 +L51 +R82 +L246 +L554 +L85 +R14 +R53 +R47 +L1 +R72 +L66 +R66 +R95 +R87 +L82 +L68 +L9 +R70 +L375 +R37 +R45 +R51 +R649 +R90 +L23 +L31 +L636 +R80 +R20 +L93 +L207 +L32 +R32 +L81 +L22 +R3 +L88 +L22 +R79 +R31 +L108 +R8 +R340 +L81 +R141 +R73 +R27 +R309 +R91 +L88 +L112 +R79 +R83 +R307 +L469 +R715 +R85 +R63 +L25 +R9 +L76 +L789 +R56 +L38 +L270 +L7 +L23 +L97 +L60 +L43 +R31 +L31 +R72 +R967 +L39 +R98 +L23 +R57 +L74 +R98 +R97 +R747 +R12 +R56 +L68 +R61 +L61 +L49 +R530 +R66 +L49 +L98 +R36 +R64 +R31 +R18 +R851 +L77 +R77 +R212 +L24 +L88 +R11 +R8 +L839 +L18 +L78 +L84 +R22 +L22 +R56 +L56 +R47 +L47 +R72 +L72 +L84 +L70 +L46 +R21 +R18 +L277 +L60 +L2 +L23 +R29 +L28 +L78 +L19 +R22 +L70 +R71 +R996 +R86 +R14 +R26 +R74 +R21 +R79 +L57 +L13 +L50 +L44 +R64 +R15 +L115 +L32 +L27 +L139 +L902 +L62 +L81 +R56 +R4 +R77 +R60 +L81 +L73 +R94 +L94 +L37 +R229 +R69 +L25 +L53 +L83 +R574 +R857 +L31 +L127 +L573 +R508 +R92 +L746 +L654 +L51 +R12 +R75 +L36 +R768 +R310 +R30 +R85 +L46 +L847 +L80 +L62 +R42 +R311 +R259 +R793 +L46 +R81 +R33 +R747 +R422 +L75 +R75 +R6 +L6 +R41 +L949 +L92 +L101 +R68 +L75 +R28 +R465 +L54 +R66 +L97 +L55 +R50 +R623 +L88 +L936 +L94 +L35 +L570 +R5 +L61 +R67 +R62 +L36 +R56 +L88 +R43 +R11 +L81 +L47 +L20 +L506 +R16 +L16 +R727 +L55 +L34 +L840 +L72 +L19 +L7 +R96 +L96 +L23 +R23 +R54 +L94 +L94 +L28 +L48 +L5 +L8 +R11 +L88 +L20 +R620 +R18 +L34 +R16 +R104 +R96 +R38 +R54 +R408 +L7 +L24 +L20 +R91 +L72 +R883 +L51 +R63 +L174 +L89 +R8 +L8 +R446 +R68 +L81 +L46 +L401 +L77 +L9 +L86 +L26 +L792 +R77 +R163 +R821 +L848 +R91 +L642 +R60 +R29 +L83 +R71 +L506 +L53 +L76 +R93 +L142 +L951 +L6 +L91 +R15 +R77 +L95 +R72 +L776 +L96 +L62 +L55 +R850 +L72 +L64 +R3 +L2 +R2 +R93 +R39 +L68 +R36 +R8 +L57 +L33 +R82 +L477 +R77 +R437 +R63 +L94 +R59 +R2 +L40 +L34 +L65 +L25 +R97 +R73 +R27 +L1 +L14 +L84 +R724 +R75 +L91 +R91 +R363 +L63 +R297 +L29 +L79 +R511 +R366 +R34 +R34 +R27 +R60 +R49 +L370 +R274 +R50 +L124 +L5 +R5 +L5 +R5 +R91 +L46 +L57 +L88 +L338 +L30 +L6 +R66 +R77 +R31 +L43 +L57 +R18 +R79 +R5 +L34 +L68 +R550 +R199 +R51 +R495 +L95 +R74 +L51 +L23 +R31 +L83 +L99 +R723 +L49 +L71 +L28 +L124 +R76 +L72 +R96 +L18 +R580 +L99 +L33 +R70 +R65 +L39 +R74 +L91 +L470 +R96 +R65 +L20 +L80 +L19 +L81 +L36 +R29 +L93 +R90 +R44 +R29 +R209 +R28 +R3 +L1 +L45 +L107 +L33 +R96 +R14 +R8 +R265 +L43 +L33 +L24 +R98 +R2 +R537 +L411 +R77 +L93 +R290 +L332 +R20 +R12 +L84 +R884 +L39 +L706 +R8 +R16 +L79 +R23 +L23 +L728 +L72 +R5 +L5 +L97 +R51 +L34 +L20 +R57 +L62 +R305 +L51 +R5 +L496 +L14 +R40 +R654 +L38 +R71 +L89 +R18 +R183 +R17 +L66 +R4 +R62 +L75 +R15 +R60 +R21 +R79 +R32 +L73 +L7 +R52 +L313 +L8 +L6 +L853 +L7 +L17 +R72 +L72 +L14 +L50 +R51 +L91 +R91 +R18 +L12 +L93 +L64 +L36 +L23 +R36 +L13 +L26 +L62 +L5 +R293 +L943 +L50 +R17 +R79 +R95 +L21 +R86 +L251 +R8 +L82 +R362 +R3 +R60 +L63 +R48 +R1 +R11 +L60 +L52 +L229 +L83 +R43 +L79 +L20 +L5 +L75 +R927 +L27 +L82 +R266 +L14 +R30 +R63 +L34 +R171 +L32 +L68 +R93 +R7 +L12 +R177 +L86 +R21 +L31 +L69 +L318 +L85 +L71 +R70 +R72 +L34 +L97 +R80 +L117 +R9 +R91 +R99 +L99 +L64 +R74 +L51 +L60 +R79 +L42 +R818 +L54 +R614 +L695 +L19 +L979 +L35 +L486 +L51 +R81 +L28 +L92 +R19 +L29 +R13 +L82 +R12 +R99 +L95 +R53 +R293 +L95 +R38 +L53 +L302 +R19 +R10 +L57 +R47 +R25 +R74 +R53 +L65 +R13 +L41 +L68 +L67 +L70 +L25 +L50 +L90 +L89 +R763 +R863 +L48 +L67 +R82 +L58 +L98 +L537 +L95 +R37 +R45 +R716 +L26 +L98 +L279 +L66 +L59 +L75 +L24 +R424 +R30 +R15 +L45 +L70 +L77 +L353 +R25 +R35 +L56 +R96 +L49 +L751 +R21 +R47 +L43 +L67 +L58 +R72 +R31 +L86 +R54 +R29 +R868 +L68 +R25 +R90 +R42 +R54 +R89 +L27 +L73 +R33 +R412 +R62 +L87 +L47 +R22 +L53 +L66 +R96 +L73 +R1 +L99 +R20 +R784 +R795 +R13 +L613 +L708 +L61 +R69 +R17 +R83 +L54 +L546 +R799 +R801 +L84 +L31 +L78 +L22 +R89 +L43 +R74 +R59 +L64 +L911 +R53 +R11 +R347 +R11 +R14 +R68 +R7 +L31 +L69 +L501 +L98 +R99 +L85 +L388 +R40 +R8 +R389 +R5 +R65 +R871 +L798 +L61 +R54 +R26 +L26 +R47 +L33 +R95 +L83 +R804 +R26 +R948 +L9 +R5 +R75 +L12 +L18 +L45 +L18 +R9 +R9 +R266 +R34 +R55 +R83 +L94 +R41 +L185 +L47 +L74 +L79 +R91 +L7 +L84 +L36 +L964 +R46 +L546 +L9 +R9 +R89 +R40 +L1 +L53 +L475 +R70 +L8 +L62 +R40 +R60 +R60 +R91 +R49 +L53 +R34 +R19 +L10 +R56 +L50 +L34 +R538 +L92 +L908 +R12 +L12 +L90 +R88 +R3 +R2 +R56 +L65 +R6 +L65 +R317 +L152 +L7 +R7 +L60 +R56 +R25 +L992 +R47 +L13 +R48 +L52 +L656 +R15 +L753 +R57 +R701 +R82 +L45 +R467 +R19 +R54 +L24 +R32 +L37 +L2 +R31 +R61 +R91 +L521 +R58 +L242 +R89 +R90 +L46 +R920 +R77 +L77 +R5 +R82 +L87 +L404 +L16 +L44 +L48 +R112 +R416 +L216 +L7 +L6 +R522 +R91 +L25 +L437 +L38 +L892 +L74 +L634 +L31 +R36 +L63 +R18 +R40 +L4 +R504 +R40 +L40 +R3 +R777 +L455 +R75 +R87 +L4 +L83 +R58 +L747 +L69 +R58 +R19 +R81 +L10 +L90 +L66 +L50 +L2 +L82 +R7 +L7 +L366 +R866 +L37 +R27 +L90 +R2 +L202 +R79 +R906 +L16 +R31 +L52 +R64 +L84 +R36 +R710 +L40 +L19 +R22 +L611 +R57 +L53 +R64 +R14 +L8 +R6 +R76 +R589 +R33 +R48 +R748 +L11 +R96 +L85 +R12 +L46 +L94 +R70 +R55 +R273 +R67 +R881 +R87 +L4 +L1 +L97 +L90 +R87 +R4 +R96 +L62 +R62 +L78 +R28 +R1 +L67 +R216 +L19 +R19 +R39 +R75 +L714 +R97 +R3 +L99 +L96 +L8 +L499 +R47 +L57 +R41 +L73 +R33 +R14 +R1 +L45 +R63 +L86 +L47 +R20 +R91 +R98 +R102 +R87 +L22 +R36 +R86 +R24 +L211 +L217 +R44 +R30 +R42 +L98 +R199 +L34 +R34 +R50 +R90 +R28 +L32 +R64 +L57 +R27 +R105 +R47 +L22 +L35 +R301 +L49 +L17 +L22 +L778 +L606 +R6 +L25 +R708 +R36 +L79 +R4 +L31 +L13 +L92 +R392 +R22 +R78 +R63 +R81 +L2 +R8 +R49 +L808 +L37 +R67 +L507 +R86 +L20 +L75 +L260 +R26 +L79 +L39 +R47 +L65 +R806 +R33 +L57 +L17 +R31 +R96 +L15 +R54 +R56 +R608 +R997 +R42 +R31 +R31 +R69 +L84 +L516 +L81 +R11 +L33 +R3 +R802 +L642 +R40 +L74 +L49 +L91 +L886 +R89 +R11 +L18 +L82 +L26 +L252 +L40 +L98 +L79 +L60 +L845 +L1 +R1 +L25 +R24 +R807 +L55 +R11 +L66 +L73 +R72 +R5 +R513 +L68 +R485 +R70 +L81 +L19 +L86 +L72 +R46 +L88 +L59 +L41 +R373 +L73 +L49 +L751 +R430 +R70 +R74 +R726 +L5 +L95 +R67 +L666 +R699 +L67 +R70 +L82 +R19 +R360 +R77 +L899 +L68 +R66 +L376 +L78 +R78 +R97 +L97 +L58 +L73 +R86 +L55 +L9 +L91 +R78 +R5 +L38 +R15 +R639 +R1 +R51 +R66 +L84 +R59 +R8 +L334 +L55 +R72 +L82 +L93 +R92 +R330 +L94 +R64 +L487 +R87 +R65 +L566 +L670 +R24 +R10 +R42 +R95 +R38 +R366 +L4 +R29 +L29 +R91 +L94 +R48 +L660 +L40 +R86 +R769 +R904 +L4 +L76 +R78 +L45 +L73 +L14 +L70 +L58 +L69 +L873 +L234 +L38 +L90 +R46 +L98 +L93 +R37 +L18 +R88 +L44 +L553 +R97 +L469 +L57 +L58 +L42 +R37 +R370 +L331 +R299 +L49 +L85 +R85 +R180 +R918 +R302 +L128 +L72 +L11 +L26 +L63 +L25 +R25 +R5 +L47 +L14 +R56 +R69 +R525 +L994 +R533 +L633 +L1 +L53 +L46 +L10 +R98 +L53 +R78 +L13 +R66 +L66 +R49 +L49 +L9 +L66 +R18 +R857 +R72 +L72 +R189 +R11 +L57 +R29 +R81 +L51 +L702 +R1 +R45 +L62 +L29 +L9 +R54 +R64 +L330 +L749 +L85 +L8 +L81 +L309 +L388 +R82 +L88 +R92 +L58 +R98 +R43 +L49 +L934 +R894 +L94 +L47 +L34 +L819 +L741 +L859 +R6 +R92 +L73 +R75 +R21 +L965 +L90 +R34 +R252 +L588 +L64 +L738 +L96 +L66 +R66 +L28 +L19 +L65 +L86 +R32 +R21 +R457 +R22 +L356 +R378 +R635 +R31 +L67 +R79 +R96 +R604 +L65 +R43 +R47 +L65 +L60 +R975 +L75 +L30 +L70 +L53 +L73 +R91 +L50 +L927 +L51 +L41 +R49 +L89 +R41 +R3 +L680 +R829 +R335 +L84 +R21 +R553 +L774 +R90 +L90 +L90 +R11 +R49 +L781 +L82 +R93 +R267 +R82 +R51 +R22 +R78 +R97 +R813 +R990 +R34 +L34 +R82 +R77 +R69 +L63 +L114 +L85 +R7 +L73 +R27 +L11 +R5 +R79 +R88 +R12 +R95 +L815 +L80 +L952 +L748 +L375 +L87 +R62 +L79 +L21 +L49 +R49 +R48 +L48 +R2 +L2 +L328 +R6 +R9 +L98 +R29 +L18 +R35 +R66 +L77 +R76 +R58 +L58 +R540 +R12 +R48 +R687 +R65 +L937 +L13 +L2 +L378 +L98 +R57 +L985 +L23 +L9 +L64 +L90 +L10 +R28 +R172 +L97 +R450 +R3 +R8 +R6 +R88 +R92 +R60 +R66 +R29 +R82 +R59 +R44 +R48 +L99 +R60 +L369 +R88 +R22 +L66 +L63 +R89 +R40 +L24 +R58 +R26 +L234 +R83 +R688 +L37 +R87 +L987 +R55 +L55 +R35 +R11 +R78 +L12 +L95 +R25 +R58 +R49 +R77 +R74 +L266 +R66 +R99 +R11 +L777 +R58 +R54 +L7 +R62 +R77 +R59 +L84 +R48 +R41 +L41 +R68 +L67 +L29 +R74 +R54 +L83 +L90 +L92 +L87 +R52 +L32 +R934 +R57 +L70 +R21 +R46 +R44 +R52 +L52 +L147 +R94 +R69 +L19 +L47 +L89 +L95 +L57 +R16 +R60 +R92 +R72 +R16 +R45 +R80 +L90 +R245 +L69 +R124 +R58 +L11 +R71 +L78 +L40 +R94 +L83 +L11 +L43 +L39 +L50 +R30 +L54 +L7 +R932 +L769 +R34 +R266 +L80 +L276 +L2 +R758 +R22 +L622 +L701 +R50 +R63 +L12 +R58 +R543 +R99 +L6 +R6 +R808 +L587 +R102 +L95 +L55 +L34 +R570 +L9 +L16 +R2 +L20 +L63 +R30 +R67 +R7 +L69 +R64 +R98 +L3 +R3 +R13 +R64 +L241 +L4 +R68 +L62 +L6 +R68 +R49 +L84 +R35 +L23 +R23 +L85 +L15 +R52 +R548 +L35 +R48 +L52 +R571 +L432 +L59 +L41 +L11 +R1 +R10 +L79 +L60 +R39 +L49 +L950 +R14 +R94 +L51 +R42 +L678 +L22 +L60 +R82 +R78 +L41 +R885 +R74 +L61 +L23 +R39 +L44 +L43 +R14 +L9 +L91 +L69 +L31 +R45 +L80 +R77 +L72 +L76 +R78 +L72 +R87 +R113 +L40 +L761 +L9 +R91 +R82 +R78 +R41 +R424 +R24 +L39 +R9 +L15 +R15 +L84 +L16 +R290 +R899 +L37 +R54 +R79 +L25 +L63 +L61 +L36 +R55 +L65 +L94 +R51 +R53 +L20 +L71 +R91 +L16 +L84 +L798 +R16 +L11 +L7 +L95 +R533 +R81 +L33 +L22 +L64 +L5 +L605 +R10 +R67 +L36 +L31 +L13 +R92 +L421 +R91 +L19 +R501 +R43 +R72 +R6 +R48 +R31 +R69 +L13 +R48 +R89 +R76 +L18 +L33 +R75 +L24 +R32 +L32 +R11 +R821 +L32 +R81 +R19 +R304 +R296 +L2 +L98 +L50 +L11 +L51 +R972 +L32 +R87 +L15 +L601 +R646 +R80 +R75 +R680 +L80 +R11 +R89 +R13 +L85 +R42 +R97 +R896 +R27 +R71 +L62 +R180 +R61 +R360 +R552 +R65 +R171 +R12 +L68 +R68 +R30 +L830 +R90 +R10 +L81 +L56 +L163 +L28 +R45 +R11 +R32 +L16 +L44 +L161 +L6 +L90 +R57 +R59 +L59 +L54 +L897 +L43 +R72 +R584 +R38 +L64 +R39 +R23 +R902 +R74 +R40 +L93 +L821 +R46 +L46 +L62 +L52 +L86 +R56 +R44 +R71 +R336 +R93 +R151 +R64 +L61 +L554 +R50 +L37 +R11 +L624 +R68 +L68 +L42 +R8 +L54 +L992 +R28 +R638 +L585 +R11 +L16 +L30 +L66 +L27 +R27 +R92 +L93 +R43 +R458 +R12 +R88 +L85 +L26 +L2 +L87 +R138 +R62 +R682 +L82 +R8 +L47 +R15 +L58 +R7 +R67 +R27 +R33 +R48 +L194 +L485 +R293 +L44 +R30 +R4 +L4 +R53 +R38 +R10 +R96 +L14 +L83 +L10 +L31 +R23 +L10 +R38 +R2 +R88 +R52 +R21 +R27 +R270 +R42 +L92 +R73 +R823 +L590 +R47 +L79 +R7 +L79 +L26 +R626 +L790 +L73 +L67 +L50 +L442 +L38 +R15 +L51 +R74 +R51 +L46 +L97 +L8 +L40 +R340 +L61 +R61 +L35 +L65 +L511 +R40 +R58 +R62 +L19 +R70 +L798 +L27 +R748 +R68 +R864 +R45 +L367 +R67 +L25 +R62 +R63 +L13 +L75 +L352 +L62 +R85 +L83 +R81 +R39 +L41 +L79 +L2 +R2 +L265 +L83 +L52 +L84 +L16 +L36 +R435 +R27 +L70 +L50 +R37 +L14 +R71 +L6 +L94 +R302 +L333 +R31 +L46 +R46 +L34 +R134 +L89 +R95 +R94 +R2 +L2 +R8 +R92 +R365 +R35 +L225 +L75 +L12 +L47 +R559 +R65 +R51 +L16 +R76 +R24 +L47 +R97 +R50 +L28 +L889 +L2 +L19 +L62 +L63 +L456 +L81 +L89 +R486 +R31 +R724 +R48 +L74 +R31 +R69 +L26 +R301 +R31 +R652 +R42 +L261 +R35 +R50 +R79 +R171 +L7 +R7 +L386 +R86 +R26 +R395 +L48 +L55 +L18 +R555 +R23 +R59 +L37 +L25 +L64 +L51 +R3 +R837 +L29 +R229 +R91 +L406 +R70 +R99 +L978 +L76 +L19 +R89 +R78 +R47 +R22 +L17 +R47 +R53 +R13 +R53 +R87 +R4 +L257 +R586 +L63 +L463 +L60 +R5 +R95 +R66 +R34 +L195 +R47 +R6 +R2 +L39 +L21 +R56 +R44 +L83 +L61 +L770 +R547 +R5 +L53 +L66 +R881 +R85 +R615 +R19 +L13 +L179 +L47 +R320 +L53 +L41 +R94 +L95 +R78 +L819 +R36 +L36 +R969 +L9 +L44 +L89 +L36 +L7 +L25 +R8 +R69 +L41 +L94 +R769 +R866 +R907 +R39 +R3 +L17 +L86 +R50 +L50 +L51 +L718 +R23 +R50 +R50 +R230 +R70 +L94 +L60 +L914 +R68 +L36 +R56 +L20 +R37 +L37 +R382 +L11 +R895 +L66 +L51 +R87 +L39 +L9 +L88 +R27 +L52 +L24 +R672 +R5 +L96 +R74 +L89 +R993 +L12 +R28 +R39 +L465 +R12 +R31 +R22 +L65 +L32 +L865 +L89 +L77 +L37 +R9 +L9 +L37 +L378 +L85 +L14 +L86 +L45 +R45 +R40 +L40 +L40 +R507 +L88 +L59 +L85 +R65 +L99 +R929 +L30 +L75 +R647 +L72 +R301 +R40 +L24 +L81 +R54 +R10 +L93 +L2 +R23 +R92 +R657 +L73 +R16 +L79 +L341 +L941 +R45 +L4 +L14 +L19 +R75 +L42 +R69 +L69 +L35 +R20 +L593 +L93 +L607 +R8 +R4 +R167 +R29 +R52 +L52 +R574 +L34 +R53 +R7 +R808 +R98 +L499 +R45 +R8 +L52 +R16 +L52 +L73 +R812 +L11 +R18 +R63 +L72 +L9 +R3 +L3 +R92 +R17 +L809 +R44 +R56 +L318 +L61 +L68 +L93 +L9 +R12 +R46 +R83 +R51 +R510 +R47 +R7 +L307 +R62 +R86 +L48 +L71 +L222 +L6 +L8 +L82 +L33 +R22 +L37 +R47 +L6 +R14 +R86 +R96 +R147 +L47 +L15 +R66 +L98 +R77 +R61 +R98 +L789 +R82 +L978 +L804 +R79 +L79 +R97 +R903 +L43 +R717 +R26 +R32 +L82 +L708 +L42 +L380 +R80 +R57 +R42 +R61 +L60 +L96 +L4 +R34 +L14 +L14 +L3 +L203 +R61 +L45 +L16 +R299 +R29 +L28 +R8 +L11 +L354 +L74 +L22 +L75 +R28 +L10 +L90 +R99 +L12 +R13 +L179 +R48 +L73 +L46 +L83 +R43 +L10 +R73 +R27 +R52 +L83 +L69 +L83 +L80 +L98 +L495 +L7 +L37 +R446 +L14 +R68 +L65 +R65 +L30 +R111 +R67 +L95 +R94 +R91 +L84 +R92 +L44 +L491 +L11 +L5 +R96 +R9 +R352 +L34 +R12 +R13 +L98 +L31 +R86 +L3 +R3 +R83 +L54 +R71 +R743 +L43 +R44 +L69 +R25 +L90 +R440 +L96 +L524 +R70 +L33 +R933 +L819 +R4 +L18 +R57 +R76 +L254 +L8 +L38 +L49 +L53 +L33 +L76 +L22 +L867 +L37 +L68 +R5 +L392 +L39 +L97 +L72 +L52 +L848 +L14 +L83 +L91 +R88 +L24 +R24 +R285 +R50 +L49 +R14 +R28 +R85 +R605 +R47 +L93 +R43 +L15 +R56 +R44 +R33 +R83 +R12 +L92 +L956 +R81 +L61 +L244 +R31 +R31 +R27 +R10 +L55 +L59 +L8 +R44 +L77 +R834 +R66 +R50 +L50 +R7 +R33 +L40 +L43 +L37 +R63 +R8 +L204 +R613 +R21 +R879 +R32 +R856 +R12 +R45 +L18 +L98 +R24 +L53 +L82 +L49 +R88 +L57 +R2 +R36 +L80 +R24 +L82 +R68 +L773 +R5 +L26 +L815 +L638 +R968 +L24 +R835 +L93 +L95 +R88 +R27 +L23 +R76 +R596 +R24 +R61 +L62 +R1 +L2 +L98 +L613 +R2 +L66 +R37 +L60 +L35 +L79 +L47 +L242 +R93 +R64 +R94 +L67 +R19 +L28 +R63 +L35 +L83 +L432 +L85 +R64 +R36 +L871 +L29 +R542 +L42 +L975 +L88 +R5 +L45 +L3 +R72 +L19 +L25 +R78 +L95 +L54 +R65 +R57 +R27 +L56 +L44 +R42 +R29 +R29 +R37 +L89 +R63 +R5 +L72 +R41 +R15 +L12 +R45 +R27 +R43 +R97 +L16 +R17 +L68 +R67 +R21 +R12 +L2 +R50 +R92 +R4 +R56 +R33 +R68 +R2 +L36 +L41 +L99 +L19 +R34 +L9 +L86 +R20 +R81 +R32 +R21 +L41 +L19 +L18 +R3 +L12 +L13 +R42 +R31 +R17 +L32 +L2 +L39 +R41 +L25 +L44 +L29 +L29 +R43 +R45 +R34 +L26 +R50 +L32 +L38 +R22 +R19 +L45 +R41 +R9 +R33 +L27 +R16 +L9 +L10 +L8 +L7 +L40 +R15 +L23 +L46 +L42 +R33 +L18 +L45 +L2 +L8 +R14 +L15 +L26 +R15 +L39 \ No newline at end of file diff --git a/2025/01/kylepritchard.v b/2025/01/kylepritchard.v new file mode 100644 index 0000000..07a67e7 --- /dev/null +++ b/2025/01/kylepritchard.v @@ -0,0 +1,59 @@ +module main + +import os +import strconv + +fn main() { + codes := os.read_file('kylepritchard.input') or { panic('Failed to read file') } + + mut start := 50 + mut count := 0 + mut count2 := 0 + + for line in codes.split_into_lines() { + if line.len == 0 { + continue + } + + if line[0] == `L` { + move_str := line[1..].trim_space() + mut move := strconv.atoi(move_str) or { 0 } + + for move > 0 { + start-- + if start == 0 { + count2++ + } + if start == -1 { + start = 99 + } + move-- + } + + if start == 0 { + count++ + } + } else { + move_str := line[1..].trim_space() + mut move := strconv.atoi(move_str) or { 0 } + + for move > 0 { + start++ + if start == 100 { + start = 0 + } + if start == 0 { + count2++ + } + move-- + } + + if start == 0 { + count++ + } + } + } + + println('Part 1: $count') + println('Part 2: $count2') +} From 51c41c5923f208cb605a7c3093319bddc22da9a9 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 11:58:54 +0000 Subject: [PATCH 02/15] Day 2 solutions --- 2025/02/kylepritchard.input | 1 + 2025/02/kylepritchard.v | 85 +++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 2025/02/kylepritchard.input create mode 100644 2025/02/kylepritchard.v diff --git a/2025/02/kylepritchard.input b/2025/02/kylepritchard.input new file mode 100644 index 0000000..76abbd8 --- /dev/null +++ b/2025/02/kylepritchard.input @@ -0,0 +1 @@ +19391-47353,9354357-9434558,4646427538-4646497433,273-830,612658-674925,6639011-6699773,4426384-4463095,527495356-527575097,22323258-22422396,412175-431622,492524-611114,77-122,992964846-993029776,165081-338962,925961-994113,7967153617-7967231799,71518058-71542434,64164836-64292066,4495586-4655083,2-17,432139-454960,4645-14066,6073872-6232058,9999984021-10000017929,704216-909374,48425929-48543963,52767-94156,26-76,1252-3919,123-228 \ No newline at end of file diff --git a/2025/02/kylepritchard.v b/2025/02/kylepritchard.v new file mode 100644 index 0000000..3af63f3 --- /dev/null +++ b/2025/02/kylepritchard.v @@ -0,0 +1,85 @@ +module main + +import os +import strconv + +fn has_exact_two_halves(s string) bool { + if s.len % 2 != 0 { + return false + } + half := s.len / 2 + return s[0..half] == s[half..] +} + +fn has_repeating_pattern(s string) bool { + for pattern_len in 1 .. s.len / 2 + 1 { + if s.len % pattern_len != 0 { + continue + } + + pattern := s[0..pattern_len] + mut matches := true + + repetitions := s.len / pattern_len + for rep in 1 .. repetitions { + start := rep * pattern_len + end := start + pattern_len + if s[start..end] != pattern { + matches = false + break + } + } + + if matches { + return true + } + } + return false +} + +fn main() { + content := os.read_file('kylepritchard.input') or { panic('Failed to read file: $err') } + + ids := content.split(',') + + mut sum1 := i64(0) + mut sum2 := i64(0) + + for id in ids { + if id.len == 0 { + continue + } + + range_parts := id.split('-') + + start_str := range_parts[0].trim_space() + end_str := range_parts[1].trim_space() + + start := strconv.parse_int(start_str, 10, 64) or { + eprintln('Start number isn\'t valid: "$id"') + continue + } + + end := strconv.parse_int(end_str, 10, 64) or { + eprintln('End number isn\'t valid: "$id"') + continue + } + + for num in start .. end + 1 { + num_str := num.str() + + // Part 1 + if has_exact_two_halves(num_str) { + sum1 += num + } + + // Part 2 + if has_repeating_pattern(num_str) { + sum2 += num + } + } + } + + println('Part 1: $sum1') + println('Part 2: $sum2') +} From b89b445c3bb26f68a80ed01d7dfb01f92c26d296 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 11:59:15 +0000 Subject: [PATCH 03/15] Day 3 solutions --- 2025/03/kylepritchard.input | 200 ++++++++++++++++++++++++++++++++++++ 2025/03/kylepritchard.v | 71 +++++++++++++ 2 files changed, 271 insertions(+) create mode 100644 2025/03/kylepritchard.input create mode 100644 2025/03/kylepritchard.v diff --git a/2025/03/kylepritchard.input b/2025/03/kylepritchard.input new file mode 100644 index 0000000..df89448 --- /dev/null +++ b/2025/03/kylepritchard.input @@ -0,0 +1,200 @@ +7657222591427217122445272425253565561122226426262235211484443362522725526264152632322121122211226432 +3373333633442752337522633445663374225443334322548433257443232874664837733346552233522456333621353345 +1332222423213233321341322323233232323313322333313132332432322231343233323222222322322223132223242221 +2542511113222221222322623512315322253412425222332222424222523225123222231222224522222222222123312322 +3465272641321143415543233223464843452262833212844252142443235541323214344424228944552242354521272432 +4746446644444344344434474434349432454437943543534444547444444434443434434244242333735532354244443457 +2112324121442212222221214221123252424122222412222222222132144242311242221221322223822242342212444424 +1123333344342332223423545344534323322122243224333232224112215322432334525445233222215532234355133214 +2422422522222332247233266222222212224342142134238242261312212226126234121412222412621222221222122223 +8329132331223632222312624241312323321177123234222332553212342643212612322223124323212165222222325622 +6433642575467553452243355443435383362235653125644554572611343354343732653446353346243533442537525464 +9776986994932798457744396988598286979887288577967999956986885598686998788487659799665897679768899989 +2335615221112276254226223223223221322435222432224218231322222123222212231432331242324126331169112232 +2543345342433254664646231519663636264432194627324243362833544525365376652832533235443344621283334935 +2322212711266652255421245642222542255213265861513322223242531242225231222255312526551225512244323155 +2321223221213223229231113131211231122353212222325321124113523322212213223252221132311224323211222313 +3963734344733733733534428343226425232743226474632372254433423722133212327383231733334214643234356431 +1221221211321121221122121221422232322322312622223127222133222342422322231224224412222122221332241442 +2221324223223233115123124252255313322324473522452221822456524523124135313222243223322234115312732225 +2223222322222222352442222221222222223212222221222122223212221222221222122212122222212212232222122222 +1121222222112832323251331222225634325373232223222331223232222329312373663523121942423258234115233212 +3225524325253544422431426256136526482524226236316511554643275743228592433741363256836281154327425424 +6352556122463717312217582342312764633252679657451822732163624544674142726465357723757856355284232543 +2442434442438722684773924354459827432495458263533463645743434557324333542934558336267433675384462434 +3222342222252334323133323235233332333335333225335322223347324434134333543532343324335222433334322434 +2222322821413322522327234232221342231433332331222331232231213225322233331723115233112621233222235122 +2634442443233722221231522441451343444292244525253246492214427238327222333244622237426431344214255342 +1223223112222311412112252132222713214622226212532212522222232421122221442222241254222432222243233225 +1325932455431623232333525823151573313455512446523624555343442324235272752451212136734325321424441556 +7256358555824237662535556344456446249947456337424523743433644234738229852964942534264632434157537313 +7943676747575659246664394755836437376424444748967643364944363434472848848944564896895447224717544333 +5286649225236356243535463452638644232223646243213554513424523359622234256445983323661442242332424332 +6673444539464243453761737663442455239436361446638546244285466383634655124789444364471358452774442453 +1223222221221212221222121222221222224221222223122112112212122122312231221224432221232222222212222422 +3335453555366555335463661353344513554672136333336637152543663564666334265633545759666566556465163543 +3252539585343423336326444236333344495483333335575223352335314532333646532153333533433636993338153535 +3333234233323233532213232233353343233231333324323334335332141334325225333223333352333323222333323325 +8545554544437483336366868276686547884474788273435475335367734547688374643466747346785724489167365442 +2232527532342212722722233353323233223322253633233431352352133323625245533322321336925333253232522722 +5556597585573574453762372427365624245614276654664544255675776375664447486634882576174483586666481875 +5255555655556653745655455585459465245547445455393644455564645555466895545364553552555639656524526645 +4337234233442323542434444255224315163581432242343144123434444341343723342344423433432232354641434174 +2222331212238323262452221124223732222222152213222222222222222112224122222222232211421352622122222122 +1232322223321232222123322222232322123315531221122322132321222323211232425322242232235321222322432522 +2322222222214333235214213232231333233332922122272226252217623322522213232362222222222253222452233212 +2526847699636356678785677552366962363653357695869567553474764262942516261287578237776225392647843464 +4324243434257223424333244213433434331224243333344234233342235432423163243432423433324433533233443223 +2212222222232222122222231442232224422422312224222211322353213222223212465423221172228621372122515226 +5224444322343443324443442434251432525333644424442432234332443214244333423443334274525244334371244244 +5665465529465666164595646586765567466765555545676495774555666265757636653556565356555565794857466585 +3323222533223613635322212223222322313121333443431162323241323331331222322332162232332311221335122241 +1223444125243234572287783343775352555526375627553262257346459422634562222274333544623445275645384352 +2422222221411242123222222124222414132432121212212112422142321222632122423212222262122342232224822222 +2223222323225233123141262322323333322225322222122323232222123322221222223222243311324222212212222232 +3232231323332333332333323323333253323432232323352323222123333233344333338231323133923232332222433131 +4233223121232223222231131222223322221284221222244432323322311222122223231332222223221412211132114142 +2523234356222222511233122222222254132224222521323242122522234424235231155462333221221122352432732224 +3634234213333334432333321223344323331434343341444445333334544342333433445243234313242143323334423344 +3232223321323342226323323233222222212232132332232332421223231121322212332222222232332234232222312323 +2222333434132242434452263333534214233423132422324114425234322333332444344424123342333364343434443343 +5374333633333334633495383324363537333442234333385923333572743533233554933133733321842323833535557553 +4242442342422424678856843326322614244564442583144844444444447416548323553484424524426383559294424833 +9778788898888888448587667565656957386848788679796777548543967864848777396858954867766869868536494478 +2354324323233415233213313231455334252323352233333325522233255313273321225222432234343233434322333333 +5293275569488466646327663542365427595662553666675283269253243654693673447643473555346493376263496343 +3654443642356244424444432436435483123434234325543351434354232423434241244142442333344447234442132242 +7357554755656345654654466665766327765656773545575547346666353473567765755565486465643453687637767645 +3867446236343765665916363463367436446845685456774383262353663265735688344877213332768934452954633548 +7223817644277837332338637644236566637662556865422734535533763262624317752327735325777226847466463433 +4324322254342323222323321332243232234312232122232232422333245131233212331223222132327224233262425241 +2233233422143132323423232235323113223433333532333123326314241355223243333323333332334434232223324233 +4323325123234337353734333363331323323133463343346633321433333833523134365333734354322433333353322343 +2422511242222113222222222213442222216222134232422224322721322222215423354232742522224233223221231222 +1434439443432121243433426434514444621262442144434542693422344223592766144686444441442426513435324464 +2643249423111122355433422555223226222354536133421125426862263222152128244232222222232342324142324262 +2223213333442421133733244236424242233412332224212212322242331223324214312422424242222345542253243124 +4444331535354243342241424632373344442432354732572336223574355525523443141353235765453424344513163523 +2232422113412233542222336222634233325533243232343723234512263322245622392522222122431321542151675324 +2646435664294353444239647754563765233533492375655726563636562226233413666251853336443442534637862611 +1365334352534463233853244244447233464323134144342713444443415414122324363212422425154643224832422445 +4125222122322152222242522232122251852522482431222735272222223512534522252112631132316212224333292538 +3545442734445256355323452333416433324332432533434333434533354414443431355243533144414344324223546437 +5456255548434554453544545535464555555555554555555376565585654556566554625542554554454555445445555554 +2662232542368914455372434156445865225522442226633622264272226627355531265321662464167554482565528253 +2217512156222213322422323211332332123223322333121223221232322222222213212122123238121221342432222241 +6636635333433338465343436637326434534333332364332656241332317363644453333334534355355436245313335336 +1211214224331212431131443333232332334111114313334422421121413114412112442312412333341231313334156789 +2225225222463241226223222121222223241122222242212221121524165522261722252222236122212214245322224224 +1154466125124146613666336635343453136425552516663164361666653234524153566222246116212334416266342789 +2222223254222223133223612613626332212252322222223333533233212223235333221931221216212235223223221316 +3223232262222322521242422132412222224262312223222122142222251252322322912142552221332422222522212322 +1234211432332312441294263217246222235237432322143423442243238433123623333322222223532233543235313435 +7354433221442741131481643423166325788343241648362225637462185114568788838657474367713635528358612249 +3531222232322312272112233222266322342332413422342443322322222443232654443253422234421332122322422322 +2224223222331343323222213333232231226633131233122224324312222133222272223323312322223112233214423221 +3243432335353321454342445335222413245555253224321242332221331551245321213555421443534453233214316789 +2232752256254221832772222221728232252245121122228234118227746512242346222433252527123822251522122222 +3446392523453333485732453333342346453544231316443424345273242334256162662453534872351424324366334744 +4665622635345544266213636436352633555545666352776362366236262623465644635536513649523442556556465632 +3435332433115232433414131222121232333634232123142534323343334113323123123323332223243333234343334323 +5654436332363424253334544434452243344344334444424233526334433421445635444444241514474544546434636324 +1222222522322221222223122231222232232222222322111123222322122222426522222123422122252133121622524223 +4135552233812133622643253422346234842833524231463234213124114161413481644228152535356226539454242644 +2232332324222352233232525232324423224331226163322225552323233324222222134222312223322321344232355312 +1424432221322373332226551522322522533455644362363343521552143362545312445753247545463746423335714345 +1313233332322422112332332322313223223222232422532144512722343112223424122332323122233323332523322322 +2233452253222333233325243242325251145426443332333553333332252113223213533326334272513533523112423823 +6442482522332231675353545563223461551544538366355564223253433454584554134435355454883467233535835536 +4613533323333723223354433333333663233333223434332343334332433333262333132236333232342332413323336325 +3833424332234332323322334432382313333333333321332433344595321323333712881254124333324335644416524334 +5434455462444444454423432246462435322346352545674644732544445353254635545152511554444463546535425562 +3433632245332663254252332424412422342422323432322143225236254133434323121317853722462235337336733345 +3523312232124473334633534362233333383341335223445433723344434333353346534343533417466344242542425233 +6231462241423246233464342325333322226345234332642441424426234133334624225441543233234341314233341233 +2233343343222535221613433233332512328421222521323552332233322342223423633223923222216232422352354313 +4128672332311974453211324464334889141452325743645563941343137244753754125662423735287453264534733323 +7212147222213242227226515854462522221227225212225223242212722212223222222721227121255522535273216624 +1212322223244253114322312122222132221234422322322322333222322223322414223213312232232222232251312132 +3226212222222222212521212233323393323132221548331234212262262722326223332711432232813222742222322212 +4235542222432344241444452225824255626343344245255412241333149232132353314425222222234223452342453227 +2222212224222232521222421221223355224211244212242122222122424221122235222242215222221122222152232252 +4433444434742343644333443234677448754474244244344443375434434443446463442446436641474433744435443434 +5422124462663444224284258283764443923126326452728178274431162841666728223814228552632212686227222232 +2212222222222222222422221242212687446622222221624272156242322533123122221125226242114264252411342926 +3541363332635332355323325622434222623543232542132326521333233331253821231236322362262322235563292633 +2434475553444283442245335476223337733442336344442843363564344313322351883643714754422243437453275343 +7654777576755756375558565764786585867755363875845488545855287654535765799554559765756585949687752528 +1615443337342224224334845224685244242462342222446233561222342725423552345463212723252226264443422524 +2323232322221323323132222112232132222132222112223232222222322222212232322522131132223323121232332213 +4224551281331217224245225126722235442432128291221347557212222222322272272232242522721222223222522228 +4856292131361442232637322283463322224623233677523722323784872634337332626433283233352332718533343323 +1795555352585569635545552757414553643453454454458552254354555555449866538245455475348745344366843455 +7322122364432224726343222323122578562234913261214374252456247332224142225474324313342222212122115572 +4435421324254232213353549354524242245542422243422354412342144544324123233463353422523322425352743362 +4318362478377622383443443444387343543265733842584345444234574246434423344324533233446444344443337335 +3365332219431434443298426643419256426434366312633353531342232363334152242335645327299361412523723512 +2422322222111211314322223121222221224222322213222312221212223224232222612222322224222222223122222112 +7588639546866336644523574648832466515853265643334516132243665349464523228266655466533636258446431236 +2333223333231332312323261343423233312234633323332334343232323353355485254222233334423532333232429282 +3363262332321243222335113924323232222224522322251423323325623332322372212323235433242643322221324337 +6745337836638353733433733562255336525517164344433233346534398742364543724746433236476555346342823725 +3672552335413592234225342722792323262526214426314132426732224423228121355552542365422827325626552444 +2223215232222222312122212222222282124222221142222222544121112222225522285222233222212222222232753222 +3424494344555344514442344544535444454335434344353431254354443434434545454355853443334433534554334424 +2111757642313234235342477475452224444263272134222524222463444462124711612734223474343255232312343532 +5862435436745494268872328556652565359324374662398985838368642666553273865946854693592828656346654625 +6335553153352655234555664542323566356686143156536335325532443345433352465344235252561256353441231343 +7878467868599996638983717778997869758799678459796987977967588698895646769887947978656769769689777969 +4694555226324546443343653422226373433665544237365526562543232246437565314465666644264223514153553233 +2221312212122442224222327212352521123247231422212251253218323222222245346329414242122232222235222432 +2232132144212443442344335232352424335334212434222316242343243439221331242213223443433321521322414122 +5533235344464542525356546544356343435312534343533553535552352325445545425374444514136845321552324342 +3565451555545256676646566463634446453545662546555654466565346362879465546766875456536644553573636666 +5442754535533376438377167465643443342576361333628832424474244333423238414564835363237333642545234354 +3322222213123121224422422212123423242221332422252215252222222222222122151221222241531221132222423222 +2335324545375535328131143535435542533433255933475333533353548325344433524343544375835863435344234538 +5225425663253335134346342224346375366124562444365553625666323233212241335363144262222531334552456523 +4463843533355591592683435426554442124445642535454285539643533536363354994447353334455845559553322537 +2443399755289963644484646653374828873575337455297295863464453464786654346741846414734343645627446445 +3332222122425323322252223332322245242232242234224132222224225224222222242323211223332115252232322214 +6286828345337366778654755548856953666878254465467347768495547567264834546678443877468847287756766876 +5652122222225221226232215211721222124322222332322422122222211131232223332512223222221522222263412122 +2222247526253212242412226213243222252212551425224522225212236231242273122423222622221151131322764223 +3333334433335233233314313232338333333234333342333234423333333343455442323432337343333363143332354235 +3423322223423212322223332232411232422223222163352622423323231222323423584323222432312223222323362322 +3333223222313231232321223232122223222232332222122222231223224133332231241323232222223212233233236222 +8425742297277827443138421122242442393683479279267917345246137444342933233342324822722383748663964232 +2332121252211321343231551242323222225422222223332222322321253171233233424223225233223124314244333554 +5212422522532212222623522132253334233233352521322235323242222222322225322333422223243426122245352333 +1324412526722113732664132732322224432315424722262621552723623535124271612222422245428324413322225745 +6233229252332287292221372222322117212822822254432141122222126122322221124212282122243222386623121223 +4231334313213432325123423553231112122422221322235154431262234322122325132241212233615223132323333223 +2222252233922242214322125333232221643223624257251323223514934145143221622482523222223923142214222531 +2141213231342533333422322243424212345342232423271433223113362422322239732321173163336522242232123352 +1221332222122321221341251222213222212222222222131225212223522212122222222213221622122221212222232222 +2413352642524533236453532332125422432222446252422142131135426233542263512353164312442155342552422312 +4763763576552545457446472944544453445364456347465744343555425423645545556543654454434455355527356538 +5335625423424324535343473244451334353573556852452542241534455425545222615243142533495452532254334575 +3233313342332233222331353332332343323332223232333323363323313331323323343323333333333133143333333133 +3322323322322133221222213332223232432323332221321341323323222222132331222123232323224232232223423232 +1435334343435344434345542354243553415311424412534454232472433235413545532234334254332354438245537531 +2224221223222122222613142212232122222222221422222222122226212232221222352212222213332125322222322222 +3435437244334874486443447459434433862443934736834763333317446645844633443346435436444246447641464783 +6113523477237161223662214744474262113471466745545571375562327337471212271562344245571715354134765489 +6324232422232432112141225242322224244412322241222212224232332224223222212235253321222222322223223222 +5354246426452233144425625234523261353533443355554231185535445553545554545533423154534331335354255344 +2421285221225262359116136645242231253542422833542416243351522342652265322122232222232231422425452334 +2332527336313325122213211173152342253323236332532334134444217524221422355322123232622246113314444243 +4563567346559357662546445354725456757314637441766647657654714564645776549754575746674665776476436357 +5343224323222322223432452232536313121322433223223432331214232323235352313231232225122223553334362322 +3123334341233323233123233313663233232332233233332312421142571233223422634362122333333292116333222232 +2343444645235752242433223433255333243333335333925533535334334435563342315234253542543382443533444334 +1213421242322232421332222121231227123221222222222223222222322222212212234312222116232222222422212222 +2225222263314932322132423311223424122322224332232223433222222454322223346422222231223324223222323222 +2343343344443412212444443444833434444364444333444344334444349443444432434553322634473253342334445423 +3634333247256444467346255434745526257323566444424244244447413374673775224243253213336445353773732565 +5253346336436423565232263346838233336422334423661322432434433363534733334437543344344634434439434453 +2753445676625843555534776876555247667428557664243735457776754553427876646616644267454232337424744677 +5274646476634744354566541325666563662366554655655753542554663533633522164355655646436336685535522123 +3222222212222211211322212225122222252212233221262132222211112313222322122232122222232222222223162122 diff --git a/2025/03/kylepritchard.v b/2025/03/kylepritchard.v new file mode 100644 index 0000000..59ca237 --- /dev/null +++ b/2025/03/kylepritchard.v @@ -0,0 +1,71 @@ +module main + +import os +import strconv + +fn max_sequence(s string, k int) string { + to_remove := s.len - k + mut remove_left := to_remove + + mut stack := []u8{len: 0, cap: s.len} + + for i in 0 .. s.len { + c := s[i] + for stack.len > 0 && remove_left > 0 && stack[stack.len - 1] < c { + stack.delete_last() + remove_left-- + } + stack << c + } + + if remove_left > 0 { + stack = stack[..stack.len - remove_left].clone() + } + + if stack.len > k { + stack = stack[..k].clone() + } + + return stack.bytestr() +} + +fn main() { + content := os.read_file('kylepritchard.input') or { panic('Failed to read file: ${err}') } + lines := content.split_into_lines() + + // Part 1 + mut total_joltage := i64(0) + for line in lines { + if line.len == 0 { + continue + } + + seq := max_sequence(line, 2) + if seq.len == 0 { + continue + } + + num := strconv.parse_int(seq, 10, 64) or { 0 } + total_joltage += num + } + + println('Part 1: ${total_joltage}') + + // Part 2 + total_joltage = 0 + for line in lines { + if line.len == 0 { + continue + } + + seq := max_sequence(line, 12) + if seq.len == 0 { + continue + } + + num := strconv.parse_int(seq, 10, 64) or { 0 } + total_joltage += num + } + + println('Part 2: ${total_joltage}') +} From 9822709afd96dc39d0bfdc3609d0202ffb906ad6 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 11:59:39 +0000 Subject: [PATCH 04/15] Day 4 solutions --- 2025/04/kylepritchard.input | 138 +++++++++++++++++++++++++++++++ 2025/04/kylepritchard.v | 159 ++++++++++++++++++++++++++++++++++++ 2 files changed, 297 insertions(+) create mode 100644 2025/04/kylepritchard.input create mode 100644 2025/04/kylepritchard.v diff --git a/2025/04/kylepritchard.input b/2025/04/kylepritchard.input new file mode 100644 index 0000000..4010d84 --- /dev/null +++ b/2025/04/kylepritchard.input @@ -0,0 +1,138 @@ +@@@@@.@@@.@.@.@.@.@@@.@..@.@@@@.....@@.@.@@..@@@..@@@@@@@@..@@@.@.@..@..@.@..@@.@@@@@@@@.@@.@@.@@@@@@.@@@..@..@@@@@.@@@@@@@@@@@@@@@@.@@@.. +.@@@@.@..@@..@@@..@@..@....@@@.@@@@@@@@..@@@@@@@.@@...@.@@..@@@@..@..@...@.@@@..@..@@.@.@@..@..@.@@@.@.@@@.@@..@.@@@@@@@.@@.@@.@@@.@..@@@@ +@..@..@@..@@..@@@.@.@@.....@@@@@.@@..@@@@@.@@@@@@..@.@@.@@@@.@@...@@..@@@@@@@.@.@@@@.@.@@@@@@.@@@.@@@@.@..@@@.@@@@@@...@@..@@@..@.@@.@@@.. +@@@.@.@@@@@@@.@..@.@@@.@..@.@@..@@@@.@@@@@.@.@@@.@@@@.@@@.@@@@@..@@@@.@@..@..@@@@@@.@@.@@.@@..@.@@@@@@@@.@@@@.@..@.@@.@...@@@.@..@.@@@@@@@ +@@@@@@.@..@..@...@.....@.@@@@@.@@.@@@@@..@@.@@.@@.@.@@@.@@@@.@@@@.@@@@@@@.@@.@@.@..@@..@.@..@.@@.@@@@@@@@.@@.@@..@@.@@..@@@@@@@@@@@.@@@@.. +.@@@@@@...@@@.@@@@.@@@@...@.@@@..@@@@@@.@@@@..@.@.@@.@..@.@@@.@.@..@.@@.@@@@..@.@.@..@@@@@@@@@..@.@.@@@@@@.@.@@.@.@....@@@@..@.@@...@@@@@@ +.@@.@@@.@@.@@@.@....@@@@@@@@@@.....@..@..@.@.@@@@@..@@.@.@....@@.......@.@@@@..@@@@.@@.@@@@@@@.@..@.@@@.....@.@...@@@@.@@@..@.@@@.@@.@@@@. +@@@.@@.@.@@@@.@..@@.@.@@.@.@@.@@@.@...@@@@@@..@@.@.@...@.@@.@@......@@.@@@@.@.@@@@.@..@@@.@..@@@@@@.@..@..@.@.@@@@.@@@@@@@@.@@@@.@.@...@.@ +.@@@@@@.@.@@.@@@@@@.@.@..@..@@@@.@@.@.@..@@.@@..@.@..@@@..@@@.@.@@@.@@.@.@@@...@...@...@@@@@@@@@@@.@@.@@..@@@..@@.@@@.@@.@.@.@@@@@@@@.@..@ +@@.@@@@@.@@@...@@.@@..@..@.@@@@@@.@@@@@@@..@@@..@.@@@@@@@..@.@.@@@...@.@@@@@@@@@.@@.@@@@@@...@.@@..@@@.@.@@@@@.@.@@...@@@@@.@@..@@@.@@@... +.@..@@@@..@@.@.@@@@.@@.....@@@..@@@@.@@.@.@.@@@@@..@.@..@@.@@.@..@@@@@@.@@@@@..@.@@@@.@@@.@@@@.@@..@@....@@@@@@@@.@@.@@@@.@@...@@@@@@@.@@@ +@.@@...@@.@..@@@.@@@...@@@.....@@@@@@@..@@@@.@....@..@@@@.@....@@.@@..@.@@@@.@@..@@.@@..@@@@..@@@@@@@@@@@.@@..@..@@..@@.@@@@.@@.@.@...@..@ +.@@.@..@@.@@.@@.@@@@@@@@.@.@@@@.@@@.@@....@@@@.@@.@..@.@@@@@@@@..@@@@.@@@@.@.@@.@@..@.....@@@.@@@@.@@@@.@@@.@@..@@@@@@@@..@@@.@...@@@@.@@@ +@.@...@@@@@.@..@@...@@..@@@@@@..@@@@@@@.@@@@.@@..@@.@@.@@@@..@@.@@@@.@.@@@.@@.@@..@@@@@@@@@.@...@@.@.@.@@...@..@@@@.@@.@@@@@@@@.@...@@@.@@ +.@@..@@@.@@.@@.@.@..@@.@@.@@@.@@@...@.@@..@@@..@.@@@@@...@..@@@@@@.@.@.@.@@@@@.@.@@@@@@@@@@@@@..@@.@@@@@@@@@@...@@.@@.@@.@@@....@@@@.@@@.@ +@@.@..@@@@@@@@.@@.@@@...@.@..@.@@.@@@@.@@@@@@@.@@@@.@@@@.@@@@@@@.@.@@@@@.@@.@..@@..@....@@@@.@@@...@@@.@@.@....@.@@@.@@@.@..@@@@.@@@@.@.@. +@@@..@@@@.@@@@@@.@..@..@@@@@@@@@@@..@@@@.@..@@@@....@@.@@.@@@@@.@@@..@.@@.@..@..@..@@.@.@@@.@@@@@.@@@@@@@@@.@.@@..@@@...@..@.@@....@@...@. +@.@@@@.@@.@.....@@@@.@..@@@@..@@..@.@@@@@.@@.@@@.@...@.@........@@@@.@@@@@@.@.@@@...@@@@@@@@.@@...@@..@....@.@@..@.@@@@@...@..@@.@@@.@.@@@ +@@...@@@@@.@.@@@@@@@.@@@@@@.....@.@@@@@@..@@@@@@@@@@@@.@@@.@@@@@@@@@..@.@@.@@.@@@.@.@......@@@.@@@@..@..@@.@.@@@@@...@@.@@@@@@@@@@@.@@..@. +@@.@@@.@@@@@.@@@@@@.@.@@..@....@.@@@.@@@@@@@@@..@@@@.@@@@@..@..@@.@@@@.@..@@@.@@@@@@@@@.@@@.@.@@@.@@@@@@@..@@.@....@.@@@....@@@@@..@.@@@@@ +@@@@.@@@@@..@@@@......@@@....@@@@@.@..@@.@@@@.@@@.@@@@.@..@.@@@@.@@.@@@.@@@@@@@.@@.@@@@@.@@@.@..@@@@..@@@...@@@@@..@.@...@@@.@.@@@@.@@.@@@ +@@.@@@.@.@.@@.@@..@.@...@@@.@...@...@@@.....@@@@.@@@@.@@@@@.@..@@@.@.@@@.@@@.@....@@@@@.@@@@@.@@@.@..@@@@@@@.@...@@@@@@@@.@@@@@@@.@.@@@@.@ +.@..@@.@.@@.@@@@@@@..@.@@@@@.@@@@@@@@@@@.@.@.@@@@@@@@@@@.@@.@@@..@..@@@..@@@@@@@.@@@.@@.@@..@..@@@@.@.@@@@@@.@.@.....@.@@@@..@@@.@@@.@@@@@ +@.@@@@.@.@@...@@@@.@@.@@@@@@@.@@@..@@.@@@@@.@..@@@@@@@@@.@.@@@..@.@@@@.@@@@@@@@@..@@.@@@@.@.@@.@@.@.@@@@@..@@@..@@@.....@..@@@.@......@@@. +@@@@@@..@@..@..@..@..@.@...@@.@@@@@.@@..@@.@@@@@.@..@@@.@.@.@.@@@.@@@@..@@.@@@@@@.@.@@..@@@@..@@@@@@.@.@.@.@@.@.@@@.@@.@@.@@@@..@.@@@@@@.@ +@@.@@..@@.@..@@...@@@@@@@.@@@@@@....@@@@.@@@@@..@@@...@@@@....@.@.@@@@@....@@@@@@@.@@@@@...@@.@@..@@@.@@@@....@.@@@@..@.@....@@@@..@@@@.@. +@.@.@@@@.@@@@@.@.@@@@@@@.@@@@@..@@@..@@@.@@@@@@..@.@@@@@@@@.@@.@@.@@@@@@@@@.@.@@.@@.@.@@..@@.@@@@@@@@@..@@@@..@.@@..@.@.@@@..@...@.@@@@.@. +@....@..@.@..@@@@@@.@..@.@@@.@.@@.@@@.@@.@@@@..@.@@@@@@....@...@@@@@..@.@@@@@.@.@.@.@@@..@.@..@@@.@@@.@@@.@@..@.@@@@@.@@@@@@@.@@@@.@..@@@@ +@.@@.@@.@@@@...@@@@@@@.@@.@@@@@....@@@..@@.@@@.@@.@..@.@.@..@@@.@.@.@...@@@@@.....@.@@..@@@@@..@@.@@.@@@@..@@@@.@@.@@@.@.@@@.@@@.@@@@@@@@. +@@@...@..@@@@..@@.@.@@..@.@@...@@@@@@@.@@.@@@.@@.@..@.@@..@@@@@@@@@@@.@@@@.@@.@@@@@@@.@..@@@.@@@@..@@...@..@.@@@.@@@@.@@@@@@@@.@....@@.@@@ +@@.@.@.@@@@.@.@@@.@.@..@@@.@.@@@.@.@@.@..@@@@@@@.@@.@@.@@@.....@@@@@@@@@@@@@.@.@..@.@@@@.@.@.@@@@@@@..@@@@.@@.@@.@@.@.@.@@@@..@.@....@@@@. +..@.@@@@@.@@.@.@@@@@@@@@@@@@@@@.@@@@@.@@@.@@@@....@..@@..@@@@@@@@@@@@@.@@@.....@.@@.@@@@..@@@@@.@@..@..@@.@@.@..@..@.@@@@@@@@.@..@@@..@@@@ +@..@@@@@@.@@@@@@@@@.@..@.@.@..@@...@@@.@@@.@@@@.@.@@@@@@@@.@.@@..@@@.@@.@@@@@.@.@@@.@.@@.@@@@@.@@.@@@@@@@.@@@@....@@@...@.@.@..@...@@@@@@@ +.@@@@...@.@@.@.@@@@@@@.@@.@@@.@@@@@@@.@@@@....@@..@.@@@.@@@@@@.@@.@@@@@@@..@.@@.@@@...@.@@.@.@@.@@@@.@@@@..@@.@@@@@.@@@@.@.@@@..@@@@@.@@.@ +@.@@@@......@..@@@@.@@..@@.@@...@.@.@@@@@...@@@@@.@@@@@@...@@.@@.@@@@.@@.@@..@....@.@@@.@@.@.@@.@@@@@@.@.@@@@@@@@.@@.@@@.@.@@@.@@..@@.@@@@ +@.@@@@@@@@..@@....@@@@@@.@@@.@@.@@@@@@...@@@.@.@@@@.@.@@@@@@@@.@.@@@@@@@@@..@@@.@@@.@@.@.@@@@@@@@@...@@......@@@@@@...@@.@@@@.@.@@..@@.@.. +.@@@.@@..@@@.@@@@@@..@.@@.@@@@..@@.@.@@.@.@@.@.@@@@.@.@.@@@@@..@.@.@@@.@.@@@@.@@.@...@@.@@@@@@@@@@@.@.@@@@..@@@@@@@@@.@@@@@@@....@@@@..@.@ +.@@.@@@@.@@@@@@@.@.@@@..@@@@@@....@@@@@@.@.@@@@.@.@@@@..@@@..@..@@.@@.@@@.....@@@@@.@@@..@@.@@@@.@@.@@.@@.@@.@.@@@@@@.@@@@@@@@@@@@@@@..@.@ +.@..@@@@......@.@.@.@@@@@.@@@@@...@..@.@..@@..@@@@.@..@@..@.@..@@@.....@@.@.@@.@.@.@@....@..@.@.@@..@@@@@@.@.@.@@@.@@.@@@@.@.@@..@@@@@@@@@ +@.@@@@..@@@@@.@@@@@@.@@@@@@...@@@@.@@@@@..@.@@@...@.@.@@@@@@.@..@@.@@@@@.@@.@....@@@.@@@.@.@.@@@@..@@.@@@@@@@.@@@@@@@....@@@@@@@@@@@...@@. +@.@@@@@.@.@@@@.@@@.@@..@@@.@@..@..@@..@@..@@@@@@@.@.@@@....@@.@.@@.@@@@@.@.@.@@.@@@@...@.@@@@.@@.@@@.@.@@.@@@@@.@@.@..@.@..@..@..@@..@@@@. +.@@.@@@@@@@@@@.@@@.@.@@@.@@.@.@@@@.@@@@.@@@.@@@@@.@@@@.@@...@@@@@.@@@...@@@@@@@@@.@@@@@...@@.@@@.@@@@@@.@@@.@.@.@@@@.....@.@@@.@@.@.....@@ +.@@.@@.@@@@@@...@...@.@@.@@@@.@@@...@@.@@@@.@.@.@..@@.@.@@.@@.@@@@.@@@.@.@@@.@@@@@@@@.@@@@@.@@@@@@@@.@@@.@.@@...@....@...@.@@.@..@@@.@.... +@.@.@.@@.@@@.@@@@@.@.@@....@@@@@@@@@.@@@@..@.@@..@@...@@.@@@.@@@.@@@@@@@@.@..@@.@@..@.@..@.@.@.@@.@@.@@@..@@@@....@@@@.@@@@@@.@@@@@...@.@@ +@@@.@.@@@@.@.@@.@.@@.@@...@@....@@@@@@@@.@@@.@@@.@.@@@.@.@@@@@@@.@@.@.@@...@@@@.@@@@@@@@.@@@@..@@@.@@@@@......@@...@..@..@..@.@@@@@..@@..@ +@@.@..@@@@@@.@@@@@.@@@@@.@.@@@@@@..@.@.@@@@.@@@@@@@@@@@@@.@.@@.@@@@..@@.@....@.@@@@@@.@@@@@@.@...@@.@.@@.@@..@@@..@@@....@@@@@.@...@..@.@@ +@..@@.@@@..@.@..@.@.@.@@@.@..@@@..@@..@..@...@.@@@.@@@.@@@@.@@.@..@@@@@@@@..@..@.@@.@@.@@..@@....@...@.@@..@@@@@@..@@@@.....@@@@.@@@@@@.@. +@@@@@.@@@.@@@@.@@@..@@@@@@@@@@@@@.@@@@@@.@.@@.@.@.@@@@@.@.@@@.@@.@...@@..@.@@.@.@...@@..@@.@@@@@@.@@.@@@...@@@..@@@.@@.@@@.@..@@.@.@.@.@@@ +@.@@@..@@.@@.@@@@@....@@@@.@@.@....@@.@@@@..@...@@@@.@@.@@@@.@@@@@...@@@.@@@@@@@@@..@@..@@@.@@@@@..@..@@@@@..@@@@@@@@.@..@...@@@@.@@@..... +...@@...@@.@.@@.@@@.@@@@@@@@.@@..@@@.@..@..@@@.@.@@.@@.@@.@..@@@@@.@@@@@@@@@@@@@@@@@.@.@@@..@.@.@...@.@@@..@.@..@@@@..@..@..@.@@@@.@@.@@.@ +@..@@.@@@@..@@@@@@@@@@@@@@@@.@..@@@.@.@@@@.@.@@@..@...@@@..@@.@@..@@@.@@@@..@.@@@@.@@.@@.@.@.@@.@@@@@@..@@..@@.@.@.@..@@...@@@@..@@@@@...@ +@....@@@@.@@@@@@@@@@@@@.@.@@@@@@..@.@@@@@@.@@.@@@.@@@@.@.@@@.@@@@@@@@.@.@@@...@@@@@@.@@@.@@@@@@@@@@...@...@.@@@@@@@@.@.@@@..@.@@.@@@@.@@.@ +.@@......@.@@.@.@@.@.@.@.@...@@..@@@@.@.@.@..@@@@@.@..@@.@.@.@@@@@.@.@@..@.@@@@@.@..@@@@@@@@@@@.@@@.@@@@@.@@.@.@@.@@@@@@....@@@@@@...@@@@. +...@@@@.@.@@@@@@@@..@@..@@@@@..@.@@@.@..@@@.@@@.@@@@@@..@.@@@@...@.@@..@.....@@@@..@@@.@.@@@@.@@@@.@@..@@..@@@@@@@@@@@.@@@@...@@@.@@@@@@@@ +@@@@..@..@..@@@@.@...@@@.@@@.@@@@.@@@@.@@@.@@@..@.@.@..@@@@@...@...@.@@@@.@..@@@@@@@.@@.@..@@@.@@.@@.@@@.@@.@@@@@@.@@@@..@.@...@@@..@@.@@@ +..@.@@@@..@@.@@....@.@.@@@@.@.@.@@@@@@@...@..@@.@..@.@@.@@@@@@...@@..@@@@@@@@..@.@.@@@@@..@.@@@@......@...@@@@..@@@@.@.@@@@@@.@@@.@..@@@.@ +@@.@.@.....@@..@@@@...@@@.@@@@@.@@@@@@@@.@@.@..@.@....@@@@@.@...@.@..@@@@@@@.@@..@...@..@.@.@@@.....@@@@@.@.@.@.@@@.@@.@.@.@@@@@.@.@.@@..@ +@...@@@@..@@..@@@@@@@.@@@.@@@.@.@@@@@@@@@@@.@.@@@.@@@@.@@@@@@@@@.@@@@@@@@@.@..@.@@@@@@@..@.@@@@@..@@@@@@..@@@..@@@@@@.@@@@@@@@.@@.@@.@@.@@ +@@..@.@@@...@@@@.@@.@@@@.@@@..@@.@@...@@..@@..@@@@.@@@.@@..@@..@@@.@..@@@...@@.@@@..@@@..@.@.@@@@@@@@@@@@@..@@@@@@..@..@@.@@@@.@@@@@@.@.@@ +@..@..@@.@@.@@....@.@.@@@@@@@@@@@@@@@.@..@@..@@.@.@@..@@@.@@.@.@@.@@@@@@@@@..@@.@@.@@.@.@.@@..@@@@@@@@@@@..@.@@@@@@..@..@@@@@@.@@@.@@@.@@@ +@@@@.@@@@@@.@@@@@.@@..@.@@..@@@@@..@@..@@@.@@.@.@@@@..@@@@@@.@@@....@..@.@...@@@@@@@@@..@@.@@..@.@@@@@.@.@@.@@@.@.@.@.@@@@@@..@@.@@@.@@@@@ +@@@@.@@..@..@.@@@@@...@@..@.@@.@@@@.@@@@.@@@.@....@@@...@.@@.@@.@..@@@@@....@@.@...@@.@.@@.@..@..@@@...@.@@.@@.@@.@.@.@@@.@@....@@@.@.@.@@ +@.@@.@@.@@@@@@@@.@@@@@@@@@@.@@.@.@@@@@@.@.@..@.@@..@@@@...@@..@@@...@..@@..@@@.@@.@@@@.@@@.@@@@@@@@@.@@@@@@@..@.@.@@..@...@@@@@.@@@.@@@..@ +@.@@@@@@@.@....@@.@.@@.@@@@.@@....@.@...@@@.@@@@.@@......@.@@.@@@.@@@@@..@.@@.@@@.@@.@.@@.@@@..@@.@.@@@@.@@.@..@@.@...@@.@@@@.@@..@.@@.@@@ +..@@@@.@..@@@......@@.@@@@@@@@@@@@.@@@.@@@.@@.@.@@@.@@....@.@@.@@@@..@..@@..@@@@@@@@.@.@.@.@@@..@.@.@@@@@@@@@@@.@@@@@..@.@.@@.@@....@@.@@@ +.@@@@@....@..@@.@@@....@@..@.@@@.@.@@@@@@.@@@.@@...@...@.@@@@@@.@@.@...@@@@@@@@....@@@@@...@@..@....@..@...@@@..@..@@.@@@.@@@@@@@.@@@@@.@@ +@@..@@@.@.@@@.@.@@.@@@@@...@@@@@@@@.@@.@..@.@..@.@.@..@..@@@.@@@.@.@.@@@.@.@.@..@.@@@.@@@@.@@@.@@@@..@@@@@@@@@@@@@....@.@@@@.@@..@@@.@@@.. +@.@.@.@@.@@@@@@.@.@@@@@@.@@.@@@@@@@@.@@..@..@@@@..@..@@@.@@.@@@.@@.@.@@@@@.@@@@.@.@@.@@.@.@.@.@@..@@@.@@.@.@..@..@@.@@@@.@@@.@..@@.@@.@@@@ +@..@...@@@.@@@.@.@@@@.@@@.@.@@.@.@@@.@.@@..@@.@@@@..@@@@@.@..@.@@@.@.@@@...@@@..@@.@@@@@@@@..@.@..@.@.@@@..@@.@@@.@.@@@.@@...@@.@.@.@@@@@@ +@@@@..@@@@@..@@@@@@.....@@@...@.@@@@@...@.@@@@@.@@@..@@..@@@@@.@.@.@.@.@@@@.@@.@@@.@@.@@@..@.@@@.@@.@@@...@@@.@@@@@@.@@@@@@@@@@..@@....@.@ +@@@@.@@.@@@.@...@.@.@..@@@@@@@@@@.@@..@..@@@@@@..@@@@@@@@@.@.@@.@@@@@.@@@.@@.@@@@@.@..@@@@@...@..@@@@..@...@..@@@@@.@@...@@@.@@@@.@@.@@.@@ +.@..@.@@.@@@@@@@.@@@@@@..@@@@@@@@@..@.....@.@@@@@@@@@@@@@@.@..@....@.@@@@@@@@@@.@@@.@...@.@@.@...@..@.@@....@@@.@..@.@@@@..@@@@.@.@.@...@@ +@@@@...@@@..@@..@@@@.@@@@@@@@@..@@.@...@@@@.@.@@@@@..@@@.@..@@.@@@..@@..@@.@@@.@..@@@@@.@.@@..@@..@@@@@@@@@@@@.@@.@@@..@@@@@@.@.@@.@@@.@@@ +.@@@...@..@@@@@@.@@@..@@.@@.@@@@.@@@@@@@@@@@@@@@@.@..@@@@.@@..@.@...@..@@@@@@@@@.@@@@@.@@@.@.@@.@@@@@@@@@@.@.@@.@@@...@@@.@@@.@@.@@.@@@@@@ +@@@.@..@.@.@@@.@.@.@@@@@..@@@@.@...@.@.@.@..@..@@@...@@@@.@.@@@@@@@@...@.@.@@@@@@.@..@@.@@@..@@.@@.@@...@@@@@@@@@@@@.@@@.@.@@@@@@@@@@@@@@. +@...@..@..@.@@.@..@@...@@@@@.@@@@@@.@@@.@@@.@@.@@@@.@@@@.@..@@@@@@.@@.@@@@@..@@@..@.@.@.@@@..@@@@@.@@.@..@.@@@.@.@@@.....@@@@.@@@.@@@@@@.@ +@@.@.@@@@@@.@.@.@.@.@@..@.@@@..@@@@@@@.@@@@@@@@@.@..@@.@@.@@@.@@@@...@@@@..@@..@@.@@@@@@@@@@..@@@@@...@.@@@@.@@.@@@.@.@@@@.@@....@.@@.@@@. +@@@@.@@@@@@@@@@@.@..@@..@@@.@@@@.@.@@..@@.@.@@@.@.@.@@@..@@@@..@.@@@..@@.@.@@@@@.@.@@@@@@@@@.@.@@.@...@....@@.@@.@.@@...@@@.@@@@.@@.@.@.@. +@...@.@@@..@@@@@.@@@@...@..@@..@.@@@@@.@@@@.@@@.@.@@@.@@....@@@@.@@..@.@@@.@@@.@@@..@.@@@@.@@@.@@@@@@.@.@@@@@@@@.@@..@@@@@@@@@@@.@@.@@.@@@ +.@@.@..@@@@@@@..@..@@...@.@@@@.@@@@@.@.@@@@@.@.@@.@@.@@.@@@.@@@@@@@@@.@.@.@@@@@@...@@@.@@@..@.@...@.@.@@@@@@@@@@.@.@@@@.@@.@..@@@@@@@.@@@@ +@@@.@@..@..@@.@.@.@@@.@@.@@@..@@.@@.@@@.@@.@@.@.@@@@..@@@@@@@@@@@.@..@@@.@.@@@@@@.@@@@@@@@@@..@.@@@@@@@.@@@@.@@@@.@.@@@@@@@@@@@..@@@@@@@@. +@..@.@@@@...@.@..@@..@.@.@.@@@..@@@..@@@.@@@@@.@@@@@.@..@@..@@.@@@@..@....@@@@@@.@@.@@.@..@@.@.@@...@...@@@...@.@@@.@@@@@@.@@@@@..@@...@.@ +@@@@@@.@@@@@@@.@.@@@@....@@.@.@@@.@.....@@@.@..@..@@.@.@...@.@@@..@..@@@@...@@...@@@..@..@@.@@@@@.@.@@..@@..@@@@@.@@@@@@@.@@@@@@@.@..@.@@. +@@.@.@.@@@....@@@........@.@@..@....@@.@@..@.@@@@..@@@..@@..@@..@.@@@..@.@@@@@@@.@@@..@..@@@@@@@@.@@@.@@@@.@@@@.@@.@@..@@@@.@@..@.@...@..@ +@@.@@@.@....@@@@@@..@.@@.@@@@.@@@@@@@@@@@@@@@@@@.@@@@.@.@.@@@@.@@@...@@@@@@.@@@@@@@.@@@@...@...@@@@@@@..@@.@.@@@@@@.@.@..@@.@@@@@...@..@@. +@@@@@.@@@@@@@@@@@@@.@@@@@@@.@@@..@..@@.....@@@@@@@@..@@@@@.@@@.@.@@@..@@.@@@@@@.@@@@@@@@.@..@@@...@@.@@@@.@@.@@@@.@@@@@...@@@@@@@@@@..@..@ +@.@.@@.@@.@..@@@...@@@.@..@..@@@..@@@..@.....@.@@@@@@@@@.@@.@@@.@@.@.@..@.@...@.@@@@..@@..@@@.@.@@@@.@@.@.@.@@@.@..@.@@@@.@@.....@@.@@@.@. +@@@..@..@..@.@@.@@@@@@@.@@@@@@@.@@.@@@.@@.@@@@@@@@@@.@.@@@.@@@..@@..@@@@@@@@.@@@@@@@.@@@@@..@@@@@.@@.@..@.@...@.@@@..@@@..@@.........@@@@@ +...@@@@..@@@@.@@..@.@.@....@@@@@.@@@.@.@.@.@@@..@@@@@@@.@.@@@...@.@@.@..@@@@.@.@.@.@@@@@..@@@@@@..@...@@@@@@@@@@@.@@@@.@@..@.@@..@@..@@.@@ +@@.@@@.@.@@@.@.@@@@@.@..@@@@@@@@@@.@.@.@@@@.@.@@@.@@@@@@@.@@.@@.@@..@@@@@.@.@@@@@.@..@@@@@.@..@@.@..@..@..@..@@@@...@@@@.@.@..@..@@@@.@@.@ +@@@@@.@@.@@@.@@.@@...@.@@@@...@@@.@@@...@@.@@@@@...@@@@@@@@@@.@..@@.@@@.@@.@.@@@.@...@@@.@@..@@@@.@@.@.....@@@..@@@@@@@@@@.@@@@.@@@.@.@.@. +@.@.@.@.@.@..@@@..@.@@.@@.@@.@@..@.@@@.@.@@@@@@@...@@@.@@@@.@.@@.@.@.@.@.@.@@@@..@.@@@@@@@.@@@@.@@..@.@@..@@..@@...@@@.@@@@.@@.@@@..@.@.@. +@@@@@.@@..@.@..@@.@@.@@...@.....@@@@.@@.@@.@@@@@@@@.@.@.@@@.@@@@..@@@@@@@..@@@@.@@..@@@@@@..@@.@@@@@.@.@@.@.@@@@@@....@@....@@.@@@@@@@@.@@ +.@@@@@.@@.@.@@@@@..@..@.@@..@@@@@@@@@@@@.@..@@@.@.@@@@@@@@.@@..@.@@.@.@@@@@@@@@.@@.@@@@@@..@.@@@@@.@@.@@.@..@@..@@@.@.@...@...@@@@..@@@.@@ +@@@@@.@.@..@...@@@.@@.@@@@@.@...@@@.@@@.@.@...@@@.@@...@@@@.@....@@@@@@@.@..@@@...@.@@..@@@@@.@@@..@@.@@..@.@@..@.@.@@.@.@@@@@@.@.@@@@..@@ +@...@@@..@.@@@@@@...@@.@.@@@.@@.@..@@@@.@@.@@@...@..@@@@..@.@..@@@@@@.@.@@@..@.@@.@@@@@@@.@...@@.@..@@@@.@...@.@@@.@@....@@@@..@.@.@@@.@@. +.@..@@@@....@@@@@@@@.@@.@@.@@..@@@@...@@..@@@@@.@@@@..@.@.@@@@@@.@@@@.@.@@.@@@@@@@@@@..@..@....@@...@@.@..@...@@....@@@@..@@@@@.@@@..@@..@ +..@@.@.@@.@..@.@@...@@...@@@@.@@@@.@@@@@@@@.@@.@@@..@@@@@@@@@@@.@@@..@.@@.@@.@@.@..@@..@.@@.@.@@.@@.@.@@@.@.@@@@.@@@@.@.@@@@@..@@.@.@@@@.@ +@@....@@@@..@@...@@@..@.@@.@@@.@@.@@@@@@@@@.@@@@@@@@@@.@@@@@....@@.@@@@..@.@@@@.@..@@@.@@@.@@@@@....@@@@@..@.@@.@...@.@@.@@@@...@..@@..@@@ +.@@@@@@..@@.@...@@@@@@@@.@@...@@@@@.@@@@@@..@..@@@@.@.@@@@@@@@@.@@.@@.@@@.@..@..@..@@@@@@.@.@@@@.@.@@@.@@.@..@@@@.@@@@@.@.@.@@..@@@@@..@@. +.@@@@@@@@@@@@.@@@.@@@@..@@@@@@@..@@@.@.@.....@@.@.@..@.@@@@@.@@.@@.@@@@@@@@.@@@@@.@.@@@@@@..@@.@@@@.@@.@@..@@.@@@@.@@.@@@@.@@.@@@@@.@@..@. +@.@@@@..@...@.@@@@@@@@@@@.@@@@.@@@@..@.@...@@@@@@@.@@@..@@@.@@@@@@....@.....@@@@..@@@@@.@@..@@@@@@@@.@..@...@.@.@.@@@@..@@@.@.@..@@...@@@@ +@@@.@@@.@.@@.@.@.@@@@@@@.@@@.@.@@@.@@@.@@...@@@@@@@@@.@@@.@@@@@.@@@@@@@@@@.@@@@@.@@@.@@.@@.@@@@.@@@....@@@@@.@.@@@@@.@@@..@@..@@@@.@@@@..@ +@.@..@@@.@@@@@...@.@.@..@@@@.@@@@.@@.@@.@@.@@.@@@.@.@@@.@@.@@.@@@@..@.@@@@@.@@@@@..@.@@@@.@.@.@.@@@@.@@@....@.@.@@..@.@.@@@.@@@@..@@@.@@.@ +@@@@@@@..@@@@.@@@@@@@..@.@@@@.@.@@@.@@@@.@..@@@@@@.@@..@@@@@@...@@@@..@@@.@@@@.@@.@@.@.@@@@.@@.@@.@@@@@@.@..@@@.@@@..@@@@@.@@@@@.@@@@@.@.@ +....@@.@@..@@.@@..@..@@@.@@.@@@.@.@@@.@@.@.@.@@.@@@@.@@@@@@@@@@@@.@..@.@@@@.@@@@@.@..@.@@..@.@@....@@@@@@@@@@..@@@@@@..@@@@.@.@@@@..@@@@@@ +..@@@@.@@@@@@@@@..@@.@.@@.@@@@......@.@@.@@@@@@.@@@..@.@@.@..@@@@@@@@@@@@.@@@.@....@@@.@@@.@@.@@@@.@@@@..@.@.@.@@@@.@@..@@@@.@@..@@@@@@..@ +@.@@@@@.@@@@@@.@@...@@.@@@@@@@.@.@@.@@@@@@@.@@@@@@@@@@@..@@@.@@.@@@@...@@@@.@@.@....@..@@@@@@@.@@@@@@@@.@@@.@@@@@@..@@@..@@@@.@..@@.@@@@@@ +.....@@@.@@@@@@@@@..@@@@.@@@.@@@@@@@@@@@@...@@@@.@@@.@@@.@@.@.@@@.@@.@@@@@.@.@@@@.@..@@..@..@@@....@@@@.@@@@...@.@...@@.@@@.@@.@..@@@..@@. +@@.@.@..@@.@@.@.@@...@@@..@@@...@.@@.@@@@@..@@.@@@@.@..@.@@@@@@..@@@@@@@@@..@@@@.@@@@@@@@@@@.@@@@.@@@@@.@.@@@.@@@@..@@.@@@@@@@.@.@@@@@.@@@ +@@@@.@.@.@.@@@@.@@@@@@@.@@@@.@.@@.@.@@@@.@..@@..@@@...@@@@@..@@@.@@@@@@.@@.@.@@.@..@..@@@.@.@@.@@@.@@@@....@@@@@@@@.@@.@@@@@@@@.@@...@@..@ +.@@..@.@@.@..@@@@@@@@..@@@.@@@@@@@@@..@@@.@@..@@@...@.@...@.@@@@@@@@@..@.@.@.@@@@@@....@@@.@@@@...@@@..@@@@@...@@@.@@.@@@@@@@@@.@...@@@@.@ +@.@.@@@@.@@.@@.@@@@@@.@@@.@.@@..@.@@.@@@@@@@@@@..@@@@.@@@@...@@.@.@@.@.....@@@..@@..@.@@..@@@.@..@@@@.@.@....@.@@@.@@@@.@..@@@@@.@@@@.@.@@ +.@...@@@@@..@..@@.@@@@@.@@@@@@.@..@.@@.@.@.@@@@@..@@@.@@@.@..@......@@.@@@.@@@@@...@..@.@.@@..@..@@@@.@@@@@@.@@@.@@.@@@@@@@@.@..@@@@.@.@.@ +.@.......@.@.@@@.@@.@..@.@.@@@.@.@@@@.@...@.@.@....@@....@.@@@@@..@@.@@..@@@@@@.@@.@..@@.@@@.@@..@@@.@@...@@@@@@@@@@.@@@@@@.@@@@@@.@...@@@ +@..@@.@@@@@@@@@@.@@@...@.@@@@@@..@@@....@..@..@@....@.@@@..@@....@@@@@@@@.@@....@@.@@@@@.@@..@@@@@......@@...@@@@@@@@.@@@@.@@@@@@.@@.@@.@@ +.@..@.@.@@@.@.@@@@@@@@.@@@@@@@@...@@@@@@....@@@@..@@@@.@@.@.@@.@@@.@@@@@@.@@.@@@@@@.@@..@@@.@.@@.@@@@@.@@@.@......@@@@.@@.@@@@@@.@@@@@@@@@ +...@@@@.@.@...@@.@.@.....@@@@.@.....@@.@@@..@.@@@@@..@@.@@...@..@@.@@.@.@@..@@@@@.@@.@.@.@@@@@@.@@@@.@...@.@@@@.@@@@..@.@.@@@.@@@@@@@.@.@@ +@.@.@..@@.@@.@@@@@..@.@..@.@@@.@@...@@..@@@@@.@@@@@@....@..@..@@.@..@@@@@..@@@.@@.@.@.@@@.@@@@@...@@@.@@..@@@@@..@@.@@@.@@.@@.@...@.@@@.@@ +@@....@.@.@.@@@.@@@@@@@@@.@@@.@.@.@@.@@.@..@@@@.@.@.@@..@@@@.@@@@..@..@@@.@@.@...@@@@@@@@@@..@..@..@.@@@@@..@@.@@@.@.@@....@@@@@@@..@@@@@. +@@@..@@@@@@.@@@@@@@..@..@.@@@.@..@@@.@@....@@@@.@.@.@@@.@..@.@.@@@@@@@@@.@@.@...@@@@@@@..@@@@..@@..@@...@@.@..@...@.@.@@.@@.@@@@.@@.@.@... +@@.@.@@@@...@@..@@.@@@@@..@@..@@@.@@@@..@@@@..@@@..@@@..@@@@@@@@@.@@.@@@..@..@@..@@@@.@.@@@@@..@@@@@@....@@@@@@@@@@@..@@..@@@.@@@@@..@@@@. +@@..@@@@@.@@.@@.@@.@@@@@@@.@.@.@@.@@@.@@@.@@@@@.@.@@@@.@@@@@@...@@@@@@@@@@.@@....@@@@..@.@.@@@@@@...@@.@@@.@@@.@..@@@@..@.@.@@.@..@.@@@.@@ +....@@@@@@@@@@@@.@@@.@@@@....@@@@@@.@...@@.@.@@@..@@@@..@@@.@..@@@.@.@@@@@@.@...@@@@.@@.@@@@.@@.@@@.@.@.@.@@@@.@@.@.@@@.@@@.@@..@@@.@..@@. +@@@@@@@..@@.@@@@@@.@.@.@@..@@@@@@@.@..@.@@@.@@@..@@.....@@@@..@.@@@@@@.@@@@..@@..@.@@@..@@.@@@.@@@@@@@@@@..@@.@@..@@.@.@@@@@.@@@.@@.@.@.@. +..@@@...@@@@....@@@.@@@@.@.@@@@.@@..@@@.@.@.@.@@...@@@@@..@@@.@@...@@@.@@@@.@.@@@@@@.@@@@@.@@@.@@.@@@@@@.@@....@@@@....@@.@..@@.@@@..@@..@ +@...@@@@@@@@@@@.@@@..@@.@.....@@@@@...@@@.@@@...@@@@@..@...@@.@.@....@@.@@@@@@@@.@..@@@@@.@@@@@@.@@@@@@.@@@@@@@..@..@@...@@@@@@@@..@..@@.@ +@@@@@...@@@@..@@@.@...@.@@@.@.@@@.@@@@@@@@@@@@.@@.@@@@@@@@@@.@@@.@@@.@@@@.@.@@@.@@@@.@.@@@....@@@@@..@..@@@@@@.@..@@@.@@@...@@.@@.@..@..@@ +@@@@@@.@@@@@@@@@@@@@.@@@@@.@.@@@@@@@@.@@.@@.@..@@@@.@@@@@.@@.@@.@.@@@@@..@@.......@@@..@@..@@@@.@@@.@@..@.@@..@.@.@@@@.@@.@@.@@@@@.@@@@@.@ +@.@..@.@@....@@@....@@.@@.@@@.@.@@..@.@@@@@@@.@@.@@@..@@@@@@@@..@@@.@@@.@@@.@@@@@.@@@..@@@.@@@@.@@.@@@@.@@@.@@@@@@@...@@...@.@.@@@..@@@.@@ +.@@@@@@@@@@@.@@@..@@....@@.@@@@..@@@@@@.@@.@@@@.@@.@@.@@@..@@.@.@@@.@@@..@@.@@@@.@.@@@.@...@@..@@@.@@@.@@@@@@@@.@@....@@@@@@@@@@@.@..@.@@@ +@@@..@@.@@@@.@@.@.@@@..@@..@.@.@@@@@..@@@@.@@@@@..@@@@@@@.@@.@@@..@@..@@@@@@@@@@@.@@@.@....@@@@@@...@@.@@......@@@..@@@@.@@..@.@@.@...@@@. +@.@@@..@@.@..@..@@@.@.@.@@@@@@@@.@@@@.@@..@@.@@@@...@@.@@@.@...@@@@.@@.@@@.@.@@@@@..@.@@.@.@@@.@.@@@@@.@@..@.@.@@@.@@..@..@.@@@@...@.@@@.@ +@..@....@@@.@.@@@@@@@@@@@@@@.@...@@.@@.......@@@@@@@..@@.@@@@.@....@@.@@.@@.@@@..@@@.@@@@@@.@@.@...@@@@@..@.@@.@@@.@@..@@.@.@@..@@@@.....@ +..@@@@@.@@@@@.@.@@..@@@@.@.@@..@.@@.@..@..@@.@@.@@..@@@..@@@@@.@@@....@@.@..@.@@.@@.@@..@@@@...@.@@@@@@@@@@.....@...@@.@@.@@@@@..@@.@@@.@@ +@..@@@..@@@..@@.@.....@...@@@@@.@@@@.@.@..@.@.@.@.@@@..@@@.@@@.@@@.@@@@.@@@@@..@..@@@@.@@..@@.@@@..@@@@@.@..@..@.@@..@@@.@@@@@.@@@@.@@@..@ +@..@@@.@.@@@.@@@.@@@@@.@@@.@@@@.......@.@...@..@@@.@..@@..@@..@@.@@@@@....@@.@@@@@..@.@@..@@...@@@@.@..@.@.@@@@....@.@.@.@@@...@.@@.@@@@.. +..@@@@..@..@@@.@.@@@.@.@....@@@@.@@@@...@.@@@.@@@@.@@@@@@..@.@@..@@@@.@.......@@@.@@..@@@.@@@@@..@@@@.@.@.@@@..@@@..@@.@@@@@@@@@@..@@@.@.. \ No newline at end of file diff --git a/2025/04/kylepritchard.v b/2025/04/kylepritchard.v new file mode 100644 index 0000000..f005b03 --- /dev/null +++ b/2025/04/kylepritchard.v @@ -0,0 +1,159 @@ +module main + +import os + +struct Pos { + row int + col int +} + +struct Offset { + dr int + dc int +} + +fn count_adjacent(grid []u8, rows int, cols int, i int, j int, neighbors []Offset) int { + mut count := 0 + + for offset in neighbors { + ni := i + offset.dr + nj := j + offset.dc + + if ni >= 0 && nj >= 0 && ni < rows && nj < cols { // inside grid + nidx := ni * cols + nj + if grid[nidx] == `@` { + count++ + if count >= 4 { + break + } + } + } + } + return count +} + +fn main() { + // Read input file + content := os.read_file('kylepritchard.input') or { panic('Failed to read file: ${err}') } + lines := content.split_into_lines() + + mut grid_lines := []string{} + for line in lines { + if line.len > 0 { + grid_lines << line + } + } + + rows := grid_lines.len + cols := grid_lines[0].len + + mut grid1 := []u8{len: rows * cols, cap: rows * cols} + mut grid2 := []u8{len: rows * cols, cap: rows * cols} + + for i in 0 .. rows { + line := grid_lines[i] + row_start := i * cols + for j in 0 .. cols { + grid1[row_start + j] = line[j] + grid2[row_start + j] = line[j] + } + } + + neighbors := [ + Offset{-1, -1}, // diagonal above left + Offset{-1, 0}, // above + Offset{-1, 1}, // diagional above right + Offset{0, -1}, // left + Offset{0, 1}, // right + Offset{1, -1}, // diagonal below left + Offset{1, 0}, // below + Offset{1, 1}, // diagonal below right + ] + + // Part 1 + mut part1_count := 0 + for i in 0 .. rows { + row_start := i * cols + for j in 0 .. cols { + idx := row_start + j + if grid1[idx] == `@` { + adj_count := count_adjacent(grid1, rows, cols, i, j, neighbors) + if adj_count < 4 { + part1_count++ + } + } + } + } + + println('Part 1: ${part1_count}') + + // Part 2 + mut total_removed := 0 + mut current_grid := grid2.clone() + mut changed := true + + mut to_check := []Pos{cap: rows * cols} + + for i in 0 .. rows { + for j in 0 .. cols { + to_check << Pos{i, j} + } + } + + for changed { + changed = false + mut to_remove := []Pos{cap: to_check.len} + mut next_to_check := []Pos{cap: rows * cols} + mut modified := []bool{len: rows * cols, init: false} + + for pos in to_check { + i := pos.row + j := pos.col + idx := i * cols + j + + if current_grid[idx] != `@` { + continue + } + + adj_count := count_adjacent(current_grid, rows, cols, i, j, neighbors) + if adj_count < 4 { + to_remove << pos + } + } + + // Remove rolls + if to_remove.len > 0 { + changed = true + total_removed += to_remove.len + + // Mark positions as removed and track their neighbors + for pos in to_remove { + i := pos.row + j := pos.col + idx := i * cols + j + current_grid[idx] = `.` + modified[idx] = true + + // Add neighbors to next iteration's check list + for offset in neighbors { + ni := i + offset.dr + nj := j + offset.dc + if ni >= 0 && nj >= 0 && ni < rows && nj < cols { + nidx := ni * cols + nj + if !modified[nidx] { + modified[nidx] = true + next_to_check << Pos{ni, nj} + } + } + } + } + + to_check = next_to_check.clone() + } else { + // No more to remove + break + } + } + + println('Part 2: ${total_removed}') +} From 97feb221ebdf521c42d69a3aba8820d08e85345c Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 18:56:26 +0000 Subject: [PATCH 05/15] Update input file name --- 2025/01/kylepritchard.v | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/2025/01/kylepritchard.v b/2025/01/kylepritchard.v index 07a67e7..9a596e6 100644 --- a/2025/01/kylepritchard.v +++ b/2025/01/kylepritchard.v @@ -4,7 +4,7 @@ import os import strconv fn main() { - codes := os.read_file('kylepritchard.input') or { panic('Failed to read file') } + codes := os.read_file('rotations.input') or { panic('Failed to read file') } mut start := 50 mut count := 0 @@ -57,3 +57,4 @@ fn main() { println('Part 1: $count') println('Part 2: $count2') } + From 89ca602b734be17cfbb0d9a7d3ece0a2f64c94ff Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 18:57:44 +0000 Subject: [PATCH 06/15] Delete 2025/01/kylepritchard.input --- 2025/01/kylepritchard.input | 4484 ----------------------------------- 1 file changed, 4484 deletions(-) delete mode 100644 2025/01/kylepritchard.input diff --git a/2025/01/kylepritchard.input b/2025/01/kylepritchard.input deleted file mode 100644 index f0e902c..0000000 --- a/2025/01/kylepritchard.input +++ /dev/null @@ -1,4484 +0,0 @@ -R17 -R28 -R8 -L25 -R33 -L48 -R2 -R42 -R39 -L10 -R29 -L26 -R24 -R44 -L37 -L1 -L4 -R2 -L43 -L6 -L44 -R29 -R47 -L48 -R13 -L18 -R18 -R30 -L44 -R35 -R18 -R2 -L38 -R50 -L28 -R18 -R21 -R32 -L8 -R18 -L33 -R24 -R46 -L6 -L9 -R39 -R7 -R48 -R41 -L26 -L52 -R1 -L1 -L40 -L60 -R18 -L18 -L87 -R73 -L86 -L45 -R69 -L24 -L31 -L69 -L12 -L79 -R84 -R83 -R24 -R70 -L75 -L81 -L38 -R24 -R26 -L26 -L48 -L52 -L10 -L90 -R4 -R54 -L88 -R31 -L3 -R91 -L67 -R65 -L61 -L32 -R63 -R83 -L50 -L90 -R75 -L26 -L23 -L26 -L61 -L89 -L65 -R250 -R60 -R652 -L47 -R88 -R50 -L61 -L113 -R36 -R823 -R26 -L849 -L46 -R27 -R58 -R41 -R68 -L48 -L42 -R15 -L22 -R49 -R78 -R322 -R28 -L28 -L95 -L33 -R56 -L28 -R37 -R63 -R13 -L8 -L57 -R52 -L64 -L36 -L8 -L28 -L313 -R49 -L87 -L13 -R24 -R911 -L35 -L117 -R60 -L65 -R34 -L3 -R52 -R54 -R85 -L371 -L67 -L8 -R668 -L22 -R96 -R51 -R8 -L55 -R69 -R31 -R83 -L49 -L734 -R165 -R35 -R85 -L45 -R60 -R332 -R32 -R36 -L31 -L22 -R233 -L702 -R80 -L23 -R865 -L6 -L94 -R57 -R18 -R225 -R955 -R34 -L47 -R55 -L97 -L9 -R4 -R63 -R43 -L1 -R18 -R7 -R75 -L224 -L76 -R10 -R79 -L898 -L91 -L47 -L3 -L74 -R19 -R50 -L45 -R46 -R54 -R36 -R28 -R8 -L27 -R55 -R41 -L41 -R540 -R60 -R58 -R76 -L3 -L831 -L45 -L78 -L77 -L2 -L50 -R24 -L572 -R3 -L94 -L509 -L53 -L35 -R559 -R21 -L292 -R10 -R16 -L98 -R812 -L40 -R10 -R74 -R16 -R255 -R92 -R670 -L73 -R56 -L59 -L41 -L938 -L62 -L84 -L5 -R89 -L23 -R423 -R62 -L162 -L57 -L698 -L80 -R47 -L413 -L899 -L69 -R92 -R322 -L145 -R59 -R41 -R39 -L39 -R9 -L34 -L28 -L58 -R559 -L59 -L89 -L19 -L13 -R94 -R34 -R77 -L2 -L91 -L86 -L94 -L67 -L63 -R430 -L5 -R5 -R70 -R30 -L67 -R67 -L30 -L39 -L131 -L21 -R19 -R98 -L96 -R36 -R610 -R54 -L72 -L90 -L49 -R11 -L77 -L93 -L30 -L5 -R79 -R67 -R59 -L29 -R63 -R66 -L54 -L546 -L101 -L28 -R4 -L6 -R96 -L1 -R323 -R435 -L22 -L74 -L80 -R54 -R658 -R88 -L46 -R21 -L23 -L89 -L84 -R72 -R3 -R60 -R40 -R48 -L49 -R1 -L5 -L195 -R46 -L20 -R686 -R88 -L80 -R50 -R81 -L31 -L67 -R15 -L398 -L269 -L1 -L722 -L978 -R53 -L153 -R39 -R61 -R7 -R517 -L24 -L19 -R19 -R45 -R135 -R70 -R950 -R67 -L267 -L672 -R41 -R896 -L65 -L33 -R35 -R883 -L72 -L27 -L86 -L81 -R81 -L87 -R13 -R88 -L48 -R52 -L47 -L52 -R117 -L653 -L36 -L88 -R12 -L71 -R25 -R64 -R751 -L7 -L33 -R598 -L98 -R54 -R30 -R766 -R15 -L60 -R695 -L1 -L56 -R39 -R16 -L98 -R101 -R99 -L277 -L564 -R41 -L21 -L79 -L23 -R777 -R246 -R37 -R563 -R40 -R784 -L80 -R56 -L69 -L31 -R3 -R23 -L331 -L95 -L563 -R63 -L5 -L84 -L48 -R16 -R84 -L63 -R78 -L17 -L61 -L30 -R3 -R301 -R26 -R128 -L988 -L13 -L14 -R87 -R15 -R85 -L61 -R48 -L587 -R65 -R72 -R63 -L754 -R733 -L79 -R584 -L81 -R597 -L94 -L40 -L66 -L94 -R94 -R15 -L15 -R24 -R67 -R807 -R82 -R86 -L66 -R20 -L41 -R95 -R26 -R70 -R430 -L3 -R3 -L47 -R31 -L890 -R513 -L7 -R61 -R39 -L75 -R886 -L97 -R86 -R60 -R140 -L87 -R49 -R46 -R23 -L4 -R10 -L276 -L61 -R24 -R76 -L59 -L42 -L530 -L8 -R56 -L696 -L83 -L38 -L290 -R57 -L39 -R99 -R71 -R55 -L381 -R28 -L75 -L26 -R22 -R77 -L4 -L94 -R68 -L68 -L246 -R11 -L65 -L54 -L46 -L58 -R56 -L98 -R94 -L94 -L429 -R29 -R867 -R133 -R41 -R17 -L58 -L9 -R920 -L12 -R1 -L28 -L72 -R769 -R31 -R18 -R82 -R33 -R518 -L375 -L78 -L98 -R92 -L16 -L44 -R31 -L51 -R65 -R40 -L17 -R52 -L879 -R3 -R14 -R382 -R28 -R38 -R23 -R539 -R869 -L46 -L23 -L87 -L3 -R790 -R878 -R563 -L41 -L67 -R50 -R20 -R55 -R42 -L47 -L44 -L78 -L675 -R44 -L578 -L22 -L821 -R21 -R28 -R18 -L682 -R42 -R52 -R8 -L66 -L986 -L80 -L67 -R6 -L38 -L80 -L38 -L85 -L32 -L17 -R95 -L3 -R25 -L19 -R19 -L56 -R178 -L22 -R55 -L355 -L966 -R810 -L8 -L388 -L56 -R485 -R51 -L28 -L50 -L79 -L64 -L32 -L52 -L323 -R61 -L322 -L579 -L37 -R477 -R508 -R46 -R972 -L607 -L919 -L85 -L521 -R25 -R49 -R32 -R23 -R477 -R71 -R92 -L54 -L468 -R59 -L5 -R294 -L274 -R20 -R65 -R287 -R13 -L856 -L71 -L344 -R71 -R77 -L56 -R90 -R333 -R56 -L79 -R4 -R286 -R89 -L78 -R20 -R58 -L313 -R822 -L5 -R5 -R92 -R82 -R17 -R41 -L38 -R50 -L71 -L882 -L75 -R75 -R298 -L43 -R45 -R5 -R21 -R74 -L55 -R58 -L36 -R633 -R57 -R43 -R15 -L8 -R93 -R376 -L781 -R50 -R55 -L68 -R56 -L17 -L71 -R52 -R435 -R73 -R69 -L70 -R97 -R850 -R44 -L50 -L8 -R62 -R18 -L272 -R15 -R85 -L14 -R214 -R46 -L46 -L51 -R751 -R37 -R363 -L18 -L82 -R288 -L68 -L94 -L3 -R2 -R82 -L21 -R32 -R82 -L37 -R37 -L33 -R81 -R52 -R51 -R74 -R75 -L51 -L44 -R52 -R43 -R547 -R753 -R185 -R78 -R83 -R54 -L22 -R25 -L71 -L32 -L47 -R60 -R46 -R80 -L81 -L35 -R894 -R14 -R69 -L54 -R74 -L24 -L6 -R5 -L565 -L30 -L93 -L7 -R28 -L85 -L39 -L63 -R59 -L30 -L345 -L674 -R75 -L354 -L908 -R622 -R10 -R4 -L48 -R55 -L2 -R99 -L3 -L1 -L31 -L54 -R60 -R3 -R84 -R40 -R228 -R92 -L95 -L177 -L50 -L71 -R60 -L38 -R27 -R75 -R47 -L126 -R12 -R287 -R71 -R95 -L39 -L9 -R441 -L92 -L158 -R36 -R5 -R49 -R51 -R877 -L503 -R241 -L38 -R74 -R975 -R49 -L17 -R19 -L53 -R53 -R26 -L41 -L85 -R22 -R260 -L7 -L19 -L70 -L48 -R270 -R9 -R71 -L88 -L87 -R87 -R2 -R14 -R84 -L67 -L33 -L38 -R75 -L37 -R13 -L13 -R43 -L1 -R51 -R7 -R63 -L29 -R15 -L563 -R58 -L19 -R50 -L275 -L10 -R71 -R42 -L83 -L20 -L62 -R88 -L26 -L99 -L1 -R93 -L95 -L36 -L62 -R29 -L61 -R43 -R89 -L10 -R65 -R781 -R64 -R84 -R16 -R76 -R19 -R98 -L730 -L63 -R921 -R83 -L4 -L16 -L84 -R77 -L57 -R91 -R46 -R89 -L546 -R17 -R55 -R51 -L31 -L92 -L63 -R47 -R16 -R20 -R23 -L43 -R18 -R20 -L35 -R97 -R662 -R28 -R26 -L16 -L18 -R88 -R4 -R29 -L3 -L53 -R132 -R21 -L36 -L59 -R95 -R15 -L70 -L80 -R35 -R66 -L66 -R63 -R27 -L358 -R68 -L23 -R423 -R62 -L25 -R63 -L212 -R12 -R50 -L27 -R16 -R23 -R36 -L98 -L13 -R85 -R52 -L302 -R78 -R398 -L198 -R96 -L50 -L46 -R82 -L129 -L80 -L13 -R5 -L73 -L89 -L58 -L335 -R25 -R88 -L164 -L15 -R61 -R95 -R69 -R1 -R30 -R272 -L221 -L79 -R165 -R28 -R43 -R6 -L96 -R82 -R82 -L582 -R18 -R82 -L637 -L70 -L93 -L471 -L633 -L41 -R97 -L252 -R59 -R63 -L38 -R16 -L41 -R61 -R80 -R337 -R94 -R69 -L58 -R36 -R15 -R83 -R924 -R62 -L48 -L14 -L40 -L43 -R46 -R67 -L33 -L20 -R23 -R28 -L737 -R9 -R77 -L77 -R53 -R34 -L87 -L70 -R70 -R67 -L49 -R979 -L87 -L94 -R45 -L701 -L18 -R58 -R59 -L40 -R81 -R76 -R243 -R77 -R540 -L5 -R869 -R12 -R901 -R87 -R40 -L640 -R3 -L522 -L134 -L47 -R54 -L54 -R884 -L19 -L265 -R14 -R143 -R43 -L629 -R19 -R86 -R78 -L47 -L7 -L59 -R55 -R11 -L402 -L29 -R265 -L90 -L62 -R11 -R99 -R101 -L852 -L48 -R92 -R81 -L73 -L41 -R1 -R55 -L64 -L20 -L31 -L169 -L192 -R65 -R96 -R532 -R90 -R15 -R33 -R236 -R16 -R94 -R63 -R2 -R19 -R949 -R51 -R20 -R6 -L71 -R45 -R840 -L2 -R92 -R670 -L26 -R426 -R18 -L55 -R63 -L802 -R89 -R91 -L65 -R60 -R1 -L95 -L97 -L8 -R15 -L19 -R58 -R78 -L32 -L89 -R27 -L48 -R68 -L91 -L673 -R207 -L2 -L999 -L2 -L998 -L66 -R66 -R22 -R30 -L35 -R83 -L93 -L150 -R5 -L39 -L23 -L88 -L28 -R87 -L471 -R68 -L468 -L83 -L17 -L85 -L39 -R71 -L947 -R83 -L33 -R36 -R89 -R25 -R897 -L57 -L40 -R67 -R733 -L19 -L756 -R81 -R849 -R53 -L89 -L50 -R35 -L226 -R618 -L68 -L82 -L946 -L742 -L4 -L58 -L98 -R13 -R70 -L81 -R85 -R15 -L10 -L41 -R43 -R968 -R194 -R46 -R578 -R22 -L58 -L763 -R99 -R53 -L10 -L21 -R14 -R386 -R26 -L25 -L1 -L270 -L89 -L20 -R79 -R66 -L85 -R236 -L1 -R84 -L45 -R68 -L23 -R54 -L54 -L9 -R63 -L54 -R574 -R6 -R190 -L70 -R186 -R81 -L67 -L202 -R121 -R781 -L94 -R94 -L727 -L280 -L80 -R87 -R97 -R82 -L66 -R87 -R461 -L761 -L37 -L648 -R43 -L120 -R60 -R95 -R83 -L43 -R48 -L6 -R25 -L9 -L73 -L738 -L80 -R17 -L17 -L16 -R2 -L11 -L61 -R945 -L59 -L402 -R72 -R519 -L90 -L37 -R859 -L26 -R92 -R13 -L59 -L270 -R713 -L84 -R65 -R35 -L54 -R54 -R81 -L201 -L236 -R89 -L33 -R18 -R82 -L13 -R321 -L8 -L192 -L8 -R75 -R25 -R56 -R44 -L5 -R880 -R404 -R17 -R4 -L49 -L51 -R10 -L10 -R72 -R50 -L3 -L139 -L80 -R974 -R59 -R698 -R41 -R90 -L891 -L53 -L18 -R85 -L79 -R13 -L619 -L546 -R71 -R806 -R69 -L20 -L80 -L86 -R5 -R81 -L64 -R64 -R12 -R88 -L331 -R17 -L3 -R33 -R279 -R21 -L659 -L7 -L25 -R75 -R732 -R75 -R493 -R9 -L639 -R114 -L84 -R82 -R518 -L135 -L82 -R90 -R482 -L724 -R7 -L31 -L46 -L12 -R92 -R33 -L40 -R189 -R77 -L746 -R34 -R412 -L9 -R954 -L945 -L3 -L40 -R43 -R20 -R80 -L81 -R6 -R16 -L432 -L9 -L6 -L94 -L88 -L43 -L69 -R91 -R930 -R29 -L625 -L98 -R73 -L86 -R20 -R557 -R9 -L55 -R40 -R15 -L42 -R42 -R63 -R68 -R57 -R58 -R26 -L93 -L60 -R5 -R6 -L35 -L68 -L27 -L87 -R54 -L81 -R14 -L130 -L15 -R650 -R95 -L22 -L278 -L79 -L321 -R64 -R36 -R96 -L46 -R5 -L59 -R62 -R42 -R82 -R13 -R305 -L62 -L38 -R15 -R85 -R15 -L172 -L129 -L4 -R90 -L62 -L38 -L83 -L32 -L85 -R89 -L89 -R963 -L13 -R85 -R65 -L98 -L43 -R72 -L759 -R52 -R3 -L975 -R59 -L11 -L79 -L221 -R90 -R29 -R81 -L19 -R658 -R71 -R28 -L38 -L45 -R45 -L197 -R7 -L10 -R96 -R889 -L85 -R717 -R59 -L76 -R797 -R3 -L24 -R24 -L24 -R305 -R65 -L46 -L623 -L77 -R429 -L29 -R13 -L131 -L82 -R14 -L85 -R266 -L53 -L82 -R56 -L7 -R91 -R533 -R67 -L45 -L75 -L92 -R103 -L5 -R14 -R19 -R90 -L409 -R938 -L38 -R58 -R72 -R57 -R73 -R48 -L55 -R21 -R34 -L52 -R860 -L8 -L908 -L64 -L84 -L52 -R11 -R77 -L9 -R21 -L97 -R97 -L38 -R38 -L981 -L56 -R85 -L6 -L42 -L231 -R29 -L88 -R89 -R1 -R376 -R24 -R27 -L27 -R86 -R14 -R64 -R96 -R1 -R39 -R31 -L9 -R65 -L91 -L95 -L901 -R644 -R56 -R9 -R8 -L17 -R21 -R9 -R79 -R91 -L289 -R62 -R71 -R21 -R35 -L719 -R22 -R597 -L11 -R86 -R88 -R73 -R32 -R32 -L84 -R82 -R2 -R3 -R9 -L12 -L32 -R22 -L90 -L53 -R53 -L17 -L83 -R42 -R30 -L72 -R38 -L936 -L502 -R621 -L25 -R65 -R935 -R904 -R90 -L90 -L53 -L47 -L19 -R39 -L41 -R557 -L62 -R26 -R316 -L23 -L32 -R39 -R215 -L15 -L45 -R23 -R33 -L47 -L78 -L16 -R20 -L944 -R54 -L19 -R19 -L25 -L23 -L52 -R347 -R53 -R96 -R603 -L99 -L20 -R999 -R87 -L66 -L2 -R23 -R76 -R3 -L4 -R69 -L565 -R41 -R745 -L852 -R66 -L2 -R503 -R99 -L990 -R90 -R310 -L5 -R94 -L36 -R6 -L605 -R61 -L26 -R607 -L93 -R2 -R985 -L915 -R15 -L699 -L1 -R83 -L87 -L296 -R49 -R51 -R69 -L363 -L734 -R28 -R8 -L35 -L556 -R12 -L29 -R635 -L36 -R1 -R46 -L98 -R52 -L27 -L643 -R70 -R739 -R24 -L4 -L959 -R470 -R30 -L46 -L54 -L44 -R79 -L535 -R67 -R676 -L43 -R98 -L90 -L8 -R44 -L52 -L92 -L799 -L91 -L610 -L2 -R2 -R52 -R45 -R123 -L20 -R66 -R67 -R67 -R90 -R946 -R91 -R39 -R69 -R65 -L51 -R61 -R46 -L56 -R88 -L88 -L31 -L5 -L76 -R212 -L439 -L61 -R99 -R1 -L49 -L39 -L54 -L53 -R70 -L664 -R569 -R61 -L9 -R68 -R81 -R19 -R98 -L62 -L50 -R51 -L10 -L43 -R485 -L51 -R82 -L246 -L554 -L85 -R14 -R53 -R47 -L1 -R72 -L66 -R66 -R95 -R87 -L82 -L68 -L9 -R70 -L375 -R37 -R45 -R51 -R649 -R90 -L23 -L31 -L636 -R80 -R20 -L93 -L207 -L32 -R32 -L81 -L22 -R3 -L88 -L22 -R79 -R31 -L108 -R8 -R340 -L81 -R141 -R73 -R27 -R309 -R91 -L88 -L112 -R79 -R83 -R307 -L469 -R715 -R85 -R63 -L25 -R9 -L76 -L789 -R56 -L38 -L270 -L7 -L23 -L97 -L60 -L43 -R31 -L31 -R72 -R967 -L39 -R98 -L23 -R57 -L74 -R98 -R97 -R747 -R12 -R56 -L68 -R61 -L61 -L49 -R530 -R66 -L49 -L98 -R36 -R64 -R31 -R18 -R851 -L77 -R77 -R212 -L24 -L88 -R11 -R8 -L839 -L18 -L78 -L84 -R22 -L22 -R56 -L56 -R47 -L47 -R72 -L72 -L84 -L70 -L46 -R21 -R18 -L277 -L60 -L2 -L23 -R29 -L28 -L78 -L19 -R22 -L70 -R71 -R996 -R86 -R14 -R26 -R74 -R21 -R79 -L57 -L13 -L50 -L44 -R64 -R15 -L115 -L32 -L27 -L139 -L902 -L62 -L81 -R56 -R4 -R77 -R60 -L81 -L73 -R94 -L94 -L37 -R229 -R69 -L25 -L53 -L83 -R574 -R857 -L31 -L127 -L573 -R508 -R92 -L746 -L654 -L51 -R12 -R75 -L36 -R768 -R310 -R30 -R85 -L46 -L847 -L80 -L62 -R42 -R311 -R259 -R793 -L46 -R81 -R33 -R747 -R422 -L75 -R75 -R6 -L6 -R41 -L949 -L92 -L101 -R68 -L75 -R28 -R465 -L54 -R66 -L97 -L55 -R50 -R623 -L88 -L936 -L94 -L35 -L570 -R5 -L61 -R67 -R62 -L36 -R56 -L88 -R43 -R11 -L81 -L47 -L20 -L506 -R16 -L16 -R727 -L55 -L34 -L840 -L72 -L19 -L7 -R96 -L96 -L23 -R23 -R54 -L94 -L94 -L28 -L48 -L5 -L8 -R11 -L88 -L20 -R620 -R18 -L34 -R16 -R104 -R96 -R38 -R54 -R408 -L7 -L24 -L20 -R91 -L72 -R883 -L51 -R63 -L174 -L89 -R8 -L8 -R446 -R68 -L81 -L46 -L401 -L77 -L9 -L86 -L26 -L792 -R77 -R163 -R821 -L848 -R91 -L642 -R60 -R29 -L83 -R71 -L506 -L53 -L76 -R93 -L142 -L951 -L6 -L91 -R15 -R77 -L95 -R72 -L776 -L96 -L62 -L55 -R850 -L72 -L64 -R3 -L2 -R2 -R93 -R39 -L68 -R36 -R8 -L57 -L33 -R82 -L477 -R77 -R437 -R63 -L94 -R59 -R2 -L40 -L34 -L65 -L25 -R97 -R73 -R27 -L1 -L14 -L84 -R724 -R75 -L91 -R91 -R363 -L63 -R297 -L29 -L79 -R511 -R366 -R34 -R34 -R27 -R60 -R49 -L370 -R274 -R50 -L124 -L5 -R5 -L5 -R5 -R91 -L46 -L57 -L88 -L338 -L30 -L6 -R66 -R77 -R31 -L43 -L57 -R18 -R79 -R5 -L34 -L68 -R550 -R199 -R51 -R495 -L95 -R74 -L51 -L23 -R31 -L83 -L99 -R723 -L49 -L71 -L28 -L124 -R76 -L72 -R96 -L18 -R580 -L99 -L33 -R70 -R65 -L39 -R74 -L91 -L470 -R96 -R65 -L20 -L80 -L19 -L81 -L36 -R29 -L93 -R90 -R44 -R29 -R209 -R28 -R3 -L1 -L45 -L107 -L33 -R96 -R14 -R8 -R265 -L43 -L33 -L24 -R98 -R2 -R537 -L411 -R77 -L93 -R290 -L332 -R20 -R12 -L84 -R884 -L39 -L706 -R8 -R16 -L79 -R23 -L23 -L728 -L72 -R5 -L5 -L97 -R51 -L34 -L20 -R57 -L62 -R305 -L51 -R5 -L496 -L14 -R40 -R654 -L38 -R71 -L89 -R18 -R183 -R17 -L66 -R4 -R62 -L75 -R15 -R60 -R21 -R79 -R32 -L73 -L7 -R52 -L313 -L8 -L6 -L853 -L7 -L17 -R72 -L72 -L14 -L50 -R51 -L91 -R91 -R18 -L12 -L93 -L64 -L36 -L23 -R36 -L13 -L26 -L62 -L5 -R293 -L943 -L50 -R17 -R79 -R95 -L21 -R86 -L251 -R8 -L82 -R362 -R3 -R60 -L63 -R48 -R1 -R11 -L60 -L52 -L229 -L83 -R43 -L79 -L20 -L5 -L75 -R927 -L27 -L82 -R266 -L14 -R30 -R63 -L34 -R171 -L32 -L68 -R93 -R7 -L12 -R177 -L86 -R21 -L31 -L69 -L318 -L85 -L71 -R70 -R72 -L34 -L97 -R80 -L117 -R9 -R91 -R99 -L99 -L64 -R74 -L51 -L60 -R79 -L42 -R818 -L54 -R614 -L695 -L19 -L979 -L35 -L486 -L51 -R81 -L28 -L92 -R19 -L29 -R13 -L82 -R12 -R99 -L95 -R53 -R293 -L95 -R38 -L53 -L302 -R19 -R10 -L57 -R47 -R25 -R74 -R53 -L65 -R13 -L41 -L68 -L67 -L70 -L25 -L50 -L90 -L89 -R763 -R863 -L48 -L67 -R82 -L58 -L98 -L537 -L95 -R37 -R45 -R716 -L26 -L98 -L279 -L66 -L59 -L75 -L24 -R424 -R30 -R15 -L45 -L70 -L77 -L353 -R25 -R35 -L56 -R96 -L49 -L751 -R21 -R47 -L43 -L67 -L58 -R72 -R31 -L86 -R54 -R29 -R868 -L68 -R25 -R90 -R42 -R54 -R89 -L27 -L73 -R33 -R412 -R62 -L87 -L47 -R22 -L53 -L66 -R96 -L73 -R1 -L99 -R20 -R784 -R795 -R13 -L613 -L708 -L61 -R69 -R17 -R83 -L54 -L546 -R799 -R801 -L84 -L31 -L78 -L22 -R89 -L43 -R74 -R59 -L64 -L911 -R53 -R11 -R347 -R11 -R14 -R68 -R7 -L31 -L69 -L501 -L98 -R99 -L85 -L388 -R40 -R8 -R389 -R5 -R65 -R871 -L798 -L61 -R54 -R26 -L26 -R47 -L33 -R95 -L83 -R804 -R26 -R948 -L9 -R5 -R75 -L12 -L18 -L45 -L18 -R9 -R9 -R266 -R34 -R55 -R83 -L94 -R41 -L185 -L47 -L74 -L79 -R91 -L7 -L84 -L36 -L964 -R46 -L546 -L9 -R9 -R89 -R40 -L1 -L53 -L475 -R70 -L8 -L62 -R40 -R60 -R60 -R91 -R49 -L53 -R34 -R19 -L10 -R56 -L50 -L34 -R538 -L92 -L908 -R12 -L12 -L90 -R88 -R3 -R2 -R56 -L65 -R6 -L65 -R317 -L152 -L7 -R7 -L60 -R56 -R25 -L992 -R47 -L13 -R48 -L52 -L656 -R15 -L753 -R57 -R701 -R82 -L45 -R467 -R19 -R54 -L24 -R32 -L37 -L2 -R31 -R61 -R91 -L521 -R58 -L242 -R89 -R90 -L46 -R920 -R77 -L77 -R5 -R82 -L87 -L404 -L16 -L44 -L48 -R112 -R416 -L216 -L7 -L6 -R522 -R91 -L25 -L437 -L38 -L892 -L74 -L634 -L31 -R36 -L63 -R18 -R40 -L4 -R504 -R40 -L40 -R3 -R777 -L455 -R75 -R87 -L4 -L83 -R58 -L747 -L69 -R58 -R19 -R81 -L10 -L90 -L66 -L50 -L2 -L82 -R7 -L7 -L366 -R866 -L37 -R27 -L90 -R2 -L202 -R79 -R906 -L16 -R31 -L52 -R64 -L84 -R36 -R710 -L40 -L19 -R22 -L611 -R57 -L53 -R64 -R14 -L8 -R6 -R76 -R589 -R33 -R48 -R748 -L11 -R96 -L85 -R12 -L46 -L94 -R70 -R55 -R273 -R67 -R881 -R87 -L4 -L1 -L97 -L90 -R87 -R4 -R96 -L62 -R62 -L78 -R28 -R1 -L67 -R216 -L19 -R19 -R39 -R75 -L714 -R97 -R3 -L99 -L96 -L8 -L499 -R47 -L57 -R41 -L73 -R33 -R14 -R1 -L45 -R63 -L86 -L47 -R20 -R91 -R98 -R102 -R87 -L22 -R36 -R86 -R24 -L211 -L217 -R44 -R30 -R42 -L98 -R199 -L34 -R34 -R50 -R90 -R28 -L32 -R64 -L57 -R27 -R105 -R47 -L22 -L35 -R301 -L49 -L17 -L22 -L778 -L606 -R6 -L25 -R708 -R36 -L79 -R4 -L31 -L13 -L92 -R392 -R22 -R78 -R63 -R81 -L2 -R8 -R49 -L808 -L37 -R67 -L507 -R86 -L20 -L75 -L260 -R26 -L79 -L39 -R47 -L65 -R806 -R33 -L57 -L17 -R31 -R96 -L15 -R54 -R56 -R608 -R997 -R42 -R31 -R31 -R69 -L84 -L516 -L81 -R11 -L33 -R3 -R802 -L642 -R40 -L74 -L49 -L91 -L886 -R89 -R11 -L18 -L82 -L26 -L252 -L40 -L98 -L79 -L60 -L845 -L1 -R1 -L25 -R24 -R807 -L55 -R11 -L66 -L73 -R72 -R5 -R513 -L68 -R485 -R70 -L81 -L19 -L86 -L72 -R46 -L88 -L59 -L41 -R373 -L73 -L49 -L751 -R430 -R70 -R74 -R726 -L5 -L95 -R67 -L666 -R699 -L67 -R70 -L82 -R19 -R360 -R77 -L899 -L68 -R66 -L376 -L78 -R78 -R97 -L97 -L58 -L73 -R86 -L55 -L9 -L91 -R78 -R5 -L38 -R15 -R639 -R1 -R51 -R66 -L84 -R59 -R8 -L334 -L55 -R72 -L82 -L93 -R92 -R330 -L94 -R64 -L487 -R87 -R65 -L566 -L670 -R24 -R10 -R42 -R95 -R38 -R366 -L4 -R29 -L29 -R91 -L94 -R48 -L660 -L40 -R86 -R769 -R904 -L4 -L76 -R78 -L45 -L73 -L14 -L70 -L58 -L69 -L873 -L234 -L38 -L90 -R46 -L98 -L93 -R37 -L18 -R88 -L44 -L553 -R97 -L469 -L57 -L58 -L42 -R37 -R370 -L331 -R299 -L49 -L85 -R85 -R180 -R918 -R302 -L128 -L72 -L11 -L26 -L63 -L25 -R25 -R5 -L47 -L14 -R56 -R69 -R525 -L994 -R533 -L633 -L1 -L53 -L46 -L10 -R98 -L53 -R78 -L13 -R66 -L66 -R49 -L49 -L9 -L66 -R18 -R857 -R72 -L72 -R189 -R11 -L57 -R29 -R81 -L51 -L702 -R1 -R45 -L62 -L29 -L9 -R54 -R64 -L330 -L749 -L85 -L8 -L81 -L309 -L388 -R82 -L88 -R92 -L58 -R98 -R43 -L49 -L934 -R894 -L94 -L47 -L34 -L819 -L741 -L859 -R6 -R92 -L73 -R75 -R21 -L965 -L90 -R34 -R252 -L588 -L64 -L738 -L96 -L66 -R66 -L28 -L19 -L65 -L86 -R32 -R21 -R457 -R22 -L356 -R378 -R635 -R31 -L67 -R79 -R96 -R604 -L65 -R43 -R47 -L65 -L60 -R975 -L75 -L30 -L70 -L53 -L73 -R91 -L50 -L927 -L51 -L41 -R49 -L89 -R41 -R3 -L680 -R829 -R335 -L84 -R21 -R553 -L774 -R90 -L90 -L90 -R11 -R49 -L781 -L82 -R93 -R267 -R82 -R51 -R22 -R78 -R97 -R813 -R990 -R34 -L34 -R82 -R77 -R69 -L63 -L114 -L85 -R7 -L73 -R27 -L11 -R5 -R79 -R88 -R12 -R95 -L815 -L80 -L952 -L748 -L375 -L87 -R62 -L79 -L21 -L49 -R49 -R48 -L48 -R2 -L2 -L328 -R6 -R9 -L98 -R29 -L18 -R35 -R66 -L77 -R76 -R58 -L58 -R540 -R12 -R48 -R687 -R65 -L937 -L13 -L2 -L378 -L98 -R57 -L985 -L23 -L9 -L64 -L90 -L10 -R28 -R172 -L97 -R450 -R3 -R8 -R6 -R88 -R92 -R60 -R66 -R29 -R82 -R59 -R44 -R48 -L99 -R60 -L369 -R88 -R22 -L66 -L63 -R89 -R40 -L24 -R58 -R26 -L234 -R83 -R688 -L37 -R87 -L987 -R55 -L55 -R35 -R11 -R78 -L12 -L95 -R25 -R58 -R49 -R77 -R74 -L266 -R66 -R99 -R11 -L777 -R58 -R54 -L7 -R62 -R77 -R59 -L84 -R48 -R41 -L41 -R68 -L67 -L29 -R74 -R54 -L83 -L90 -L92 -L87 -R52 -L32 -R934 -R57 -L70 -R21 -R46 -R44 -R52 -L52 -L147 -R94 -R69 -L19 -L47 -L89 -L95 -L57 -R16 -R60 -R92 -R72 -R16 -R45 -R80 -L90 -R245 -L69 -R124 -R58 -L11 -R71 -L78 -L40 -R94 -L83 -L11 -L43 -L39 -L50 -R30 -L54 -L7 -R932 -L769 -R34 -R266 -L80 -L276 -L2 -R758 -R22 -L622 -L701 -R50 -R63 -L12 -R58 -R543 -R99 -L6 -R6 -R808 -L587 -R102 -L95 -L55 -L34 -R570 -L9 -L16 -R2 -L20 -L63 -R30 -R67 -R7 -L69 -R64 -R98 -L3 -R3 -R13 -R64 -L241 -L4 -R68 -L62 -L6 -R68 -R49 -L84 -R35 -L23 -R23 -L85 -L15 -R52 -R548 -L35 -R48 -L52 -R571 -L432 -L59 -L41 -L11 -R1 -R10 -L79 -L60 -R39 -L49 -L950 -R14 -R94 -L51 -R42 -L678 -L22 -L60 -R82 -R78 -L41 -R885 -R74 -L61 -L23 -R39 -L44 -L43 -R14 -L9 -L91 -L69 -L31 -R45 -L80 -R77 -L72 -L76 -R78 -L72 -R87 -R113 -L40 -L761 -L9 -R91 -R82 -R78 -R41 -R424 -R24 -L39 -R9 -L15 -R15 -L84 -L16 -R290 -R899 -L37 -R54 -R79 -L25 -L63 -L61 -L36 -R55 -L65 -L94 -R51 -R53 -L20 -L71 -R91 -L16 -L84 -L798 -R16 -L11 -L7 -L95 -R533 -R81 -L33 -L22 -L64 -L5 -L605 -R10 -R67 -L36 -L31 -L13 -R92 -L421 -R91 -L19 -R501 -R43 -R72 -R6 -R48 -R31 -R69 -L13 -R48 -R89 -R76 -L18 -L33 -R75 -L24 -R32 -L32 -R11 -R821 -L32 -R81 -R19 -R304 -R296 -L2 -L98 -L50 -L11 -L51 -R972 -L32 -R87 -L15 -L601 -R646 -R80 -R75 -R680 -L80 -R11 -R89 -R13 -L85 -R42 -R97 -R896 -R27 -R71 -L62 -R180 -R61 -R360 -R552 -R65 -R171 -R12 -L68 -R68 -R30 -L830 -R90 -R10 -L81 -L56 -L163 -L28 -R45 -R11 -R32 -L16 -L44 -L161 -L6 -L90 -R57 -R59 -L59 -L54 -L897 -L43 -R72 -R584 -R38 -L64 -R39 -R23 -R902 -R74 -R40 -L93 -L821 -R46 -L46 -L62 -L52 -L86 -R56 -R44 -R71 -R336 -R93 -R151 -R64 -L61 -L554 -R50 -L37 -R11 -L624 -R68 -L68 -L42 -R8 -L54 -L992 -R28 -R638 -L585 -R11 -L16 -L30 -L66 -L27 -R27 -R92 -L93 -R43 -R458 -R12 -R88 -L85 -L26 -L2 -L87 -R138 -R62 -R682 -L82 -R8 -L47 -R15 -L58 -R7 -R67 -R27 -R33 -R48 -L194 -L485 -R293 -L44 -R30 -R4 -L4 -R53 -R38 -R10 -R96 -L14 -L83 -L10 -L31 -R23 -L10 -R38 -R2 -R88 -R52 -R21 -R27 -R270 -R42 -L92 -R73 -R823 -L590 -R47 -L79 -R7 -L79 -L26 -R626 -L790 -L73 -L67 -L50 -L442 -L38 -R15 -L51 -R74 -R51 -L46 -L97 -L8 -L40 -R340 -L61 -R61 -L35 -L65 -L511 -R40 -R58 -R62 -L19 -R70 -L798 -L27 -R748 -R68 -R864 -R45 -L367 -R67 -L25 -R62 -R63 -L13 -L75 -L352 -L62 -R85 -L83 -R81 -R39 -L41 -L79 -L2 -R2 -L265 -L83 -L52 -L84 -L16 -L36 -R435 -R27 -L70 -L50 -R37 -L14 -R71 -L6 -L94 -R302 -L333 -R31 -L46 -R46 -L34 -R134 -L89 -R95 -R94 -R2 -L2 -R8 -R92 -R365 -R35 -L225 -L75 -L12 -L47 -R559 -R65 -R51 -L16 -R76 -R24 -L47 -R97 -R50 -L28 -L889 -L2 -L19 -L62 -L63 -L456 -L81 -L89 -R486 -R31 -R724 -R48 -L74 -R31 -R69 -L26 -R301 -R31 -R652 -R42 -L261 -R35 -R50 -R79 -R171 -L7 -R7 -L386 -R86 -R26 -R395 -L48 -L55 -L18 -R555 -R23 -R59 -L37 -L25 -L64 -L51 -R3 -R837 -L29 -R229 -R91 -L406 -R70 -R99 -L978 -L76 -L19 -R89 -R78 -R47 -R22 -L17 -R47 -R53 -R13 -R53 -R87 -R4 -L257 -R586 -L63 -L463 -L60 -R5 -R95 -R66 -R34 -L195 -R47 -R6 -R2 -L39 -L21 -R56 -R44 -L83 -L61 -L770 -R547 -R5 -L53 -L66 -R881 -R85 -R615 -R19 -L13 -L179 -L47 -R320 -L53 -L41 -R94 -L95 -R78 -L819 -R36 -L36 -R969 -L9 -L44 -L89 -L36 -L7 -L25 -R8 -R69 -L41 -L94 -R769 -R866 -R907 -R39 -R3 -L17 -L86 -R50 -L50 -L51 -L718 -R23 -R50 -R50 -R230 -R70 -L94 -L60 -L914 -R68 -L36 -R56 -L20 -R37 -L37 -R382 -L11 -R895 -L66 -L51 -R87 -L39 -L9 -L88 -R27 -L52 -L24 -R672 -R5 -L96 -R74 -L89 -R993 -L12 -R28 -R39 -L465 -R12 -R31 -R22 -L65 -L32 -L865 -L89 -L77 -L37 -R9 -L9 -L37 -L378 -L85 -L14 -L86 -L45 -R45 -R40 -L40 -L40 -R507 -L88 -L59 -L85 -R65 -L99 -R929 -L30 -L75 -R647 -L72 -R301 -R40 -L24 -L81 -R54 -R10 -L93 -L2 -R23 -R92 -R657 -L73 -R16 -L79 -L341 -L941 -R45 -L4 -L14 -L19 -R75 -L42 -R69 -L69 -L35 -R20 -L593 -L93 -L607 -R8 -R4 -R167 -R29 -R52 -L52 -R574 -L34 -R53 -R7 -R808 -R98 -L499 -R45 -R8 -L52 -R16 -L52 -L73 -R812 -L11 -R18 -R63 -L72 -L9 -R3 -L3 -R92 -R17 -L809 -R44 -R56 -L318 -L61 -L68 -L93 -L9 -R12 -R46 -R83 -R51 -R510 -R47 -R7 -L307 -R62 -R86 -L48 -L71 -L222 -L6 -L8 -L82 -L33 -R22 -L37 -R47 -L6 -R14 -R86 -R96 -R147 -L47 -L15 -R66 -L98 -R77 -R61 -R98 -L789 -R82 -L978 -L804 -R79 -L79 -R97 -R903 -L43 -R717 -R26 -R32 -L82 -L708 -L42 -L380 -R80 -R57 -R42 -R61 -L60 -L96 -L4 -R34 -L14 -L14 -L3 -L203 -R61 -L45 -L16 -R299 -R29 -L28 -R8 -L11 -L354 -L74 -L22 -L75 -R28 -L10 -L90 -R99 -L12 -R13 -L179 -R48 -L73 -L46 -L83 -R43 -L10 -R73 -R27 -R52 -L83 -L69 -L83 -L80 -L98 -L495 -L7 -L37 -R446 -L14 -R68 -L65 -R65 -L30 -R111 -R67 -L95 -R94 -R91 -L84 -R92 -L44 -L491 -L11 -L5 -R96 -R9 -R352 -L34 -R12 -R13 -L98 -L31 -R86 -L3 -R3 -R83 -L54 -R71 -R743 -L43 -R44 -L69 -R25 -L90 -R440 -L96 -L524 -R70 -L33 -R933 -L819 -R4 -L18 -R57 -R76 -L254 -L8 -L38 -L49 -L53 -L33 -L76 -L22 -L867 -L37 -L68 -R5 -L392 -L39 -L97 -L72 -L52 -L848 -L14 -L83 -L91 -R88 -L24 -R24 -R285 -R50 -L49 -R14 -R28 -R85 -R605 -R47 -L93 -R43 -L15 -R56 -R44 -R33 -R83 -R12 -L92 -L956 -R81 -L61 -L244 -R31 -R31 -R27 -R10 -L55 -L59 -L8 -R44 -L77 -R834 -R66 -R50 -L50 -R7 -R33 -L40 -L43 -L37 -R63 -R8 -L204 -R613 -R21 -R879 -R32 -R856 -R12 -R45 -L18 -L98 -R24 -L53 -L82 -L49 -R88 -L57 -R2 -R36 -L80 -R24 -L82 -R68 -L773 -R5 -L26 -L815 -L638 -R968 -L24 -R835 -L93 -L95 -R88 -R27 -L23 -R76 -R596 -R24 -R61 -L62 -R1 -L2 -L98 -L613 -R2 -L66 -R37 -L60 -L35 -L79 -L47 -L242 -R93 -R64 -R94 -L67 -R19 -L28 -R63 -L35 -L83 -L432 -L85 -R64 -R36 -L871 -L29 -R542 -L42 -L975 -L88 -R5 -L45 -L3 -R72 -L19 -L25 -R78 -L95 -L54 -R65 -R57 -R27 -L56 -L44 -R42 -R29 -R29 -R37 -L89 -R63 -R5 -L72 -R41 -R15 -L12 -R45 -R27 -R43 -R97 -L16 -R17 -L68 -R67 -R21 -R12 -L2 -R50 -R92 -R4 -R56 -R33 -R68 -R2 -L36 -L41 -L99 -L19 -R34 -L9 -L86 -R20 -R81 -R32 -R21 -L41 -L19 -L18 -R3 -L12 -L13 -R42 -R31 -R17 -L32 -L2 -L39 -R41 -L25 -L44 -L29 -L29 -R43 -R45 -R34 -L26 -R50 -L32 -L38 -R22 -R19 -L45 -R41 -R9 -R33 -L27 -R16 -L9 -L10 -L8 -L7 -L40 -R15 -L23 -L46 -L42 -R33 -L18 -L45 -L2 -L8 -R14 -L15 -L26 -R15 -L39 \ No newline at end of file From bd4779d371fb1e2e47417b39f04a90c11ff20d94 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 18:58:11 +0000 Subject: [PATCH 07/15] Delete 2025/02/kylepritchard.input --- 2025/02/kylepritchard.input | 1 - 1 file changed, 1 deletion(-) delete mode 100644 2025/02/kylepritchard.input diff --git a/2025/02/kylepritchard.input b/2025/02/kylepritchard.input deleted file mode 100644 index 76abbd8..0000000 --- a/2025/02/kylepritchard.input +++ /dev/null @@ -1 +0,0 @@ -19391-47353,9354357-9434558,4646427538-4646497433,273-830,612658-674925,6639011-6699773,4426384-4463095,527495356-527575097,22323258-22422396,412175-431622,492524-611114,77-122,992964846-993029776,165081-338962,925961-994113,7967153617-7967231799,71518058-71542434,64164836-64292066,4495586-4655083,2-17,432139-454960,4645-14066,6073872-6232058,9999984021-10000017929,704216-909374,48425929-48543963,52767-94156,26-76,1252-3919,123-228 \ No newline at end of file From de3111e955970f7458e265dec5000b08e449a254 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 18:58:29 +0000 Subject: [PATCH 08/15] Delete 2025/03/kylepritchard.input --- 2025/03/kylepritchard.input | 200 ------------------------------------ 1 file changed, 200 deletions(-) delete mode 100644 2025/03/kylepritchard.input diff --git a/2025/03/kylepritchard.input b/2025/03/kylepritchard.input deleted file mode 100644 index df89448..0000000 --- a/2025/03/kylepritchard.input +++ /dev/null @@ -1,200 +0,0 @@ -7657222591427217122445272425253565561122226426262235211484443362522725526264152632322121122211226432 -3373333633442752337522633445663374225443334322548433257443232874664837733346552233522456333621353345 -1332222423213233321341322323233232323313322333313132332432322231343233323222222322322223132223242221 -2542511113222221222322623512315322253412425222332222424222523225123222231222224522222222222123312322 -3465272641321143415543233223464843452262833212844252142443235541323214344424228944552242354521272432 -4746446644444344344434474434349432454437943543534444547444444434443434434244242333735532354244443457 -2112324121442212222221214221123252424122222412222222222132144242311242221221322223822242342212444424 -1123333344342332223423545344534323322122243224333232224112215322432334525445233222215532234355133214 -2422422522222332247233266222222212224342142134238242261312212226126234121412222412621222221222122223 -8329132331223632222312624241312323321177123234222332553212342643212612322223124323212165222222325622 -6433642575467553452243355443435383362235653125644554572611343354343732653446353346243533442537525464 -9776986994932798457744396988598286979887288577967999956986885598686998788487659799665897679768899989 -2335615221112276254226223223223221322435222432224218231322222123222212231432331242324126331169112232 -2543345342433254664646231519663636264432194627324243362833544525365376652832533235443344621283334935 -2322212711266652255421245642222542255213265861513322223242531242225231222255312526551225512244323155 -2321223221213223229231113131211231122353212222325321124113523322212213223252221132311224323211222313 -3963734344733733733534428343226425232743226474632372254433423722133212327383231733334214643234356431 -1221221211321121221122121221422232322322312622223127222133222342422322231224224412222122221332241442 -2221324223223233115123124252255313322324473522452221822456524523124135313222243223322234115312732225 -2223222322222222352442222221222222223212222221222122223212221222221222122212122222212212232222122222 -1121222222112832323251331222225634325373232223222331223232222329312373663523121942423258234115233212 -3225524325253544422431426256136526482524226236316511554643275743228592433741363256836281154327425424 -6352556122463717312217582342312764633252679657451822732163624544674142726465357723757856355284232543 -2442434442438722684773924354459827432495458263533463645743434557324333542934558336267433675384462434 -3222342222252334323133323235233332333335333225335322223347324434134333543532343324335222433334322434 -2222322821413322522327234232221342231433332331222331232231213225322233331723115233112621233222235122 -2634442443233722221231522441451343444292244525253246492214427238327222333244622237426431344214255342 -1223223112222311412112252132222713214622226212532212522222232421122221442222241254222432222243233225 -1325932455431623232333525823151573313455512446523624555343442324235272752451212136734325321424441556 -7256358555824237662535556344456446249947456337424523743433644234738229852964942534264632434157537313 -7943676747575659246664394755836437376424444748967643364944363434472848848944564896895447224717544333 -5286649225236356243535463452638644232223646243213554513424523359622234256445983323661442242332424332 -6673444539464243453761737663442455239436361446638546244285466383634655124789444364471358452774442453 -1223222221221212221222121222221222224221222223122112112212122122312231221224432221232222222212222422 -3335453555366555335463661353344513554672136333336637152543663564666334265633545759666566556465163543 -3252539585343423336326444236333344495483333335575223352335314532333646532153333533433636993338153535 -3333234233323233532213232233353343233231333324323334335332141334325225333223333352333323222333323325 -8545554544437483336366868276686547884474788273435475335367734547688374643466747346785724489167365442 -2232527532342212722722233353323233223322253633233431352352133323625245533322321336925333253232522722 -5556597585573574453762372427365624245614276654664544255675776375664447486634882576174483586666481875 -5255555655556653745655455585459465245547445455393644455564645555466895545364553552555639656524526645 -4337234233442323542434444255224315163581432242343144123434444341343723342344423433432232354641434174 -2222331212238323262452221124223732222222152213222222222222222112224122222222232211421352622122222122 -1232322223321232222123322222232322123315531221122322132321222323211232425322242232235321222322432522 -2322222222214333235214213232231333233332922122272226252217623322522213232362222222222253222452233212 -2526847699636356678785677552366962363653357695869567553474764262942516261287578237776225392647843464 -4324243434257223424333244213433434331224243333344234233342235432423163243432423433324433533233443223 -2212222222232222122222231442232224422422312224222211322353213222223212465423221172228621372122515226 -5224444322343443324443442434251432525333644424442432234332443214244333423443334274525244334371244244 -5665465529465666164595646586765567466765555545676495774555666265757636653556565356555565794857466585 -3323222533223613635322212223222322313121333443431162323241323331331222322332162232332311221335122241 -1223444125243234572287783343775352555526375627553262257346459422634562222274333544623445275645384352 -2422222221411242123222222124222414132432121212212112422142321222632122423212222262122342232224822222 -2223222323225233123141262322323333322225322222122323232222123322221222223222243311324222212212222232 -3232231323332333332333323323333253323432232323352323222123333233344333338231323133923232332222433131 -4233223121232223222231131222223322221284221222244432323322311222122223231332222223221412211132114142 -2523234356222222511233122222222254132224222521323242122522234424235231155462333221221122352432732224 -3634234213333334432333321223344323331434343341444445333334544342333433445243234313242143323334423344 -3232223321323342226323323233222222212232132332232332421223231121322212332222222232332234232222312323 -2222333434132242434452263333534214233423132422324114425234322333332444344424123342333364343434443343 -5374333633333334633495383324363537333442234333385923333572743533233554933133733321842323833535557553 -4242442342422424678856843326322614244564442583144844444444447416548323553484424524426383559294424833 -9778788898888888448587667565656957386848788679796777548543967864848777396858954867766869868536494478 -2354324323233415233213313231455334252323352233333325522233255313273321225222432234343233434322333333 -5293275569488466646327663542365427595662553666675283269253243654693673447643473555346493376263496343 -3654443642356244424444432436435483123434234325543351434354232423434241244142442333344447234442132242 -7357554755656345654654466665766327765656773545575547346666353473567765755565486465643453687637767645 -3867446236343765665916363463367436446845685456774383262353663265735688344877213332768934452954633548 -7223817644277837332338637644236566637662556865422734535533763262624317752327735325777226847466463433 -4324322254342323222323321332243232234312232122232232422333245131233212331223222132327224233262425241 -2233233422143132323423232235323113223433333532333123326314241355223243333323333332334434232223324233 -4323325123234337353734333363331323323133463343346633321433333833523134365333734354322433333353322343 -2422511242222113222222222213442222216222134232422224322721322222215423354232742522224233223221231222 -1434439443432121243433426434514444621262442144434542693422344223592766144686444441442426513435324464 -2643249423111122355433422555223226222354536133421125426862263222152128244232222222232342324142324262 -2223213333442421133733244236424242233412332224212212322242331223324214312422424242222345542253243124 -4444331535354243342241424632373344442432354732572336223574355525523443141353235765453424344513163523 -2232422113412233542222336222634233325533243232343723234512263322245622392522222122431321542151675324 -2646435664294353444239647754563765233533492375655726563636562226233413666251853336443442534637862611 -1365334352534463233853244244447233464323134144342713444443415414122324363212422425154643224832422445 -4125222122322152222242522232122251852522482431222735272222223512534522252112631132316212224333292538 -3545442734445256355323452333416433324332432533434333434533354414443431355243533144414344324223546437 -5456255548434554453544545535464555555555554555555376565585654556566554625542554554454555445445555554 -2662232542368914455372434156445865225522442226633622264272226627355531265321662464167554482565528253 -2217512156222213322422323211332332123223322333121223221232322222222213212122123238121221342432222241 -6636635333433338465343436637326434534333332364332656241332317363644453333334534355355436245313335336 -1211214224331212431131443333232332334111114313334422421121413114412112442312412333341231313334156789 -2225225222463241226223222121222223241122222242212221121524165522261722252222236122212214245322224224 -1154466125124146613666336635343453136425552516663164361666653234524153566222246116212334416266342789 -2222223254222223133223612613626332212252322222223333533233212223235333221931221216212235223223221316 -3223232262222322521242422132412222224262312223222122142222251252322322912142552221332422222522212322 -1234211432332312441294263217246222235237432322143423442243238433123623333322222223532233543235313435 -7354433221442741131481643423166325788343241648362225637462185114568788838657474367713635528358612249 -3531222232322312272112233222266322342332413422342443322322222443232654443253422234421332122322422322 -2224223222331343323222213333232231226633131233122224324312222133222272223323312322223112233214423221 -3243432335353321454342445335222413245555253224321242332221331551245321213555421443534453233214316789 -2232752256254221832772222221728232252245121122228234118227746512242346222433252527123822251522122222 -3446392523453333485732453333342346453544231316443424345273242334256162662453534872351424324366334744 -4665622635345544266213636436352633555545666352776362366236262623465644635536513649523442556556465632 -3435332433115232433414131222121232333634232123142534323343334113323123123323332223243333234343334323 -5654436332363424253334544434452243344344334444424233526334433421445635444444241514474544546434636324 -1222222522322221222223122231222232232222222322111123222322122222426522222123422122252133121622524223 -4135552233812133622643253422346234842833524231463234213124114161413481644228152535356226539454242644 -2232332324222352233232525232324423224331226163322225552323233324222222134222312223322321344232355312 -1424432221322373332226551522322522533455644362363343521552143362545312445753247545463746423335714345 -1313233332322422112332332322313223223222232422532144512722343112223424122332323122233323332523322322 -2233452253222333233325243242325251145426443332333553333332252113223213533326334272513533523112423823 -6442482522332231675353545563223461551544538366355564223253433454584554134435355454883467233535835536 -4613533323333723223354433333333663233333223434332343334332433333262333132236333232342332413323336325 -3833424332234332323322334432382313333333333321332433344595321323333712881254124333324335644416524334 -5434455462444444454423432246462435322346352545674644732544445353254635545152511554444463546535425562 -3433632245332663254252332424412422342422323432322143225236254133434323121317853722462235337336733345 -3523312232124473334633534362233333383341335223445433723344434333353346534343533417466344242542425233 -6231462241423246233464342325333322226345234332642441424426234133334624225441543233234341314233341233 -2233343343222535221613433233332512328421222521323552332233322342223423633223923222216232422352354313 -4128672332311974453211324464334889141452325743645563941343137244753754125662423735287453264534733323 -7212147222213242227226515854462522221227225212225223242212722212223222222721227121255522535273216624 -1212322223244253114322312122222132221234422322322322333222322223322414223213312232232222232251312132 -3226212222222222212521212233323393323132221548331234212262262722326223332711432232813222742222322212 -4235542222432344241444452225824255626343344245255412241333149232132353314425222222234223452342453227 -2222212224222232521222421221223355224211244212242122222122424221122235222242215222221122222152232252 -4433444434742343644333443234677448754474244244344443375434434443446463442446436641474433744435443434 -5422124462663444224284258283764443923126326452728178274431162841666728223814228552632212686227222232 -2212222222222222222422221242212687446622222221624272156242322533123122221125226242114264252411342926 -3541363332635332355323325622434222623543232542132326521333233331253821231236322362262322235563292633 -2434475553444283442245335476223337733442336344442843363564344313322351883643714754422243437453275343 -7654777576755756375558565764786585867755363875845488545855287654535765799554559765756585949687752528 -1615443337342224224334845224685244242462342222446233561222342725423552345463212723252226264443422524 -2323232322221323323132222112232132222132222112223232222222322222212232322522131132223323121232332213 -4224551281331217224245225126722235442432128291221347557212222222322272272232242522721222223222522228 -4856292131361442232637322283463322224623233677523722323784872634337332626433283233352332718533343323 -1795555352585569635545552757414553643453454454458552254354555555449866538245455475348745344366843455 -7322122364432224726343222323122578562234913261214374252456247332224142225474324313342222212122115572 -4435421324254232213353549354524242245542422243422354412342144544324123233463353422523322425352743362 -4318362478377622383443443444387343543265733842584345444234574246434423344324533233446444344443337335 -3365332219431434443298426643419256426434366312633353531342232363334152242335645327299361412523723512 -2422322222111211314322223121222221224222322213222312221212223224232222612222322224222222223122222112 -7588639546866336644523574648832466515853265643334516132243665349464523228266655466533636258446431236 -2333223333231332312323261343423233312234633323332334343232323353355485254222233334423532333232429282 -3363262332321243222335113924323232222224522322251423323325623332322372212323235433242643322221324337 -6745337836638353733433733562255336525517164344433233346534398742364543724746433236476555346342823725 -3672552335413592234225342722792323262526214426314132426732224423228121355552542365422827325626552444 -2223215232222222312122212222222282124222221142222222544121112222225522285222233222212222222232753222 -3424494344555344514442344544535444454335434344353431254354443434434545454355853443334433534554334424 -2111757642313234235342477475452224444263272134222524222463444462124711612734223474343255232312343532 -5862435436745494268872328556652565359324374662398985838368642666553273865946854693592828656346654625 -6335553153352655234555664542323566356686143156536335325532443345433352465344235252561256353441231343 -7878467868599996638983717778997869758799678459796987977967588698895646769887947978656769769689777969 -4694555226324546443343653422226373433665544237365526562543232246437565314465666644264223514153553233 -2221312212122442224222327212352521123247231422212251253218323222222245346329414242122232222235222432 -2232132144212443442344335232352424335334212434222316242343243439221331242213223443433321521322414122 -5533235344464542525356546544356343435312534343533553535552352325445545425374444514136845321552324342 -3565451555545256676646566463634446453545662546555654466565346362879465546766875456536644553573636666 -5442754535533376438377167465643443342576361333628832424474244333423238414564835363237333642545234354 -3322222213123121224422422212123423242221332422252215252222222222222122151221222241531221132222423222 -2335324545375535328131143535435542533433255933475333533353548325344433524343544375835863435344234538 -5225425663253335134346342224346375366124562444365553625666323233212241335363144262222531334552456523 -4463843533355591592683435426554442124445642535454285539643533536363354994447353334455845559553322537 -2443399755289963644484646653374828873575337455297295863464453464786654346741846414734343645627446445 -3332222122425323322252223332322245242232242234224132222224225224222222242323211223332115252232322214 -6286828345337366778654755548856953666878254465467347768495547567264834546678443877468847287756766876 -5652122222225221226232215211721222124322222332322422122222211131232223332512223222221522222263412122 -2222247526253212242412226213243222252212551425224522225212236231242273122423222622221151131322764223 -3333334433335233233314313232338333333234333342333234423333333343455442323432337343333363143332354235 -3423322223423212322223332232411232422223222163352622423323231222323423584323222432312223222323362322 -3333223222313231232321223232122223222232332222122222231223224133332231241323232222223212233233236222 -8425742297277827443138421122242442393683479279267917345246137444342933233342324822722383748663964232 -2332121252211321343231551242323222225422222223332222322321253171233233424223225233223124314244333554 -5212422522532212222623522132253334233233352521322235323242222222322225322333422223243426122245352333 -1324412526722113732664132732322224432315424722262621552723623535124271612222422245428324413322225745 -6233229252332287292221372222322117212822822254432141122222126122322221124212282122243222386623121223 -4231334313213432325123423553231112122422221322235154431262234322122325132241212233615223132323333223 -2222252233922242214322125333232221643223624257251323223514934145143221622482523222223923142214222531 -2141213231342533333422322243424212345342232423271433223113362422322239732321173163336522242232123352 -1221332222122321221341251222213222212222222222131225212223522212122222222213221622122221212222232222 -2413352642524533236453532332125422432222446252422142131135426233542263512353164312442155342552422312 -4763763576552545457446472944544453445364456347465744343555425423645545556543654454434455355527356538 -5335625423424324535343473244451334353573556852452542241534455425545222615243142533495452532254334575 -3233313342332233222331353332332343323332223232333323363323313331323323343323333333333133143333333133 -3322323322322133221222213332223232432323332221321341323323222222132331222123232323224232232223423232 -1435334343435344434345542354243553415311424412534454232472433235413545532234334254332354438245537531 -2224221223222122222613142212232122222222221422222222122226212232221222352212222213332125322222322222 -3435437244334874486443447459434433862443934736834763333317446645844633443346435436444246447641464783 -6113523477237161223662214744474262113471466745545571375562327337471212271562344245571715354134765489 -6324232422232432112141225242322224244412322241222212224232332224223222212235253321222222322223223222 -5354246426452233144425625234523261353533443355554231185535445553545554545533423154534331335354255344 -2421285221225262359116136645242231253542422833542416243351522342652265322122232222232231422425452334 -2332527336313325122213211173152342253323236332532334134444217524221422355322123232622246113314444243 -4563567346559357662546445354725456757314637441766647657654714564645776549754575746674665776476436357 -5343224323222322223432452232536313121322433223223432331214232323235352313231232225122223553334362322 -3123334341233323233123233313663233232332233233332312421142571233223422634362122333333292116333222232 -2343444645235752242433223433255333243333335333925533535334334435563342315234253542543382443533444334 -1213421242322232421332222121231227123221222222222223222222322222212212234312222116232222222422212222 -2225222263314932322132423311223424122322224332232223433222222454322223346422222231223324223222323222 -2343343344443412212444443444833434444364444333444344334444349443444432434553322634473253342334445423 -3634333247256444467346255434745526257323566444424244244447413374673775224243253213336445353773732565 -5253346336436423565232263346838233336422334423661322432434433363534733334437543344344634434439434453 -2753445676625843555534776876555247667428557664243735457776754553427876646616644267454232337424744677 -5274646476634744354566541325666563662366554655655753542554663533633522164355655646436336685535522123 -3222222212222211211322212225122222252212233221262132222211112313222322122232122222232222222223162122 From c370f1c38112195e9caf135a46e98b1656549858 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 18:58:50 +0000 Subject: [PATCH 09/15] Delete 2025/04/kylepritchard.input --- 2025/04/kylepritchard.input | 138 ------------------------------------ 1 file changed, 138 deletions(-) delete mode 100644 2025/04/kylepritchard.input diff --git a/2025/04/kylepritchard.input b/2025/04/kylepritchard.input deleted file mode 100644 index 4010d84..0000000 --- a/2025/04/kylepritchard.input +++ /dev/null @@ -1,138 +0,0 @@ -@@@@@.@@@.@.@.@.@.@@@.@..@.@@@@.....@@.@.@@..@@@..@@@@@@@@..@@@.@.@..@..@.@..@@.@@@@@@@@.@@.@@.@@@@@@.@@@..@..@@@@@.@@@@@@@@@@@@@@@@.@@@.. -.@@@@.@..@@..@@@..@@..@....@@@.@@@@@@@@..@@@@@@@.@@...@.@@..@@@@..@..@...@.@@@..@..@@.@.@@..@..@.@@@.@.@@@.@@..@.@@@@@@@.@@.@@.@@@.@..@@@@ -@..@..@@..@@..@@@.@.@@.....@@@@@.@@..@@@@@.@@@@@@..@.@@.@@@@.@@...@@..@@@@@@@.@.@@@@.@.@@@@@@.@@@.@@@@.@..@@@.@@@@@@...@@..@@@..@.@@.@@@.. -@@@.@.@@@@@@@.@..@.@@@.@..@.@@..@@@@.@@@@@.@.@@@.@@@@.@@@.@@@@@..@@@@.@@..@..@@@@@@.@@.@@.@@..@.@@@@@@@@.@@@@.@..@.@@.@...@@@.@..@.@@@@@@@ -@@@@@@.@..@..@...@.....@.@@@@@.@@.@@@@@..@@.@@.@@.@.@@@.@@@@.@@@@.@@@@@@@.@@.@@.@..@@..@.@..@.@@.@@@@@@@@.@@.@@..@@.@@..@@@@@@@@@@@.@@@@.. -.@@@@@@...@@@.@@@@.@@@@...@.@@@..@@@@@@.@@@@..@.@.@@.@..@.@@@.@.@..@.@@.@@@@..@.@.@..@@@@@@@@@..@.@.@@@@@@.@.@@.@.@....@@@@..@.@@...@@@@@@ -.@@.@@@.@@.@@@.@....@@@@@@@@@@.....@..@..@.@.@@@@@..@@.@.@....@@.......@.@@@@..@@@@.@@.@@@@@@@.@..@.@@@.....@.@...@@@@.@@@..@.@@@.@@.@@@@. -@@@.@@.@.@@@@.@..@@.@.@@.@.@@.@@@.@...@@@@@@..@@.@.@...@.@@.@@......@@.@@@@.@.@@@@.@..@@@.@..@@@@@@.@..@..@.@.@@@@.@@@@@@@@.@@@@.@.@...@.@ -.@@@@@@.@.@@.@@@@@@.@.@..@..@@@@.@@.@.@..@@.@@..@.@..@@@..@@@.@.@@@.@@.@.@@@...@...@...@@@@@@@@@@@.@@.@@..@@@..@@.@@@.@@.@.@.@@@@@@@@.@..@ -@@.@@@@@.@@@...@@.@@..@..@.@@@@@@.@@@@@@@..@@@..@.@@@@@@@..@.@.@@@...@.@@@@@@@@@.@@.@@@@@@...@.@@..@@@.@.@@@@@.@.@@...@@@@@.@@..@@@.@@@... -.@..@@@@..@@.@.@@@@.@@.....@@@..@@@@.@@.@.@.@@@@@..@.@..@@.@@.@..@@@@@@.@@@@@..@.@@@@.@@@.@@@@.@@..@@....@@@@@@@@.@@.@@@@.@@...@@@@@@@.@@@ -@.@@...@@.@..@@@.@@@...@@@.....@@@@@@@..@@@@.@....@..@@@@.@....@@.@@..@.@@@@.@@..@@.@@..@@@@..@@@@@@@@@@@.@@..@..@@..@@.@@@@.@@.@.@...@..@ -.@@.@..@@.@@.@@.@@@@@@@@.@.@@@@.@@@.@@....@@@@.@@.@..@.@@@@@@@@..@@@@.@@@@.@.@@.@@..@.....@@@.@@@@.@@@@.@@@.@@..@@@@@@@@..@@@.@...@@@@.@@@ -@.@...@@@@@.@..@@...@@..@@@@@@..@@@@@@@.@@@@.@@..@@.@@.@@@@..@@.@@@@.@.@@@.@@.@@..@@@@@@@@@.@...@@.@.@.@@...@..@@@@.@@.@@@@@@@@.@...@@@.@@ -.@@..@@@.@@.@@.@.@..@@.@@.@@@.@@@...@.@@..@@@..@.@@@@@...@..@@@@@@.@.@.@.@@@@@.@.@@@@@@@@@@@@@..@@.@@@@@@@@@@...@@.@@.@@.@@@....@@@@.@@@.@ -@@.@..@@@@@@@@.@@.@@@...@.@..@.@@.@@@@.@@@@@@@.@@@@.@@@@.@@@@@@@.@.@@@@@.@@.@..@@..@....@@@@.@@@...@@@.@@.@....@.@@@.@@@.@..@@@@.@@@@.@.@. -@@@..@@@@.@@@@@@.@..@..@@@@@@@@@@@..@@@@.@..@@@@....@@.@@.@@@@@.@@@..@.@@.@..@..@..@@.@.@@@.@@@@@.@@@@@@@@@.@.@@..@@@...@..@.@@....@@...@. -@.@@@@.@@.@.....@@@@.@..@@@@..@@..@.@@@@@.@@.@@@.@...@.@........@@@@.@@@@@@.@.@@@...@@@@@@@@.@@...@@..@....@.@@..@.@@@@@...@..@@.@@@.@.@@@ -@@...@@@@@.@.@@@@@@@.@@@@@@.....@.@@@@@@..@@@@@@@@@@@@.@@@.@@@@@@@@@..@.@@.@@.@@@.@.@......@@@.@@@@..@..@@.@.@@@@@...@@.@@@@@@@@@@@.@@..@. -@@.@@@.@@@@@.@@@@@@.@.@@..@....@.@@@.@@@@@@@@@..@@@@.@@@@@..@..@@.@@@@.@..@@@.@@@@@@@@@.@@@.@.@@@.@@@@@@@..@@.@....@.@@@....@@@@@..@.@@@@@ -@@@@.@@@@@..@@@@......@@@....@@@@@.@..@@.@@@@.@@@.@@@@.@..@.@@@@.@@.@@@.@@@@@@@.@@.@@@@@.@@@.@..@@@@..@@@...@@@@@..@.@...@@@.@.@@@@.@@.@@@ -@@.@@@.@.@.@@.@@..@.@...@@@.@...@...@@@.....@@@@.@@@@.@@@@@.@..@@@.@.@@@.@@@.@....@@@@@.@@@@@.@@@.@..@@@@@@@.@...@@@@@@@@.@@@@@@@.@.@@@@.@ -.@..@@.@.@@.@@@@@@@..@.@@@@@.@@@@@@@@@@@.@.@.@@@@@@@@@@@.@@.@@@..@..@@@..@@@@@@@.@@@.@@.@@..@..@@@@.@.@@@@@@.@.@.....@.@@@@..@@@.@@@.@@@@@ -@.@@@@.@.@@...@@@@.@@.@@@@@@@.@@@..@@.@@@@@.@..@@@@@@@@@.@.@@@..@.@@@@.@@@@@@@@@..@@.@@@@.@.@@.@@.@.@@@@@..@@@..@@@.....@..@@@.@......@@@. -@@@@@@..@@..@..@..@..@.@...@@.@@@@@.@@..@@.@@@@@.@..@@@.@.@.@.@@@.@@@@..@@.@@@@@@.@.@@..@@@@..@@@@@@.@.@.@.@@.@.@@@.@@.@@.@@@@..@.@@@@@@.@ -@@.@@..@@.@..@@...@@@@@@@.@@@@@@....@@@@.@@@@@..@@@...@@@@....@.@.@@@@@....@@@@@@@.@@@@@...@@.@@..@@@.@@@@....@.@@@@..@.@....@@@@..@@@@.@. -@.@.@@@@.@@@@@.@.@@@@@@@.@@@@@..@@@..@@@.@@@@@@..@.@@@@@@@@.@@.@@.@@@@@@@@@.@.@@.@@.@.@@..@@.@@@@@@@@@..@@@@..@.@@..@.@.@@@..@...@.@@@@.@. -@....@..@.@..@@@@@@.@..@.@@@.@.@@.@@@.@@.@@@@..@.@@@@@@....@...@@@@@..@.@@@@@.@.@.@.@@@..@.@..@@@.@@@.@@@.@@..@.@@@@@.@@@@@@@.@@@@.@..@@@@ -@.@@.@@.@@@@...@@@@@@@.@@.@@@@@....@@@..@@.@@@.@@.@..@.@.@..@@@.@.@.@...@@@@@.....@.@@..@@@@@..@@.@@.@@@@..@@@@.@@.@@@.@.@@@.@@@.@@@@@@@@. -@@@...@..@@@@..@@.@.@@..@.@@...@@@@@@@.@@.@@@.@@.@..@.@@..@@@@@@@@@@@.@@@@.@@.@@@@@@@.@..@@@.@@@@..@@...@..@.@@@.@@@@.@@@@@@@@.@....@@.@@@ -@@.@.@.@@@@.@.@@@.@.@..@@@.@.@@@.@.@@.@..@@@@@@@.@@.@@.@@@.....@@@@@@@@@@@@@.@.@..@.@@@@.@.@.@@@@@@@..@@@@.@@.@@.@@.@.@.@@@@..@.@....@@@@. -..@.@@@@@.@@.@.@@@@@@@@@@@@@@@@.@@@@@.@@@.@@@@....@..@@..@@@@@@@@@@@@@.@@@.....@.@@.@@@@..@@@@@.@@..@..@@.@@.@..@..@.@@@@@@@@.@..@@@..@@@@ -@..@@@@@@.@@@@@@@@@.@..@.@.@..@@...@@@.@@@.@@@@.@.@@@@@@@@.@.@@..@@@.@@.@@@@@.@.@@@.@.@@.@@@@@.@@.@@@@@@@.@@@@....@@@...@.@.@..@...@@@@@@@ -.@@@@...@.@@.@.@@@@@@@.@@.@@@.@@@@@@@.@@@@....@@..@.@@@.@@@@@@.@@.@@@@@@@..@.@@.@@@...@.@@.@.@@.@@@@.@@@@..@@.@@@@@.@@@@.@.@@@..@@@@@.@@.@ -@.@@@@......@..@@@@.@@..@@.@@...@.@.@@@@@...@@@@@.@@@@@@...@@.@@.@@@@.@@.@@..@....@.@@@.@@.@.@@.@@@@@@.@.@@@@@@@@.@@.@@@.@.@@@.@@..@@.@@@@ -@.@@@@@@@@..@@....@@@@@@.@@@.@@.@@@@@@...@@@.@.@@@@.@.@@@@@@@@.@.@@@@@@@@@..@@@.@@@.@@.@.@@@@@@@@@...@@......@@@@@@...@@.@@@@.@.@@..@@.@.. -.@@@.@@..@@@.@@@@@@..@.@@.@@@@..@@.@.@@.@.@@.@.@@@@.@.@.@@@@@..@.@.@@@.@.@@@@.@@.@...@@.@@@@@@@@@@@.@.@@@@..@@@@@@@@@.@@@@@@@....@@@@..@.@ -.@@.@@@@.@@@@@@@.@.@@@..@@@@@@....@@@@@@.@.@@@@.@.@@@@..@@@..@..@@.@@.@@@.....@@@@@.@@@..@@.@@@@.@@.@@.@@.@@.@.@@@@@@.@@@@@@@@@@@@@@@..@.@ -.@..@@@@......@.@.@.@@@@@.@@@@@...@..@.@..@@..@@@@.@..@@..@.@..@@@.....@@.@.@@.@.@.@@....@..@.@.@@..@@@@@@.@.@.@@@.@@.@@@@.@.@@..@@@@@@@@@ -@.@@@@..@@@@@.@@@@@@.@@@@@@...@@@@.@@@@@..@.@@@...@.@.@@@@@@.@..@@.@@@@@.@@.@....@@@.@@@.@.@.@@@@..@@.@@@@@@@.@@@@@@@....@@@@@@@@@@@...@@. -@.@@@@@.@.@@@@.@@@.@@..@@@.@@..@..@@..@@..@@@@@@@.@.@@@....@@.@.@@.@@@@@.@.@.@@.@@@@...@.@@@@.@@.@@@.@.@@.@@@@@.@@.@..@.@..@..@..@@..@@@@. -.@@.@@@@@@@@@@.@@@.@.@@@.@@.@.@@@@.@@@@.@@@.@@@@@.@@@@.@@...@@@@@.@@@...@@@@@@@@@.@@@@@...@@.@@@.@@@@@@.@@@.@.@.@@@@.....@.@@@.@@.@.....@@ -.@@.@@.@@@@@@...@...@.@@.@@@@.@@@...@@.@@@@.@.@.@..@@.@.@@.@@.@@@@.@@@.@.@@@.@@@@@@@@.@@@@@.@@@@@@@@.@@@.@.@@...@....@...@.@@.@..@@@.@.... -@.@.@.@@.@@@.@@@@@.@.@@....@@@@@@@@@.@@@@..@.@@..@@...@@.@@@.@@@.@@@@@@@@.@..@@.@@..@.@..@.@.@.@@.@@.@@@..@@@@....@@@@.@@@@@@.@@@@@...@.@@ -@@@.@.@@@@.@.@@.@.@@.@@...@@....@@@@@@@@.@@@.@@@.@.@@@.@.@@@@@@@.@@.@.@@...@@@@.@@@@@@@@.@@@@..@@@.@@@@@......@@...@..@..@..@.@@@@@..@@..@ -@@.@..@@@@@@.@@@@@.@@@@@.@.@@@@@@..@.@.@@@@.@@@@@@@@@@@@@.@.@@.@@@@..@@.@....@.@@@@@@.@@@@@@.@...@@.@.@@.@@..@@@..@@@....@@@@@.@...@..@.@@ -@..@@.@@@..@.@..@.@.@.@@@.@..@@@..@@..@..@...@.@@@.@@@.@@@@.@@.@..@@@@@@@@..@..@.@@.@@.@@..@@....@...@.@@..@@@@@@..@@@@.....@@@@.@@@@@@.@. -@@@@@.@@@.@@@@.@@@..@@@@@@@@@@@@@.@@@@@@.@.@@.@.@.@@@@@.@.@@@.@@.@...@@..@.@@.@.@...@@..@@.@@@@@@.@@.@@@...@@@..@@@.@@.@@@.@..@@.@.@.@.@@@ -@.@@@..@@.@@.@@@@@....@@@@.@@.@....@@.@@@@..@...@@@@.@@.@@@@.@@@@@...@@@.@@@@@@@@@..@@..@@@.@@@@@..@..@@@@@..@@@@@@@@.@..@...@@@@.@@@..... -...@@...@@.@.@@.@@@.@@@@@@@@.@@..@@@.@..@..@@@.@.@@.@@.@@.@..@@@@@.@@@@@@@@@@@@@@@@@.@.@@@..@.@.@...@.@@@..@.@..@@@@..@..@..@.@@@@.@@.@@.@ -@..@@.@@@@..@@@@@@@@@@@@@@@@.@..@@@.@.@@@@.@.@@@..@...@@@..@@.@@..@@@.@@@@..@.@@@@.@@.@@.@.@.@@.@@@@@@..@@..@@.@.@.@..@@...@@@@..@@@@@...@ -@....@@@@.@@@@@@@@@@@@@.@.@@@@@@..@.@@@@@@.@@.@@@.@@@@.@.@@@.@@@@@@@@.@.@@@...@@@@@@.@@@.@@@@@@@@@@...@...@.@@@@@@@@.@.@@@..@.@@.@@@@.@@.@ -.@@......@.@@.@.@@.@.@.@.@...@@..@@@@.@.@.@..@@@@@.@..@@.@.@.@@@@@.@.@@..@.@@@@@.@..@@@@@@@@@@@.@@@.@@@@@.@@.@.@@.@@@@@@....@@@@@@...@@@@. -...@@@@.@.@@@@@@@@..@@..@@@@@..@.@@@.@..@@@.@@@.@@@@@@..@.@@@@...@.@@..@.....@@@@..@@@.@.@@@@.@@@@.@@..@@..@@@@@@@@@@@.@@@@...@@@.@@@@@@@@ -@@@@..@..@..@@@@.@...@@@.@@@.@@@@.@@@@.@@@.@@@..@.@.@..@@@@@...@...@.@@@@.@..@@@@@@@.@@.@..@@@.@@.@@.@@@.@@.@@@@@@.@@@@..@.@...@@@..@@.@@@ -..@.@@@@..@@.@@....@.@.@@@@.@.@.@@@@@@@...@..@@.@..@.@@.@@@@@@...@@..@@@@@@@@..@.@.@@@@@..@.@@@@......@...@@@@..@@@@.@.@@@@@@.@@@.@..@@@.@ -@@.@.@.....@@..@@@@...@@@.@@@@@.@@@@@@@@.@@.@..@.@....@@@@@.@...@.@..@@@@@@@.@@..@...@..@.@.@@@.....@@@@@.@.@.@.@@@.@@.@.@.@@@@@.@.@.@@..@ -@...@@@@..@@..@@@@@@@.@@@.@@@.@.@@@@@@@@@@@.@.@@@.@@@@.@@@@@@@@@.@@@@@@@@@.@..@.@@@@@@@..@.@@@@@..@@@@@@..@@@..@@@@@@.@@@@@@@@.@@.@@.@@.@@ -@@..@.@@@...@@@@.@@.@@@@.@@@..@@.@@...@@..@@..@@@@.@@@.@@..@@..@@@.@..@@@...@@.@@@..@@@..@.@.@@@@@@@@@@@@@..@@@@@@..@..@@.@@@@.@@@@@@.@.@@ -@..@..@@.@@.@@....@.@.@@@@@@@@@@@@@@@.@..@@..@@.@.@@..@@@.@@.@.@@.@@@@@@@@@..@@.@@.@@.@.@.@@..@@@@@@@@@@@..@.@@@@@@..@..@@@@@@.@@@.@@@.@@@ -@@@@.@@@@@@.@@@@@.@@..@.@@..@@@@@..@@..@@@.@@.@.@@@@..@@@@@@.@@@....@..@.@...@@@@@@@@@..@@.@@..@.@@@@@.@.@@.@@@.@.@.@.@@@@@@..@@.@@@.@@@@@ -@@@@.@@..@..@.@@@@@...@@..@.@@.@@@@.@@@@.@@@.@....@@@...@.@@.@@.@..@@@@@....@@.@...@@.@.@@.@..@..@@@...@.@@.@@.@@.@.@.@@@.@@....@@@.@.@.@@ -@.@@.@@.@@@@@@@@.@@@@@@@@@@.@@.@.@@@@@@.@.@..@.@@..@@@@...@@..@@@...@..@@..@@@.@@.@@@@.@@@.@@@@@@@@@.@@@@@@@..@.@.@@..@...@@@@@.@@@.@@@..@ -@.@@@@@@@.@....@@.@.@@.@@@@.@@....@.@...@@@.@@@@.@@......@.@@.@@@.@@@@@..@.@@.@@@.@@.@.@@.@@@..@@.@.@@@@.@@.@..@@.@...@@.@@@@.@@..@.@@.@@@ -..@@@@.@..@@@......@@.@@@@@@@@@@@@.@@@.@@@.@@.@.@@@.@@....@.@@.@@@@..@..@@..@@@@@@@@.@.@.@.@@@..@.@.@@@@@@@@@@@.@@@@@..@.@.@@.@@....@@.@@@ -.@@@@@....@..@@.@@@....@@..@.@@@.@.@@@@@@.@@@.@@...@...@.@@@@@@.@@.@...@@@@@@@@....@@@@@...@@..@....@..@...@@@..@..@@.@@@.@@@@@@@.@@@@@.@@ -@@..@@@.@.@@@.@.@@.@@@@@...@@@@@@@@.@@.@..@.@..@.@.@..@..@@@.@@@.@.@.@@@.@.@.@..@.@@@.@@@@.@@@.@@@@..@@@@@@@@@@@@@....@.@@@@.@@..@@@.@@@.. -@.@.@.@@.@@@@@@.@.@@@@@@.@@.@@@@@@@@.@@..@..@@@@..@..@@@.@@.@@@.@@.@.@@@@@.@@@@.@.@@.@@.@.@.@.@@..@@@.@@.@.@..@..@@.@@@@.@@@.@..@@.@@.@@@@ -@..@...@@@.@@@.@.@@@@.@@@.@.@@.@.@@@.@.@@..@@.@@@@..@@@@@.@..@.@@@.@.@@@...@@@..@@.@@@@@@@@..@.@..@.@.@@@..@@.@@@.@.@@@.@@...@@.@.@.@@@@@@ -@@@@..@@@@@..@@@@@@.....@@@...@.@@@@@...@.@@@@@.@@@..@@..@@@@@.@.@.@.@.@@@@.@@.@@@.@@.@@@..@.@@@.@@.@@@...@@@.@@@@@@.@@@@@@@@@@..@@....@.@ -@@@@.@@.@@@.@...@.@.@..@@@@@@@@@@.@@..@..@@@@@@..@@@@@@@@@.@.@@.@@@@@.@@@.@@.@@@@@.@..@@@@@...@..@@@@..@...@..@@@@@.@@...@@@.@@@@.@@.@@.@@ -.@..@.@@.@@@@@@@.@@@@@@..@@@@@@@@@..@.....@.@@@@@@@@@@@@@@.@..@....@.@@@@@@@@@@.@@@.@...@.@@.@...@..@.@@....@@@.@..@.@@@@..@@@@.@.@.@...@@ -@@@@...@@@..@@..@@@@.@@@@@@@@@..@@.@...@@@@.@.@@@@@..@@@.@..@@.@@@..@@..@@.@@@.@..@@@@@.@.@@..@@..@@@@@@@@@@@@.@@.@@@..@@@@@@.@.@@.@@@.@@@ -.@@@...@..@@@@@@.@@@..@@.@@.@@@@.@@@@@@@@@@@@@@@@.@..@@@@.@@..@.@...@..@@@@@@@@@.@@@@@.@@@.@.@@.@@@@@@@@@@.@.@@.@@@...@@@.@@@.@@.@@.@@@@@@ -@@@.@..@.@.@@@.@.@.@@@@@..@@@@.@...@.@.@.@..@..@@@...@@@@.@.@@@@@@@@...@.@.@@@@@@.@..@@.@@@..@@.@@.@@...@@@@@@@@@@@@.@@@.@.@@@@@@@@@@@@@@. -@...@..@..@.@@.@..@@...@@@@@.@@@@@@.@@@.@@@.@@.@@@@.@@@@.@..@@@@@@.@@.@@@@@..@@@..@.@.@.@@@..@@@@@.@@.@..@.@@@.@.@@@.....@@@@.@@@.@@@@@@.@ -@@.@.@@@@@@.@.@.@.@.@@..@.@@@..@@@@@@@.@@@@@@@@@.@..@@.@@.@@@.@@@@...@@@@..@@..@@.@@@@@@@@@@..@@@@@...@.@@@@.@@.@@@.@.@@@@.@@....@.@@.@@@. -@@@@.@@@@@@@@@@@.@..@@..@@@.@@@@.@.@@..@@.@.@@@.@.@.@@@..@@@@..@.@@@..@@.@.@@@@@.@.@@@@@@@@@.@.@@.@...@....@@.@@.@.@@...@@@.@@@@.@@.@.@.@. -@...@.@@@..@@@@@.@@@@...@..@@..@.@@@@@.@@@@.@@@.@.@@@.@@....@@@@.@@..@.@@@.@@@.@@@..@.@@@@.@@@.@@@@@@.@.@@@@@@@@.@@..@@@@@@@@@@@.@@.@@.@@@ -.@@.@..@@@@@@@..@..@@...@.@@@@.@@@@@.@.@@@@@.@.@@.@@.@@.@@@.@@@@@@@@@.@.@.@@@@@@...@@@.@@@..@.@...@.@.@@@@@@@@@@.@.@@@@.@@.@..@@@@@@@.@@@@ -@@@.@@..@..@@.@.@.@@@.@@.@@@..@@.@@.@@@.@@.@@.@.@@@@..@@@@@@@@@@@.@..@@@.@.@@@@@@.@@@@@@@@@@..@.@@@@@@@.@@@@.@@@@.@.@@@@@@@@@@@..@@@@@@@@. -@..@.@@@@...@.@..@@..@.@.@.@@@..@@@..@@@.@@@@@.@@@@@.@..@@..@@.@@@@..@....@@@@@@.@@.@@.@..@@.@.@@...@...@@@...@.@@@.@@@@@@.@@@@@..@@...@.@ -@@@@@@.@@@@@@@.@.@@@@....@@.@.@@@.@.....@@@.@..@..@@.@.@...@.@@@..@..@@@@...@@...@@@..@..@@.@@@@@.@.@@..@@..@@@@@.@@@@@@@.@@@@@@@.@..@.@@. -@@.@.@.@@@....@@@........@.@@..@....@@.@@..@.@@@@..@@@..@@..@@..@.@@@..@.@@@@@@@.@@@..@..@@@@@@@@.@@@.@@@@.@@@@.@@.@@..@@@@.@@..@.@...@..@ -@@.@@@.@....@@@@@@..@.@@.@@@@.@@@@@@@@@@@@@@@@@@.@@@@.@.@.@@@@.@@@...@@@@@@.@@@@@@@.@@@@...@...@@@@@@@..@@.@.@@@@@@.@.@..@@.@@@@@...@..@@. -@@@@@.@@@@@@@@@@@@@.@@@@@@@.@@@..@..@@.....@@@@@@@@..@@@@@.@@@.@.@@@..@@.@@@@@@.@@@@@@@@.@..@@@...@@.@@@@.@@.@@@@.@@@@@...@@@@@@@@@@..@..@ -@.@.@@.@@.@..@@@...@@@.@..@..@@@..@@@..@.....@.@@@@@@@@@.@@.@@@.@@.@.@..@.@...@.@@@@..@@..@@@.@.@@@@.@@.@.@.@@@.@..@.@@@@.@@.....@@.@@@.@. -@@@..@..@..@.@@.@@@@@@@.@@@@@@@.@@.@@@.@@.@@@@@@@@@@.@.@@@.@@@..@@..@@@@@@@@.@@@@@@@.@@@@@..@@@@@.@@.@..@.@...@.@@@..@@@..@@.........@@@@@ -...@@@@..@@@@.@@..@.@.@....@@@@@.@@@.@.@.@.@@@..@@@@@@@.@.@@@...@.@@.@..@@@@.@.@.@.@@@@@..@@@@@@..@...@@@@@@@@@@@.@@@@.@@..@.@@..@@..@@.@@ -@@.@@@.@.@@@.@.@@@@@.@..@@@@@@@@@@.@.@.@@@@.@.@@@.@@@@@@@.@@.@@.@@..@@@@@.@.@@@@@.@..@@@@@.@..@@.@..@..@..@..@@@@...@@@@.@.@..@..@@@@.@@.@ -@@@@@.@@.@@@.@@.@@...@.@@@@...@@@.@@@...@@.@@@@@...@@@@@@@@@@.@..@@.@@@.@@.@.@@@.@...@@@.@@..@@@@.@@.@.....@@@..@@@@@@@@@@.@@@@.@@@.@.@.@. -@.@.@.@.@.@..@@@..@.@@.@@.@@.@@..@.@@@.@.@@@@@@@...@@@.@@@@.@.@@.@.@.@.@.@.@@@@..@.@@@@@@@.@@@@.@@..@.@@..@@..@@...@@@.@@@@.@@.@@@..@.@.@. -@@@@@.@@..@.@..@@.@@.@@...@.....@@@@.@@.@@.@@@@@@@@.@.@.@@@.@@@@..@@@@@@@..@@@@.@@..@@@@@@..@@.@@@@@.@.@@.@.@@@@@@....@@....@@.@@@@@@@@.@@ -.@@@@@.@@.@.@@@@@..@..@.@@..@@@@@@@@@@@@.@..@@@.@.@@@@@@@@.@@..@.@@.@.@@@@@@@@@.@@.@@@@@@..@.@@@@@.@@.@@.@..@@..@@@.@.@...@...@@@@..@@@.@@ -@@@@@.@.@..@...@@@.@@.@@@@@.@...@@@.@@@.@.@...@@@.@@...@@@@.@....@@@@@@@.@..@@@...@.@@..@@@@@.@@@..@@.@@..@.@@..@.@.@@.@.@@@@@@.@.@@@@..@@ -@...@@@..@.@@@@@@...@@.@.@@@.@@.@..@@@@.@@.@@@...@..@@@@..@.@..@@@@@@.@.@@@..@.@@.@@@@@@@.@...@@.@..@@@@.@...@.@@@.@@....@@@@..@.@.@@@.@@. -.@..@@@@....@@@@@@@@.@@.@@.@@..@@@@...@@..@@@@@.@@@@..@.@.@@@@@@.@@@@.@.@@.@@@@@@@@@@..@..@....@@...@@.@..@...@@....@@@@..@@@@@.@@@..@@..@ -..@@.@.@@.@..@.@@...@@...@@@@.@@@@.@@@@@@@@.@@.@@@..@@@@@@@@@@@.@@@..@.@@.@@.@@.@..@@..@.@@.@.@@.@@.@.@@@.@.@@@@.@@@@.@.@@@@@..@@.@.@@@@.@ -@@....@@@@..@@...@@@..@.@@.@@@.@@.@@@@@@@@@.@@@@@@@@@@.@@@@@....@@.@@@@..@.@@@@.@..@@@.@@@.@@@@@....@@@@@..@.@@.@...@.@@.@@@@...@..@@..@@@ -.@@@@@@..@@.@...@@@@@@@@.@@...@@@@@.@@@@@@..@..@@@@.@.@@@@@@@@@.@@.@@.@@@.@..@..@..@@@@@@.@.@@@@.@.@@@.@@.@..@@@@.@@@@@.@.@.@@..@@@@@..@@. -.@@@@@@@@@@@@.@@@.@@@@..@@@@@@@..@@@.@.@.....@@.@.@..@.@@@@@.@@.@@.@@@@@@@@.@@@@@.@.@@@@@@..@@.@@@@.@@.@@..@@.@@@@.@@.@@@@.@@.@@@@@.@@..@. -@.@@@@..@...@.@@@@@@@@@@@.@@@@.@@@@..@.@...@@@@@@@.@@@..@@@.@@@@@@....@.....@@@@..@@@@@.@@..@@@@@@@@.@..@...@.@.@.@@@@..@@@.@.@..@@...@@@@ -@@@.@@@.@.@@.@.@.@@@@@@@.@@@.@.@@@.@@@.@@...@@@@@@@@@.@@@.@@@@@.@@@@@@@@@@.@@@@@.@@@.@@.@@.@@@@.@@@....@@@@@.@.@@@@@.@@@..@@..@@@@.@@@@..@ -@.@..@@@.@@@@@...@.@.@..@@@@.@@@@.@@.@@.@@.@@.@@@.@.@@@.@@.@@.@@@@..@.@@@@@.@@@@@..@.@@@@.@.@.@.@@@@.@@@....@.@.@@..@.@.@@@.@@@@..@@@.@@.@ -@@@@@@@..@@@@.@@@@@@@..@.@@@@.@.@@@.@@@@.@..@@@@@@.@@..@@@@@@...@@@@..@@@.@@@@.@@.@@.@.@@@@.@@.@@.@@@@@@.@..@@@.@@@..@@@@@.@@@@@.@@@@@.@.@ -....@@.@@..@@.@@..@..@@@.@@.@@@.@.@@@.@@.@.@.@@.@@@@.@@@@@@@@@@@@.@..@.@@@@.@@@@@.@..@.@@..@.@@....@@@@@@@@@@..@@@@@@..@@@@.@.@@@@..@@@@@@ -..@@@@.@@@@@@@@@..@@.@.@@.@@@@......@.@@.@@@@@@.@@@..@.@@.@..@@@@@@@@@@@@.@@@.@....@@@.@@@.@@.@@@@.@@@@..@.@.@.@@@@.@@..@@@@.@@..@@@@@@..@ -@.@@@@@.@@@@@@.@@...@@.@@@@@@@.@.@@.@@@@@@@.@@@@@@@@@@@..@@@.@@.@@@@...@@@@.@@.@....@..@@@@@@@.@@@@@@@@.@@@.@@@@@@..@@@..@@@@.@..@@.@@@@@@ -.....@@@.@@@@@@@@@..@@@@.@@@.@@@@@@@@@@@@...@@@@.@@@.@@@.@@.@.@@@.@@.@@@@@.@.@@@@.@..@@..@..@@@....@@@@.@@@@...@.@...@@.@@@.@@.@..@@@..@@. -@@.@.@..@@.@@.@.@@...@@@..@@@...@.@@.@@@@@..@@.@@@@.@..@.@@@@@@..@@@@@@@@@..@@@@.@@@@@@@@@@@.@@@@.@@@@@.@.@@@.@@@@..@@.@@@@@@@.@.@@@@@.@@@ -@@@@.@.@.@.@@@@.@@@@@@@.@@@@.@.@@.@.@@@@.@..@@..@@@...@@@@@..@@@.@@@@@@.@@.@.@@.@..@..@@@.@.@@.@@@.@@@@....@@@@@@@@.@@.@@@@@@@@.@@...@@..@ -.@@..@.@@.@..@@@@@@@@..@@@.@@@@@@@@@..@@@.@@..@@@...@.@...@.@@@@@@@@@..@.@.@.@@@@@@....@@@.@@@@...@@@..@@@@@...@@@.@@.@@@@@@@@@.@...@@@@.@ -@.@.@@@@.@@.@@.@@@@@@.@@@.@.@@..@.@@.@@@@@@@@@@..@@@@.@@@@...@@.@.@@.@.....@@@..@@..@.@@..@@@.@..@@@@.@.@....@.@@@.@@@@.@..@@@@@.@@@@.@.@@ -.@...@@@@@..@..@@.@@@@@.@@@@@@.@..@.@@.@.@.@@@@@..@@@.@@@.@..@......@@.@@@.@@@@@...@..@.@.@@..@..@@@@.@@@@@@.@@@.@@.@@@@@@@@.@..@@@@.@.@.@ -.@.......@.@.@@@.@@.@..@.@.@@@.@.@@@@.@...@.@.@....@@....@.@@@@@..@@.@@..@@@@@@.@@.@..@@.@@@.@@..@@@.@@...@@@@@@@@@@.@@@@@@.@@@@@@.@...@@@ -@..@@.@@@@@@@@@@.@@@...@.@@@@@@..@@@....@..@..@@....@.@@@..@@....@@@@@@@@.@@....@@.@@@@@.@@..@@@@@......@@...@@@@@@@@.@@@@.@@@@@@.@@.@@.@@ -.@..@.@.@@@.@.@@@@@@@@.@@@@@@@@...@@@@@@....@@@@..@@@@.@@.@.@@.@@@.@@@@@@.@@.@@@@@@.@@..@@@.@.@@.@@@@@.@@@.@......@@@@.@@.@@@@@@.@@@@@@@@@ -...@@@@.@.@...@@.@.@.....@@@@.@.....@@.@@@..@.@@@@@..@@.@@...@..@@.@@.@.@@..@@@@@.@@.@.@.@@@@@@.@@@@.@...@.@@@@.@@@@..@.@.@@@.@@@@@@@.@.@@ -@.@.@..@@.@@.@@@@@..@.@..@.@@@.@@...@@..@@@@@.@@@@@@....@..@..@@.@..@@@@@..@@@.@@.@.@.@@@.@@@@@...@@@.@@..@@@@@..@@.@@@.@@.@@.@...@.@@@.@@ -@@....@.@.@.@@@.@@@@@@@@@.@@@.@.@.@@.@@.@..@@@@.@.@.@@..@@@@.@@@@..@..@@@.@@.@...@@@@@@@@@@..@..@..@.@@@@@..@@.@@@.@.@@....@@@@@@@..@@@@@. -@@@..@@@@@@.@@@@@@@..@..@.@@@.@..@@@.@@....@@@@.@.@.@@@.@..@.@.@@@@@@@@@.@@.@...@@@@@@@..@@@@..@@..@@...@@.@..@...@.@.@@.@@.@@@@.@@.@.@... -@@.@.@@@@...@@..@@.@@@@@..@@..@@@.@@@@..@@@@..@@@..@@@..@@@@@@@@@.@@.@@@..@..@@..@@@@.@.@@@@@..@@@@@@....@@@@@@@@@@@..@@..@@@.@@@@@..@@@@. -@@..@@@@@.@@.@@.@@.@@@@@@@.@.@.@@.@@@.@@@.@@@@@.@.@@@@.@@@@@@...@@@@@@@@@@.@@....@@@@..@.@.@@@@@@...@@.@@@.@@@.@..@@@@..@.@.@@.@..@.@@@.@@ -....@@@@@@@@@@@@.@@@.@@@@....@@@@@@.@...@@.@.@@@..@@@@..@@@.@..@@@.@.@@@@@@.@...@@@@.@@.@@@@.@@.@@@.@.@.@.@@@@.@@.@.@@@.@@@.@@..@@@.@..@@. -@@@@@@@..@@.@@@@@@.@.@.@@..@@@@@@@.@..@.@@@.@@@..@@.....@@@@..@.@@@@@@.@@@@..@@..@.@@@..@@.@@@.@@@@@@@@@@..@@.@@..@@.@.@@@@@.@@@.@@.@.@.@. -..@@@...@@@@....@@@.@@@@.@.@@@@.@@..@@@.@.@.@.@@...@@@@@..@@@.@@...@@@.@@@@.@.@@@@@@.@@@@@.@@@.@@.@@@@@@.@@....@@@@....@@.@..@@.@@@..@@..@ -@...@@@@@@@@@@@.@@@..@@.@.....@@@@@...@@@.@@@...@@@@@..@...@@.@.@....@@.@@@@@@@@.@..@@@@@.@@@@@@.@@@@@@.@@@@@@@..@..@@...@@@@@@@@..@..@@.@ -@@@@@...@@@@..@@@.@...@.@@@.@.@@@.@@@@@@@@@@@@.@@.@@@@@@@@@@.@@@.@@@.@@@@.@.@@@.@@@@.@.@@@....@@@@@..@..@@@@@@.@..@@@.@@@...@@.@@.@..@..@@ -@@@@@@.@@@@@@@@@@@@@.@@@@@.@.@@@@@@@@.@@.@@.@..@@@@.@@@@@.@@.@@.@.@@@@@..@@.......@@@..@@..@@@@.@@@.@@..@.@@..@.@.@@@@.@@.@@.@@@@@.@@@@@.@ -@.@..@.@@....@@@....@@.@@.@@@.@.@@..@.@@@@@@@.@@.@@@..@@@@@@@@..@@@.@@@.@@@.@@@@@.@@@..@@@.@@@@.@@.@@@@.@@@.@@@@@@@...@@...@.@.@@@..@@@.@@ -.@@@@@@@@@@@.@@@..@@....@@.@@@@..@@@@@@.@@.@@@@.@@.@@.@@@..@@.@.@@@.@@@..@@.@@@@.@.@@@.@...@@..@@@.@@@.@@@@@@@@.@@....@@@@@@@@@@@.@..@.@@@ -@@@..@@.@@@@.@@.@.@@@..@@..@.@.@@@@@..@@@@.@@@@@..@@@@@@@.@@.@@@..@@..@@@@@@@@@@@.@@@.@....@@@@@@...@@.@@......@@@..@@@@.@@..@.@@.@...@@@. -@.@@@..@@.@..@..@@@.@.@.@@@@@@@@.@@@@.@@..@@.@@@@...@@.@@@.@...@@@@.@@.@@@.@.@@@@@..@.@@.@.@@@.@.@@@@@.@@..@.@.@@@.@@..@..@.@@@@...@.@@@.@ -@..@....@@@.@.@@@@@@@@@@@@@@.@...@@.@@.......@@@@@@@..@@.@@@@.@....@@.@@.@@.@@@..@@@.@@@@@@.@@.@...@@@@@..@.@@.@@@.@@..@@.@.@@..@@@@.....@ -..@@@@@.@@@@@.@.@@..@@@@.@.@@..@.@@.@..@..@@.@@.@@..@@@..@@@@@.@@@....@@.@..@.@@.@@.@@..@@@@...@.@@@@@@@@@@.....@...@@.@@.@@@@@..@@.@@@.@@ -@..@@@..@@@..@@.@.....@...@@@@@.@@@@.@.@..@.@.@.@.@@@..@@@.@@@.@@@.@@@@.@@@@@..@..@@@@.@@..@@.@@@..@@@@@.@..@..@.@@..@@@.@@@@@.@@@@.@@@..@ -@..@@@.@.@@@.@@@.@@@@@.@@@.@@@@.......@.@...@..@@@.@..@@..@@..@@.@@@@@....@@.@@@@@..@.@@..@@...@@@@.@..@.@.@@@@....@.@.@.@@@...@.@@.@@@@.. -..@@@@..@..@@@.@.@@@.@.@....@@@@.@@@@...@.@@@.@@@@.@@@@@@..@.@@..@@@@.@.......@@@.@@..@@@.@@@@@..@@@@.@.@.@@@..@@@..@@.@@@@@@@@@@..@@@.@.. \ No newline at end of file From a5989c718b1883cebdca8dd17e95a1d21b2f213a Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 19:00:20 +0000 Subject: [PATCH 10/15] Change input file name Updated input file name from 'kylepritchard.input' to 'ids.input' in main function. --- 2025/02/kylepritchard.v | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/2025/02/kylepritchard.v b/2025/02/kylepritchard.v index 3af63f3..6e703e4 100644 --- a/2025/02/kylepritchard.v +++ b/2025/02/kylepritchard.v @@ -38,7 +38,7 @@ fn has_repeating_pattern(s string) bool { } fn main() { - content := os.read_file('kylepritchard.input') or { panic('Failed to read file: $err') } + content := os.read_file('ids.input') or { panic('Failed to read file: $err') } ids := content.split(',') @@ -83,3 +83,4 @@ fn main() { println('Part 1: $sum1') println('Part 2: $sum2') } + From 1a64e0ec1587e6155e5ae924247502ea5ea4271d Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 19:00:48 +0000 Subject: [PATCH 11/15] Refactor main module and functions for clarity --- 2025/02/kylepritchard.v | 1 + 1 file changed, 1 insertion(+) diff --git a/2025/02/kylepritchard.v b/2025/02/kylepritchard.v index 6e703e4..c41b745 100644 --- a/2025/02/kylepritchard.v +++ b/2025/02/kylepritchard.v @@ -84,3 +84,4 @@ fn main() { println('Part 2: $sum2') } + From 70ff3c0ae32477cb83c5123571ba86dc7389f1bb Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 19:01:28 +0000 Subject: [PATCH 12/15] Change input file name from kylepritchard.input to department.input --- 2025/04/kylepritchard.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2025/04/kylepritchard.v b/2025/04/kylepritchard.v index f005b03..adfad0d 100644 --- a/2025/04/kylepritchard.v +++ b/2025/04/kylepritchard.v @@ -34,7 +34,7 @@ fn count_adjacent(grid []u8, rows int, cols int, i int, j int, neighbors []Offse fn main() { // Read input file - content := os.read_file('kylepritchard.input') or { panic('Failed to read file: ${err}') } + content := os.read_file('department.input') or { panic('Failed to read file: ${err}') } lines := content.split_into_lines() mut grid_lines := []string{} From 6a6fc1873182398e33cb3cef1dd09bfe4e2a9774 Mon Sep 17 00:00:00 2001 From: kylepritchard Date: Thu, 4 Dec 2025 19:01:56 +0000 Subject: [PATCH 13/15] Change input file from 'kylepritchard.input' to 'banks.input' --- 2025/03/kylepritchard.v | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2025/03/kylepritchard.v b/2025/03/kylepritchard.v index 59ca237..ee74310 100644 --- a/2025/03/kylepritchard.v +++ b/2025/03/kylepritchard.v @@ -30,7 +30,7 @@ fn max_sequence(s string, k int) string { } fn main() { - content := os.read_file('kylepritchard.input') or { panic('Failed to read file: ${err}') } + content := os.read_file('banks.input') or { panic('Failed to read file: ${err}') } lines := content.split_into_lines() // Part 1 From 6a2e150b55076370c67b6e6719a93db815ee88bc Mon Sep 17 00:00:00 2001 From: Dylan Donnell Date: Tue, 9 Dec 2025 00:31:23 +0000 Subject: [PATCH 14/15] rebase to main and run `v run verify.v` --- known/2025/01/kylepritchard.out | 2 ++ known/2025/02/kylepritchard.out | 2 ++ known/2025/03/kylepritchard.out | 2 ++ known/2025/04/kylepritchard.out | 2 ++ 4 files changed, 8 insertions(+) create mode 100644 known/2025/01/kylepritchard.out create mode 100644 known/2025/02/kylepritchard.out create mode 100644 known/2025/03/kylepritchard.out create mode 100644 known/2025/04/kylepritchard.out diff --git a/known/2025/01/kylepritchard.out b/known/2025/01/kylepritchard.out new file mode 100644 index 0000000..9803ffb --- /dev/null +++ b/known/2025/01/kylepritchard.out @@ -0,0 +1,2 @@ +Part 1: 3 +Part 2: 6 diff --git a/known/2025/02/kylepritchard.out b/known/2025/02/kylepritchard.out new file mode 100644 index 0000000..234165a --- /dev/null +++ b/known/2025/02/kylepritchard.out @@ -0,0 +1,2 @@ +Part 1: 1227775554 +Part 2: 4174379265 diff --git a/known/2025/03/kylepritchard.out b/known/2025/03/kylepritchard.out new file mode 100644 index 0000000..8a9b064 --- /dev/null +++ b/known/2025/03/kylepritchard.out @@ -0,0 +1,2 @@ +Part 1: 357 +Part 2: 3121910778619 diff --git a/known/2025/04/kylepritchard.out b/known/2025/04/kylepritchard.out new file mode 100644 index 0000000..e150868 --- /dev/null +++ b/known/2025/04/kylepritchard.out @@ -0,0 +1,2 @@ +Part 1: 13 +Part 2: 43 From ca040b9e38a441d0490bb2e39c3427a40f991c3c Mon Sep 17 00:00:00 2001 From: Dylan Donnell Date: Tue, 9 Dec 2025 00:35:10 +0000 Subject: [PATCH 15/15] run `v fmt -w .` --- 2025/01/kylepritchard.v | 119 ++++++++++++++------------- 2025/02/kylepritchard.v | 172 ++++++++++++++++++++-------------------- 2 files changed, 144 insertions(+), 147 deletions(-) diff --git a/2025/01/kylepritchard.v b/2025/01/kylepritchard.v index 9a596e6..2d57c3f 100644 --- a/2025/01/kylepritchard.v +++ b/2025/01/kylepritchard.v @@ -1,60 +1,59 @@ -module main - -import os -import strconv - -fn main() { - codes := os.read_file('rotations.input') or { panic('Failed to read file') } - - mut start := 50 - mut count := 0 - mut count2 := 0 - - for line in codes.split_into_lines() { - if line.len == 0 { - continue - } - - if line[0] == `L` { - move_str := line[1..].trim_space() - mut move := strconv.atoi(move_str) or { 0 } - - for move > 0 { - start-- - if start == 0 { - count2++ - } - if start == -1 { - start = 99 - } - move-- - } - - if start == 0 { - count++ - } - } else { - move_str := line[1..].trim_space() - mut move := strconv.atoi(move_str) or { 0 } - - for move > 0 { - start++ - if start == 100 { - start = 0 - } - if start == 0 { - count2++ - } - move-- - } - - if start == 0 { - count++ - } - } - } - - println('Part 1: $count') - println('Part 2: $count2') -} - +module main + +import os +import strconv + +fn main() { + codes := os.read_file('rotations.input') or { panic('Failed to read file') } + + mut start := 50 + mut count := 0 + mut count2 := 0 + + for line in codes.split_into_lines() { + if line.len == 0 { + continue + } + + if line[0] == `L` { + move_str := line[1..].trim_space() + mut move := strconv.atoi(move_str) or { 0 } + + for move > 0 { + start-- + if start == 0 { + count2++ + } + if start == -1 { + start = 99 + } + move-- + } + + if start == 0 { + count++ + } + } else { + move_str := line[1..].trim_space() + mut move := strconv.atoi(move_str) or { 0 } + + for move > 0 { + start++ + if start == 100 { + start = 0 + } + if start == 0 { + count2++ + } + move-- + } + + if start == 0 { + count++ + } + } + } + + println('Part 1: ${count}') + println('Part 2: ${count2}') +} diff --git a/2025/02/kylepritchard.v b/2025/02/kylepritchard.v index c41b745..4b18041 100644 --- a/2025/02/kylepritchard.v +++ b/2025/02/kylepritchard.v @@ -1,87 +1,85 @@ -module main - -import os -import strconv - -fn has_exact_two_halves(s string) bool { - if s.len % 2 != 0 { - return false - } - half := s.len / 2 - return s[0..half] == s[half..] -} - -fn has_repeating_pattern(s string) bool { - for pattern_len in 1 .. s.len / 2 + 1 { - if s.len % pattern_len != 0 { - continue - } - - pattern := s[0..pattern_len] - mut matches := true - - repetitions := s.len / pattern_len - for rep in 1 .. repetitions { - start := rep * pattern_len - end := start + pattern_len - if s[start..end] != pattern { - matches = false - break - } - } - - if matches { - return true - } - } - return false -} - -fn main() { - content := os.read_file('ids.input') or { panic('Failed to read file: $err') } - - ids := content.split(',') - - mut sum1 := i64(0) - mut sum2 := i64(0) - - for id in ids { - if id.len == 0 { - continue - } - - range_parts := id.split('-') - - start_str := range_parts[0].trim_space() - end_str := range_parts[1].trim_space() - - start := strconv.parse_int(start_str, 10, 64) or { - eprintln('Start number isn\'t valid: "$id"') - continue - } - - end := strconv.parse_int(end_str, 10, 64) or { - eprintln('End number isn\'t valid: "$id"') - continue - } - - for num in start .. end + 1 { - num_str := num.str() - - // Part 1 - if has_exact_two_halves(num_str) { - sum1 += num - } - - // Part 2 - if has_repeating_pattern(num_str) { - sum2 += num - } - } - } - - println('Part 1: $sum1') - println('Part 2: $sum2') -} - - +module main + +import os +import strconv + +fn has_exact_two_halves(s string) bool { + if s.len % 2 != 0 { + return false + } + half := s.len / 2 + return s[0..half] == s[half..] +} + +fn has_repeating_pattern(s string) bool { + for pattern_len in 1 .. s.len / 2 + 1 { + if s.len % pattern_len != 0 { + continue + } + + pattern := s[0..pattern_len] + mut matches := true + + repetitions := s.len / pattern_len + for rep in 1 .. repetitions { + start := rep * pattern_len + end := start + pattern_len + if s[start..end] != pattern { + matches = false + break + } + } + + if matches { + return true + } + } + return false +} + +fn main() { + content := os.read_file('ids.input') or { panic('Failed to read file: ${err}') } + + ids := content.split(',') + + mut sum1 := i64(0) + mut sum2 := i64(0) + + for id in ids { + if id.len == 0 { + continue + } + + range_parts := id.split('-') + + start_str := range_parts[0].trim_space() + end_str := range_parts[1].trim_space() + + start := strconv.parse_int(start_str, 10, 64) or { + eprintln('Start number isn\'t valid: "${id}"') + continue + } + + end := strconv.parse_int(end_str, 10, 64) or { + eprintln('End number isn\'t valid: "${id}"') + continue + } + + for num in start .. end + 1 { + num_str := num.str() + + // Part 1 + if has_exact_two_halves(num_str) { + sum1 += num + } + + // Part 2 + if has_repeating_pattern(num_str) { + sum2 += num + } + } + } + + println('Part 1: ${sum1}') + println('Part 2: ${sum2}') +}