diff --git a/2025/day01/input b/2025/day01/input new file mode 100644 index 0000000..aaa4d2a --- /dev/null +++ b/2025/day01/input @@ -0,0 +1,4145 @@ +R3 +R10 +L11 +R9 +L6 +L3 +R41 +L13 +L46 +R23 +R36 +R10 +L26 +L12 +R15 +R49 +R46 +L42 +L35 +R29 +L31 +L35 +L47 +L28 +R22 +L12 +L33 +L12 +R8 +L39 +R2 +R29 +R41 +R33 +R45 +L30 +R46 +R43 +R38 +L15 +L38 +L31 +L45 +R50 +R39 +R32 +L32 +R8 +R40 +L75 +R55 +L83 +L72 +L68 +R47 +L58 +L21 +L17 +R26 +R34 +L66 +R48 +L85 +R69 +R27 +R75 +L11 +R62 +L62 +R5 +L6 +L95 +L4 +R42 +R48 +R24 +R55 +L7 +L51 +L53 +L94 +R36 +R88 +L89 +L99 +R20 +R84 +L63 +R59 +L36 +R80 +L25 +L52 +L67 +L91 +R91 +L22 +R98 +L96 +R7 +L69 +R50 +R32 +R28 +R372 +L16 +R16 +R892 +L777 +R22 +L47 +L87 +R679 +R32 +L73 +L41 +L557 +R57 +L362 +L49 +R55 +R16 +L860 +L45 +R1 +R72 +R72 +R52 +R34 +L35 +L86 +R75 +R96 +L4 +R968 +L466 +R66 +R863 +L218 +L45 +R90 +L80 +R70 +L280 +R64 +R79 +L43 +R64 +L806 +L6 +L94 +L58 +R19 +R81 +L19 +L771 +R17 +L584 +R76 +L69 +L39 +L132 +L56 +L45 +R22 +R74 +L74 +L6 +L94 +L163 +L63 +R26 +L91 +R91 +L25 +L97 +L16 +L74 +L88 +L27 +R74 +R5 +L35 +R54 +L15 +R75 +R669 +R64 +L65 +R721 +L19 +R499 +R756 +L81 +R55 +L4 +L986 +R60 +L6 +R9 +L85 +R19 +L37 +L65 +R41 +R824 +L444 +L80 +L95 +L81 +L88 +R63 +R79 +L66 +R12 +R55 +R567 +R45 +R75 +R52 +L714 +L13 +L63 +L4 +L24 +L25 +L77 +R126 +L620 +R97 +R23 +R80 +R89 +R31 +R71 +L771 +R35 +L34 +R57 +L58 +L52 +L30 +L518 +R65 +R835 +R69 +L92 +R23 +L381 +R481 +R49 +L3 +R254 +R905 +L54 +L98 +L6 +L37 +R391 +R97 +L38 +R486 +L41 +R934 +R61 +R75 +R25 +L20 +R320 +L20 +R22 +L302 +L83 +L430 +R42 +R913 +L42 +R30 +R875 +L5 +R916 +R84 +L422 +R14 +L92 +R697 +R265 +L62 +R17 +R26 +R49 +L92 +L45 +R45 +L62 +R62 +R683 +R48 +R69 +L60 +L216 +R76 +R89 +R11 +L279 +L621 +R27 +R456 +R17 +R45 +L12 +L74 +L59 +L8 +R924 +R303 +L89 +R297 +L27 +R20 +R28 +R552 +R402 +L63 +L88 +L51 +R29 +L36 +L764 +R392 +L165 +L16 +R74 +R86 +R55 +R98 +L53 +R523 +L23 +L592 +L41 +R33 +R11 +R41 +L52 +R56 +R21 +L45 +R57 +R253 +L38 +L68 +R64 +R80 +L23 +L57 +L357 +L43 +L968 +L32 +L909 +R49 +R744 +R17 +L38 +L433 +R95 +L40 +R274 +R412 +L11 +L6 +R18 +R28 +L132 +L37 +R969 +R531 +R68 +R1 +L77 +R55 +R90 +R52 +R68 +L26 +L833 +L78 +R4 +R45 +L77 +R77 +L617 +R726 +L9 +L43 +L19 +L26 +R815 +R73 +L58 +R58 +L34 +R34 +R728 +R654 +L50 +R68 +L47 +R47 +R90 +R95 +L85 +L87 +L34 +L25 +R46 +R48 +L26 +L66 +R19 +L50 +L77 +L5 +R62 +L205 +R93 +L93 +R45 +L45 +R473 +R27 +R30 +R86 +R84 +R979 +R21 +L60 +L40 +R86 +L382 +R67 +L78 +L93 +L722 +R22 +L90 +R21 +L31 +R10 +L6 +L29 +L61 +L31 +L58 +R71 +L13 +R580 +R662 +L974 +R46 +L97 +L25 +R25 +R92 +L92 +R4 +L62 +L42 +R44 +R59 +R260 +R66 +L686 +R189 +R68 +R54 +L54 +R564 +L1 +L263 +L54 +L46 +L48 +L7 +L391 +L23 +L15 +L97 +R63 +R318 +R74 +L71 +R59 +L62 +R316 +L6 +L10 +L86 +L30 +L84 +R92 +R30 +R72 +R6 +L28 +L55 +L17 +L221 +L44 +R37 +L12 +R81 +R772 +R87 +L17 +L40 +R923 +R123 +L89 +L667 +L48 +L43 +L742 +R22 +R728 +L61 +R601 +L87 +R67 +L5 +L568 +L97 +R4 +R29 +L88 +L7 +L38 +R531 +L31 +L167 +R967 +R18 +R482 +L68 +R75 +R96 +L3 +L43 +L758 +L894 +L5 +L788 +R88 +L608 +R682 +L45 +L91 +L14 +L24 +R83 +L10 +L73 +R25 +R75 +R62 +L62 +R19 +L19 +L81 +L33 +L86 +R41 +L14 +R95 +L830 +L599 +L64 +L35 +R6 +L36 +L329 +R165 +R48 +L48 +R70 +L70 +L15 +R6 +L894 +L75 +R89 +R86 +L97 +R37 +R55 +R8 +L25 +R325 +R74 +L25 +L67 +R18 +R1 +R40 +L441 +L97 +R81 +R62 +L64 +L96 +L59 +R50 +R23 +R96 +R2 +L75 +R9 +R68 +R69 +L39 +L61 +R459 +L28 +L316 +L84 +L92 +L8 +R20 +R80 +L61 +R61 +R95 +R5 +R94 +R6 +R37 +L439 +L98 +L2 +R31 +R71 +L26 +L13 +L361 +R663 +L1 +R38 +L878 +L22 +L15 +L10 +L75 +L568 +L890 +R58 +L8 +R41 +L78 +L55 +L72 +L95 +R86 +R81 +R68 +L65 +R39 +R99 +L717 +R763 +L16 +R29 +L459 +L41 +R32 +R25 +L57 +R46 +L46 +L63 +L13 +R51 +R329 +L78 +L69 +R64 +R58 +L49 +L2 +R72 +R7 +R38 +L189 +L19 +R64 +L1 +R10 +R52 +R38 +L12 +L899 +L74 +R85 +R348 +R652 +L53 +R36 +R17 +L15 +R3 +L126 +L26 +L563 +L96 +R123 +L88 +L90 +L12 +L10 +L398 +R3 +L5 +R98 +R602 +R41 +R59 +L67 +R790 +R62 +L769 +R2 +R882 +R31 +L28 +R52 +L18 +R63 +L76 +R46 +R47 +L22 +R43 +L39 +L61 +R177 +L13 +R98 +R11 +R87 +R97 +L17 +L58 +L35 +R15 +R10 +L10 +L66 +L5 +R44 +R27 +R25 +R86 +L128 +R17 +L29 +L77 +L94 +R6 +L72 +R66 +L65 +R465 +L18 +R42 +R76 +R98 +R2 +L402 +L49 +L877 +L82 +R10 +L73 +R79 +R30 +R964 +L24 +R97 +L73 +L45 +L55 +R86 +R517 +L148 +R85 +L24 +R5 +R79 +L225 +L75 +R61 +R78 +L739 +R783 +R417 +R66 +R764 +R961 +R9 +L74 +R74 +L41 +R11 +L99 +L371 +R60 +L43 +L88 +R71 +L83 +R55 +L82 +R19 +L897 +L65 +L3 +R56 +R24 +L24 +R93 +R55 +R12 +L160 +L19 +L62 +L55 +R128 +R8 +L29 +R29 +R251 +L6 +R55 +R91 +R14 +R24 +L8 +R98 +R81 +L8 +R91 +R32 +R85 +R98 +L998 +R60 +L44 +L34 +L52 +L30 +L84 +L31 +L88 +L54 +L51 +R38 +R70 +L63 +L55 +R970 +R97 +L49 +L12 +L81 +L51 +L56 +L39 +R52 +L79 +R666 +L24 +L52 +R16 +R660 +L80 +R80 +R17 +R83 +L76 +L24 +L56 +R882 +R74 +R9 +L9 +R424 +L24 +L46 +R46 +L44 +R67 +L23 +L72 +R64 +R54 +L66 +R84 +L56 +R771 +R834 +L23 +L14 +R24 +L2 +L68 +L49 +R5 +R15 +R99 +R52 +R63 +L15 +L543 +R43 +L82 +R36 +L73 +L37 +R11 +L55 +R79 +R21 +R492 +L76 +R58 +R92 +L419 +R74 +L38 +L65 +L18 +L87 +R55 +L35 +R3 +R33 +L821 +L63 +R693 +R522 +R19 +R81 +L87 +L13 +L63 +R68 +R95 +L49 +L51 +R61 +L12 +R19 +L98 +R30 +L63 +R63 +R411 +R33 +L17 +L27 +R31 +R69 +L48 +L52 +L86 +L350 +R45 +R52 +L89 +L720 +R38 +R42 +L74 +L90 +L68 +R96 +R876 +R28 +R13 +L313 +R99 +L83 +R284 +R85 +L84 +R1 +L70 +R89 +L1 +R80 +R94 +R951 +R55 +L82 +L16 +R98 +L63 +L8 +R42 +L71 +L96 +R89 +L93 +L44 +R23 +L65 +L888 +R74 +R86 +L89 +L97 +R96 +L96 +R16 +R39 +R799 +R46 +R90 +R10 +L92 +R21 +L29 +L807 +R15 +R16 +R82 +R894 +L67 +L33 +R94 +R15 +L43 +R15 +R19 +L41 +R753 +R88 +R41 +R59 +L77 +R477 +R393 +R635 +L28 +L44 +R44 +R25 +R52 +L28 +L49 +L92 +L81 +R34 +R42 +R9 +R86 +R602 +L74 +L83 +L53 +R10 +R6 +R39 +R85 +R21 +R74 +L25 +L91 +L9 +R26 +L48 +L78 +L52 +R62 +L33 +R14 +R415 +R50 +R44 +R339 +R61 +R776 +L76 +L62 +L838 +R8 +L26 +L38 +L44 +R69 +R31 +L91 +R66 +L974 +R99 +L1 +R853 +L46 +R17 +L423 +L24 +L41 +L46 +L587 +L2 +L91 +L9 +L37 +R9 +L824 +R10 +R2 +L960 +L38 +R38 +L146 +L56 +R2 +L594 +R49 +L72 +R17 +L97 +R68 +R69 +R64 +L4 +L22 +L78 +R47 +L51 +L21 +L42 +R67 +R97 +R57 +R84 +R26 +R65 +L1 +L45 +R6 +L75 +L14 +L56 +L58 +R36 +R230 +R41 +L93 +L97 +R97 +R42 +L989 +R47 +L25 +L75 +R397 +R75 +L72 +L50 +R50 +L92 +R92 +R21 +R79 +L73 +L8 +R81 +R35 +L5 +L30 +R755 +L36 +R85 +L39 +L52 +R41 +R42 +L18 +R222 +R86 +L86 +L33 +R33 +R19 +L398 +R79 +L6 +R54 +L35 +R87 +L91 +L9 +L30 +R8 +R844 +R78 +L15 +L17 +L70 +L98 +L52 +L95 +L953 +L88 +L26 +R14 +R39 +R447 +L34 +R806 +L58 +R23 +R38 +L383 +R986 +L887 +R32 +R38 +R39 +R66 +R98 +R55 +L79 +L476 +L850 +R5 +L65 +R44 +R16 +R978 +R222 +L3 +L197 +L69 +R89 +R62 +R18 +R47 +R23 +R41 +L4 +L43 +L94 +L25 +L45 +L57 +L43 +L50 +R814 +L64 +R55 +L55 +L60 +L84 +R69 +R75 +L13 +R13 +L50 +L83 +L94 +R27 +R98 +L798 +L992 +L8 +R67 +R29 +R755 +L55 +R704 +R36 +R549 +R3 +R65 +R36 +R11 +R95 +R26 +R56 +R48 +L25 +L47 +L53 +L93 +L38 +L58 +L46 +L75 +L56 +L56 +L51 +L27 +L589 +R15 +R6 +R16 +L108 +R17 +L157 +R16 +R84 +R70 +L70 +R254 +R59 +L77 +L18 +R195 +L41 +R71 +R54 +R5 +L2 +R45 +L63 +R18 +R84 +R66 +L53 +R903 +R141 +R89 +R78 +L8 +L94 +L98 +R473 +L9 +R24 +R304 +L68 +L32 +L16 +R5 +R994 +R84 +R433 +L30 +L70 +R426 +R53 +L280 +R1 +R91 +L391 +R75 +L675 +R64 +L984 +R20 +L7 +L93 +L74 +R56 +R70 +R83 +R146 +R19 +L15 +R634 +R81 +L31 +R1 +R630 +R41 +R999 +R43 +L82 +L44 +R86 +L96 +R353 +R2 +L2 +R87 +R11 +R95 +R57 +R5 +L55 +R426 +L326 +R70 +R30 +R3 +R59 +L362 +R23 +L287 +L26 +L98 +R70 +R18 +R594 +R32 +L67 +R68 +L27 +L65 +L536 +L699 +R515 +L15 +L92 +R92 +L56 +R47 +R209 +R52 +L52 +R79 +R21 +R99 +L5 +R56 +R950 +L13 +R44 +L31 +L64 +L15 +L513 +R431 +R970 +L78 +L31 +R67 +R61 +L66 +L62 +L63 +L73 +R3 +R53 +L401 +R74 +R29 +L58 +R36 +L24 +R54 +R21 +L51 +L42 +L58 +R89 +R60 +L53 +L55 +L96 +R92 +L779 +L25 +L30 +L4 +L55 +R28 +R42 +L97 +L17 +L71 +L73 +R987 +R13 +R58 +L14 +R37 +R63 +L20 +R95 +R33 +R92 +L63 +L37 +R98 +L85 +R85 +L255 +L43 +L907 +L540 +L14 +R261 +L47 +R90 +L85 +L58 +R94 +L94 +R45 +L45 +R74 +R26 +L20 +L80 +L75 +L9 +R84 +L57 +R49 +L992 +L511 +R16 +R25 +L30 +L910 +R551 +R13 +R93 +L64 +L83 +L61 +L20 +R58 +L77 +L83 +L39 +L88 +L882 +L8 +L140 +L13 +R53 +R867 +L98 +L69 +R91 +R9 +R62 +L962 +R37 +L137 +L48 +L91 +L82 +L79 +R67 +L67 +L70 +L75 +R62 +L17 +L49 +R515 +R39 +R37 +R36 +L32 +R226 +R28 +R66 +R48 +R86 +R84 +L21 +R37 +R7 +R75 +R79 +R239 +L240 +R40 +L49 +R7 +R15 +R32 +L123 +R18 +R10 +L10 +L220 +R18 +L34 +L27 +L28 +L12 +R3 +L54 +L46 +L73 +L90 +R17 +L74 +R914 +R930 +L524 +L32 +R7 +L75 +L85 +L37 +L78 +R52 +L52 +R63 +L537 +L916 +R90 +R22 +R78 +R71 +R221 +L20 +L72 +L73 +L7 +R9 +L29 +R231 +R52 +L33 +R50 +L741 +R98 +L38 +L61 +R68 +R74 +L95 +R695 +R51 +R49 +L28 +L258 +R86 +R74 +L11 +L621 +R58 +R73 +L73 +L89 +L29 +R33 +L91 +R28 +R19 +R90 +L84 +L31 +L46 +L6 +R488 +R88 +R830 +L54 +R38 +R16 +L8 +L48 +L948 +R4 +R190 +R17 +R93 +L26 +L331 +L988 +L96 +R41 +R87 +L63 +R84 +L8 +L809 +R848 +L19 +R64 +L29 +L92 +L21 +R58 +L64 +R86 +R125 +R97 +R98 +R958 +R211 +R89 +L94 +R84 +R79 +R73 +R60 +L57 +L45 +R41 +L70 +L71 +L39 +L661 +L35 +R34 +L951 +L7 +R59 +R291 +R609 +R36 +L89 +L47 +R79 +R21 +R26 +R15 +L34 +R7 +R505 +R23 +L42 +R156 +L905 +L51 +R95 +R764 +L47 +R75 +R96 +R801 +R18 +L97 +L505 +L33 +R32 +R501 +R82 +R18 +L77 +L83 +L40 +R28 +L8 +L50 +R905 +R25 +L61 +R853 +R8 +L994 +L94 +L12 +R204 +L11 +R7 +L95 +R95 +R25 +L7 +R351 +L778 +L58 +L34 +L97 +L10 +L77 +R93 +R26 +R66 +R51 +R54 +R60 +L65 +L95 +R95 +L77 +R55 +L3 +R41 +L92 +L24 +R103 +L78 +R85 +R90 +L95 +R95 +R117 +L22 +R5 +R54 +L74 +R82 +L83 +L17 +R38 +L74 +R35 +L661 +R25 +L25 +R18 +L18 +R68 +L397 +R59 +L56 +L742 +R661 +R7 +L42 +R42 +R98 +L70 +L928 +L89 +R23 +R66 +L97 +R97 +R72 +L57 +L4 +R64 +R84 +L59 +L2 +L98 +L170 +R270 +R855 +R845 +R548 +R32 +L82 +L60 +L87 +R583 +L34 +L841 +L59 +L67 +R68 +R99 +R4 +R696 +L81 +L9 +R943 +R47 +R712 +L34 +R22 +L37 +L927 +L253 +L483 +L60 +R60 +R841 +R80 +R479 +L96 +L78 +R428 +R96 +R50 +L25 +L22 +R87 +R60 +R388 +L388 +L234 +L89 +R49 +L53 +L70 +L503 +L488 +L912 +L956 +R60 +R31 +R39 +R13 +L62 +L667 +L81 +R21 +L332 +L367 +L35 +R36 +R15 +L7 +R31 +L23 +R89 +L33 +R50 +R79 +L55 +R54 +R695 +L786 +R75 +R28 +L95 +L49 +L2 +R30 +L96 +R38 +R61 +L99 +L63 +R45 +R718 +R42 +L97 +L45 +R74 +L79 +L106 +R967 +L76 +R20 +L57 +L43 +R848 +R30 +R41 +L12 +L15 +L68 +R73 +R10 +R93 +R55 +L98 +L87 +R315 +R89 +R95 +L169 +L21 +R21 +L888 +R18 +R67 +R19 +R68 +R17 +R25 +L84 +R330 +R88 +L39 +L471 +R50 +L382 +L351 +R38 +L21 +R16 +R535 +R55 +L390 +L747 +L504 +L49 +R733 +R41 +R16 +R86 +L76 +L708 +R99 +L75 +R89 +R82 +L950 +L9 +R204 +R568 +R48 +R6 +L41 +L13 +R8 +L108 +L11 +R252 +L92 +R42 +L78 +L854 +L59 +L531 +L47 +R58 +L80 +L75 +L21 +L4 +R260 +R79 +L43 +L96 +R852 +L52 +L582 +L82 +L36 +L9 +R540 +R25 +R52 +R92 +L95 +R1 +R94 +L58 +R7 +R151 +R79 +R686 +L3 +L25 +L76 +R370 +R69 +L798 +L2 +L65 +R65 +L61 +R41 +L11 +R32 +L995 +L11 +L95 +R46 +L87 +R41 +R69 +L774 +L95 +L220 +L280 +R90 +R10 +R40 +L111 +L29 +R88 +R78 +L89 +R23 +R44 +R95 +R32 +R23 +L94 +R58 +L25 +L868 +L34 +R669 +L95 +R8 +R39 +L3 +R51 +L88 +R88 +R75 +R25 +R50 +L814 +R531 +L55 +R376 +R80 +L41 +L27 +L54 +L95 +R279 +L18 +R95 +L783 +L49 +L942 +R67 +R56 +L7 +L730 +R81 +L97 +R97 +L13 +R613 +R40 +R34 +R26 +R75 +L75 +L80 +R80 +R55 +R26 +L891 +L34 +L56 +R279 +L79 +L96 +L32 +L77 +L995 +R61 +R180 +L41 +R26 +L12 +L54 +R93 +R21 +L74 +R25 +R575 +L285 +R485 +R7 +R93 +R33 +L24 +R21 +L71 +R85 +R76 +L795 +R81 +R469 +L675 +R4 +L46 +L58 +R87 +L87 +L24 +R86 +R238 +L150 +L53 +R41 +R84 +R76 +L83 +L73 +R58 +L90 +R90 +R557 +L57 +L97 +R19 +R10 +L28 +R82 +L786 +R309 +R91 +R43 +R22 +L345 +R67 +L787 +L89 +R989 +L35 +L49 +R84 +R87 +L987 +L92 +R92 +L47 +L92 +R460 +L21 +R25 +L25 +R7 +R756 +R37 +L90 +L880 +R3 +R67 +L99 +L1 +L2 +R15 +R22 +R665 +R20 +L52 +L653 +L10 +L88 +R858 +R25 +L3 +L97 +L66 +L568 +L79 +L25 +L81 +L493 +L11 +L74 +R19 +R33 +L11 +R756 +L61 +R44 +R1 +L82 +L4 +R579 +L53 +R34 +R35 +R66 +R73 +R4 +R79 +L34 +R313 +L66 +R72 +L93 +L7 +R19 +L19 +R72 +R364 +R626 +L21 +R62 +R997 +L35 +L13 +R186 +R94 +L56 +R94 +L70 +L22 +R447 +R75 +L95 +L26 +R21 +L2 +R83 +R19 +L76 +L24 +R233 +L742 +R9 +R63 +L1 +L72 +L78 +R41 +L53 +L33 +L67 +L99 +R899 +L849 +L384 +L70 +R3 +L12 +R12 +R42 +L342 +R7 +L7 +L21 +L79 +L87 +L69 +R62 +L6 +L3 +R279 +L62 +L466 +R25 +R4 +L39 +L69 +L53 +R984 +R607 +L12 +L40 +R74 +L89 +R719 +R91 +R28 +L78 +R9 +R817 +L25 +R99 +L283 +L99 +L85 +L33 +L77 +L52 +R29 +L93 +L65 +R58 +R905 +R15 +L60 +L60 +L656 +R56 +R70 +L770 +R356 +R44 +R97 +L29 +R21 +L763 +R38 +L4 +R40 +R82 +R18 +L869 +R725 +R5 +L61 +R74 +L23 +R67 +L446 +R528 +L89 +R89 +L904 +L96 +L1 +R1 +R837 +R63 +L84 +R84 +R67 +R233 +R54 +R8 +R59 +R3 +R63 +L33 +R20 +L139 +R38 +L87 +L2 +L84 +R73 +L41 +L332 +R578 +L678 +L82 +R45 +L63 +R61 +L665 +L16 +L59 +L44 +L131 +R75 +L421 +R16 +L63 +R47 +L836 +R65 +R839 +R357 +L25 +L424 +L83 +L82 +R686 +R264 +R81 +L5 +L5 +R101 +R685 +L76 +L42 +R89 +R28 +R448 +R76 +R38 +L679 +L59 +R25 +R34 +L96 +L4 +R15 +R77 +R89 +L81 +L28 +L72 +L431 +L19 +R602 +R20 +L24 +L57 +L691 +L574 +L12 +R11 +R56 +R79 +R748 +L8 +R35 +R565 +L42 +L58 +R896 +R4 +R65 +L742 +R77 +R58 +L97 +R39 +L463 +L8 +L163 +L52 +R45 +L59 +R98 +L98 +R188 +R57 +R40 +R15 +L607 +R45 +L99 +R49 +L188 +R16 +L65 +L51 +L20 +R20 +L35 +R35 +R89 +R55 +R890 +R15 +L42 +L7 +L142 +R78 +R36 +L77 +L322 +L96 +R266 +R928 +R29 +R2 +R298 +R801 +R49 +L50 +L69 +L31 +L71 +R30 +L59 +L93 +L87 +R19 +R61 +L19 +R69 +L50 +R89 +R57 +L46 +L77 +R323 +R54 +R30 +L30 +L13 +R91 +L93 +L30 +L37 +L618 +L57 +R106 +R51 +L50 +L3 +R53 +L711 +R11 +R57 +R543 +L3 +L77 +L65 +L39 +R10 +R74 +L724 +L32 +L33 +R45 +R44 +L76 +L24 +L855 +L45 +R621 +R75 +R16 +R70 +L174 +R92 +L46 +R65 +R81 +R64 +L74 +R91 +R19 +L18 +R9 +L91 +L55 +R335 +R120 +L78 +L11 +R87 +R59 +R43 +R54 +L654 +L83 +L17 +R34 +R58 +R8 +L818 +L75 +R20 +L95 +L683 +L669 +R190 +R30 +L73 +L27 +R944 +L31 +L3 +R49 +R94 +L153 +L31 +L37 +L87 +R55 +R584 +L28 +R756 +L97 +L7 +L780 +L65 +R66 +L29 +L35 +R52 +R704 +L85 +R7 +L1 +R58 +R68 +L68 +L39 +R39 +R74 +L76 +L99 +R1 +L97 +L3 +L99 +R80 +R71 +L32 +L253 +R85 +L82 +L46 +R65 +R11 +L192 +L63 +R55 +L69 +L852 +L64 +L5 +L610 +L11 +R211 +R32 +R27 +R369 +R72 +L31 +L69 +L67 +L33 +L890 +R270 +R910 +L2 +L16 +R28 +L60 +R760 +R25 +R364 +R64 +R9 +L177 +R202 +L10 +L42 +L980 +R1 +L7 +L7 +R58 +R41 +R59 +R66 +L28 +L9 +L38 +L98 +L393 +R218 +L18 +L7 +L93 +L533 +L367 +L44 +L1 +L923 +L34 +L98 +L56 +L79 +L75 +L80 +L873 +L37 +L528 +R28 +R87 +L87 +R4 +L233 +L378 +L621 +R428 +L53 +R42 +L89 +R539 +L27 +R61 +L73 +R9 +L9 +L358 +R58 +L226 +L41 +R92 +L25 +L613 +L64 +R82 +L548 +R943 +R78 +L94 +R52 +L456 +L680 +L52 +R52 +R77 +L742 +L33 +R50 +L52 +L59 +L36 +L884 +R61 +R85 +R33 +R54 +L39 +R894 +R75 +L393 +R509 +L25 +L45 +L6 +L989 +L82 +R243 +R34 +L66 +R928 +L21 +L71 +L48 +L53 +R10 +L25 +L84 +L57 +L33 +L15 +L5 +R18 +L5 +L87 +L58 +R798 +L56 +L50 +R96 +L18 +R51 +L94 +R15 +R82 +L293 +L48 +R20 +R241 +R592 +R30 +L35 +L61 +L840 +L84 +L383 +L59 +R38 +L178 +L22 +L64 +L57 +L63 +L69 +L47 +L348 +L43 +L24 +R815 +R16 +R84 +R5 +L86 +L19 +L65 +R65 +R80 +R20 +L83 +L77 +L936 +L16 +L41 +R53 +L29 +R29 +R83 +L72 +R13 +R25 +R4 +R57 +R18 +R88 +L52 +R20 +L847 +R85 +R12 +R261 +L91 +R68 +R714 +R2 +L88 +L69 +R69 +R80 +R35 +L15 +L47 +L99 +L188 +R8 +R162 +L85 +L51 +L95 +L9 +L24 +L383 +R17 +L648 +R89 +L91 +L49 +R93 +L633 +L41 +R16 +L42 +L27 +R27 +L3 +R3 +R966 +L35 +L31 +R42 +L156 +L2 +R18 +R75 +R555 +L913 +R4 +L9 +L30 +R70 +L54 +R979 +R21 +L84 +R84 +L3 +L31 +R34 +L70 +R69 +L60 +R61 +R439 +L247 +L882 +R69 +R668 +R5 +L22 +R70 +R103 +R197 +L35 +L97 +L68 +L65 +L35 +R80 +R20 +R20 +R31 +R856 +R93 +R51 +R43 +R176 +L70 +R10 +L9 +R14 +R22 +R63 +R11 +L585 +R74 +L442 +L558 +L24 +R73 +R51 +R60 +R340 +R25 +L1 +L24 +L31 +R47 +R77 +L705 +R89 +L77 +L48 +L78 +L48 +L1 +L69 +L59 +L97 +R3 +L3 +R76 +L30 +R54 +L67 +L41 +R77 +R31 +L76 +R281 +R81 +R14 +L91 +L93 +R2 +L517 +L1 +L40 +R40 +L36 +L89 +L78 +L37 +L74 +R14 +L10 +R10 +L97 +R59 +L62 +R67 +R33 +R64 +L717 +L47 +L73 +R173 +L44 +L68 +L88 +L567 +L170 +L59 +L97 +L81 +R74 +R22 +R51 +L58 +R66 +L52 +R671 +R77 +L9 +L827 +R759 +R91 +R26 +L36 +L81 +R98 +L98 +R638 +R57 +L114 +L33 +L78 +R49 +R81 +L123 +L15 +R38 +R57 +R1 +L770 +R6 +R26 +R80 +L46 +L84 +R30 +R504 +L1 +L46 +L57 +R7 +R93 +L73 +L168 +R82 +L98 +L25 +R82 +L927 +R27 +L14 +L19 +L434 +R80 +L30 +R643 +L26 +L18 +L82 +R7 +L959 +L48 +L234 +L44 +R70 +L615 +R23 +R34 +L761 +R99 +R28 +R49 +R32 +L61 +L55 +L65 +R29 +L29 +R404 +L15 +L17 +L25 +L16 +L5 +R70 +R4 +L1 +R131 +R27 +R43 +R4 +R60 +R52 +R37 +L153 +L54 +R26 +R28 +R8 +R740 +L42 +R611 +L20 +L50 +R53 +R54 +L354 +R92 +R64 +R44 +L53 +R53 +L48 +R467 +L19 +L94 +L33 +R88 +R10 +R2 +R27 +R98 +L24 +R25 +L986 +R22 +R65 +L4 +R15 +R873 +L31 +L53 +R39 +L1 +R80 +R72 +L90 +R16 +L416 +R59 +L36 +R77 +R95 +L97 +R2 +L33 +R865 +R68 +L65 +L40 +L24 +R397 +R98 +R10 +L98 +R9 +L2 +L85 +R36 +L79 +R43 +R49 +L179 +L78 +L99 +L93 +L714 +L31 +L91 +R136 +L560 +L14 +L77 +L49 +L24 +L80 +R167 +L47 +R84 +R36 +R64 +R84 +L84 +L693 +R73 +R94 +L74 +R47 +R73 +R80 +R28 +R72 +R3 +L50 +R30 +L83 +L50 +L1 +L49 +R48 +L42 +L48 +R9 +L67 +R65 +L60 +L93 +R89 +R4 +L17 +R8 +R1 +R45 +R85 +R22 +R51 +L98 +R160 +L74 +R61 +R51 +L13 +R13 +L31 +R331 +R3 +L403 +R2 +L40 +L63 +L99 +R3 +L82 +L66 +L34 +R79 +L330 +R85 +R49 +L4 +L22 +R22 +L82 +R462 +L80 +R71 +L40 +R69 +L714 +L86 +L23 +R23 +R43 +L45 +L738 +R40 +L95 +R858 +L63 +L83 +R202 +L919 +R63 +L98 +L23 +L42 +R5 +R33 +L31 +L930 +R723 +R15 +L548 +R33 +L33 +R489 +L56 +R47 +L85 +R41 +L13 +R10 +R89 +L89 +R73 +R16 +R84 +R70 +L43 +R21 +L587 +L34 +R55 +R81 +R2 +L81 +R23 +R20 +R53 +L97 +L29 +R11 +L138 +L343 +L57 +L25 +R81 +R78 +L11 +R77 +R10 +R90 +R77 +R23 +L18 +R18 +R70 +R30 +L46 +R81 +L35 +L86 +L14 +R19 +R36 +R70 +R25 +R50 +L99 +R44 +R8 +R18 +L77 +R6 +L34 +R84 +R78 +L65 +L63 +R93 +L45 +L48 +L20 +R61 +L682 +L12 +L71 +R20 +L96 +R407 +L45 +L424 +L18 +L39 +L42 +L39 +L427 +L84 +R211 +R50 +L94 +L31 +R26 +L72 +L47 +R73 +L776 +L59 +R930 +L64 +R64 +R525 +L25 +L31 +R14 +L588 +L72 +R77 +L49 +L58 +L60 +R63 +L30 +R15 +R19 +L125 +R31 +L6 +L76 +L24 +L81 +R86 +R79 +R16 +R29 +L94 +R65 +L11 +R11 +L8 +L47 +R15 +L54 +L18 +L64 +R83 +L92 +L23 +R8 +L83 +R83 +L79 +L37 +L86 +R602 +L82 +L64 +R779 +L30 +L3 +L810 +R103 +R7 +L23 +R93 +R59 +L64 +L8 +L995 +L43 +L119 +R76 +L76 +R132 +R36 +L168 +L17 +L45 +L38 +L68 +L49 +L21 +L10 +R48 +L34 +L9 +R243 +L6 +L76 +R82 +L81 +R328 +L347 +R76 +R52 +R167 +L52 +L43 +R245 +L24 +L21 +L20 +L83 +L17 +L77 +L49 +R616 +R30 +L443 +L60 +R3 +R36 +L670 +R43 +R989 +L77 +R79 +R11 +L711 +R66 +L91 +L68 +L7 +L94 +L6 +R71 +R20 +L9 +R11 +R7 +R21 +L95 +R74 +L47 +L653 +R78 +R679 +L9 +L8 +L94 +L46 +R19 +L95 +L24 +R67 +L67 +L31 +R18 +R25 +R832 +L44 +L23 +L60 +L17 +L91 +L64 +L79 +R39 +R58 +R437 +L68 +L32 +R805 +R13 +L18 +R90 +R20 +L10 +L18 +R18 +L32 +L80 +L288 +L958 +L58 +R997 +L22 +R41 +R616 +R262 +L78 +R61 +R16 +R23 +L74 +R74 +L19 +R62 +R57 +R29 +R71 +R47 +R37 +R66 +R50 +L7 +R7 +L18 +L543 +L87 +L52 +R539 +L39 +L27 +L95 +R95 +L18 +R45 +L74 +R98 +L24 +R26 +R75 +L95 +L6 +L23 +L77 +L32 +R24 +L98 +R42 +R64 +R5 +R27 +R29 +R73 +L9 +L25 +L87 +R87 +R19 +R420 +R690 +R49 +R65 +R776 +R3 +L232 +R88 +R22 +L95 +R4 +L9 +L34 +L66 +R519 +R376 +R261 +L29 +L93 +L31 +R86 +L808 +L27 +L64 +L90 +R24 +L504 +L14 +R891 +L397 +L374 +R38 +L42 +R75 +R244 +R90 +L31 +R9 +L93 +R99 +R533 +L991 +R52 +L91 +L82 +R763 +L9 +R99 +L97 +R99 +R39 +L82 +L97 +L94 +R43 +L15 +L85 +L67 +L522 +L66 +R77 +R34 +L656 +R363 +R18 +R37 +L84 +L70 +R26 +R68 +L24 +L34 +L33 +R69 +L79 +R667 +R976 +L49 +L83 +L68 +R42 +L842 +R991 +L42 +R651 +L483 +R44 +L563 +R2 +R1 +L1 +R61 +R7 +R36 +L4 +L42 +R6 +L31 +L48 +R15 +L244 +L56 +R52 +R48 +L11 +R1 +L22 +L70 +L78 +L42 +L78 +R12 +R35 +L97 +L50 +R69 +L69 +R22 +L82 +L40 +R27 +L21 +R94 +R48 +L40 +R8 +L12 +L31 +L73 +L1 +R1 +L56 +L44 +L27 +R96 +L18 +L25 +R15 +L59 +R243 +L38 +R55 +L299 +L13 +L34 +L43 +R296 +L149 +L12 +L59 +L29 +L80 +R9 +L29 +R6 +R56 +R82 +L48 +L58 +L26 +R88 +L28 +R28 +R370 +L10 +R934 +R6 +R32 +L97 +R65 +R70 +L70 +L57 +R21 +L64 +L98 +L132 +R96 +L66 +R56 +R90 +L62 +L94 +L90 +L342 +R62 +L20 +L90 +L6 +L4 +L55 +R55 +R17 +L95 +L22 +R9 +L9 +L351 +L53 +L28 +R10 +L81 +L24 +L58 +L15 +L36 +L64 +L61 +R70 +R69 +R36 +R83 +L421 +L61 +L15 +L53 +R7 +L57 +L93 +L86 +L35 +R317 +R81 +R638 +L15 +R96 +L52 +L47 +L201 +R21 +R79 +L54 +L46 +L13 +L87 +L44 +R36 +L92 +L58 +R66 +R787 +L85 +L10 +R83 +L83 +L54 +R98 +R34 +L85 +R7 +R39 +L72 +R15 +R96 +L78 +R34 +R36 +R930 +L92 +L55 +R47 +L36 +L97 +R50 +R17 +R1 +L835 +L35 +R92 +L57 +L90 +L10 +R99 +L93 +L5 +L21 +L95 +R78 +R46 +R14 +R93 +L16 +R663 +L4 +L29 +L30 +L878 +R23 +L145 +R491 +R455 +R254 +L40 +L426 +R58 +R44 +L36 +R222 +R392 +L64 +R50 +L90 +L10 +L23 +R6 +R17 +R52 +L298 +R43 +L85 +L312 +R5 +R95 +L88 +R30 +R609 +L64 +R95 +L85 +R98 +R5 +L97 +R18 +L28 +L93 +L96 +L4 +R79 +L79 +R56 +L196 +L10 +L95 +L931 +L907 +R83 +L332 +L68 +R64 +R336 +L96 +L4 +R71 +R38 +R55 +R36 +R31 +L51 +L72 +L10 +L81 +R83 +R71 +R55 +R90 +L16 +L43 +L57 +L28 +R746 +L50 +L668 +R27 +L27 +L20 +L80 +R55 +R45 +R875 +L42 +L33 +L57 +L94 +R28 +L77 +L49 +R49 +L51 +R51 +R6 +L6 +L46 +R93 +L89 +L11 +L81 +L73 +L51 +R3 +L45 +R56 +L82 +L64 +R42 +R53 +R95 +L97 +R97 +R69 +R822 +L291 +R3 +R7 +L117 +R79 +R3 +L17 +R442 +L31 +L28 +L98 +L43 +R21 +R19 +R94 +L61 +L73 +L57 +R83 +R26 +R281 +L684 +L364 +L74 +R94 +L5 +L19 +L881 +L8 +R23 +R85 +L86 +L81 +R97 +R13 +R97 +R60 +L32 +R32 +L90 +L37 +L73 +R84 +R16 +R37 +R63 +L55 +L45 +L45 +R70 +R75 +R69 +L68 +L93 +L5 +R97 +L65 +L97 +L38 +R20 +L53 +R14 +R64 +L45 +R32 +R51 +L67 +L16 +R65 +R68 +R80 +L7 +L6 +L6 +L63 +L31 +L70 +R70 +R30 +L30 +R87 +R19 +L6 +L39 +L1 +L36 +R50 +R34 +L16 +L47 +R7 +R41 +L4 +R9 +L13 +L45 +L36 +R3 +L35 +L26 +R36 +R36 +L7 +L44 +L3 +L23 +R46 +R33 +L6 +L15 +L2 +L6 +R36 +L16 +R24 +L42 +R14 +R19 +L28 +L38 +L5 +R38 +L47 +R49 +R18 +R33 +R2 +R28 +L2 +L13 +R9 +L46 +R8 diff --git a/2025/day01/main.go b/2025/day01/main.go new file mode 100644 index 0000000..5bb7731 --- /dev/null +++ b/2025/day01/main.go @@ -0,0 +1,57 @@ +package main + +import ( + "fmt" + + h "git.bullercodeworks.com/brian/adventofcode/helpers" +) + +func main() { + inp := h.StdinToStringSlice() + part1(inp) + part2(inp) +} + +func part1(inp []string) { + var hit int + dial := 50 + for i := range inp { + dir, snum := inp[i][0], inp[i][1:] + num := h.Atoi(snum) + switch dir { + case 'R': + dial += num + case 'L': + dial -= num + } + dial = (dial + 100) % 100 + if dial == 0 { + hit++ + } + } + fmt.Println("# Part 1") + fmt.Println(hit) +} + +func part2(inp []string) { + var hit int + dial := 50 + for i := range inp { + dir, snum := inp[i][0], inp[i][1:] + num := h.Atoi(snum) + for j := 0; j < num; j++ { + switch dir { + case 'R': + dial = (dial + 1) % 100 + case 'L': + dial = (dial - 1 + 100) % 100 + } + if dial == 0 { + hit++ + } + } + } + + fmt.Println("# Part 2") + fmt.Println(hit) +} diff --git a/2025/day01/problem b/2025/day01/problem new file mode 100644 index 0000000..7f16c64 --- /dev/null +++ b/2025/day01/problem @@ -0,0 +1,171 @@ +Advent of Code + +br0xen [7](AoC++) 2* + +/^[8]2025$/ + +--- Day 1: Secret Entrance --- + + The Elves have good news and bad news. + + The good news is that they've discovered [16]project management! This has + given them the tools they need to prevent their usual Christmas emergency. + For example, they now know that the North Pole decorations need to be + finished soon so that other critical tasks can start on time. + + The bad news is that they've realized they have a different emergency: + according to their resource planning, none of them have any time left to + decorate the North Pole! + + To save Christmas, the Elves need you to finish decorating the North Pole + by December 12th. + + Collect stars by solving puzzles. Two puzzles will be made available on + each day; the second puzzle is unlocked when you complete the first. Each + puzzle grants one star. Good luck! + + You arrive at the secret entrance to the North Pole base ready to start + decorating. Unfortunately, the password seems to have been changed, so you + can't get in. A document taped to the wall helpfully explains: + + "Due to new security protocols, the password is locked in the safe below. + Please see the attached document for the new combination." + + The safe has a dial with only an arrow on it; around the dial are the + numbers 0 through 99 in order. As you turn the dial, it makes a small + click noise as it reaches each number. + + The attached document (your puzzle input) contains a sequence of + rotations, one per line, which tell you how to open the safe. A rotation + starts with an L or R which indicates whether the rotation should be to + the left (toward lower numbers) or to the right (toward higher numbers). + Then, the rotation has a distance value which indicates how many clicks + the dial should be rotated in that direction. + + So, if the dial were pointing at 11, a rotation of R8 would cause the dial + to point at 19. After that, a rotation of L19 would cause it to point at + 0. + + Because the dial is a circle, turning the dial left from 0 one click makes + it point at 99. Similarly, turning the dial right from 99 one click makes + it point at 0. + + So, if the dial were pointing at 5, a rotation of L10 would cause it to + point at 95. After that, a rotation of R5 could cause it to point at 0. + + The dial starts by pointing at 50. + + You could follow the instructions, but your recent required official North + Pole secret entrance security training seminar taught you that the safe is + actually a decoy. The actual password is the number of times the dial is + left pointing at 0 after any rotation in the sequence. + + For example, suppose the attached document contained the following + rotations: + + L68 + L30 + R48 + L5 + R60 + L55 + L1 + L99 + R14 + L82 + + Following these rotations would cause the dial to move as follows: + + • The dial starts by pointing at 50. + • The dial is rotated L68 to point at 82. + • The dial is rotated L30 to point at 52. + • The dial is rotated R48 to point at 0. + • The dial is rotated L5 to point at 95. + • The dial is rotated R60 to point at 55. + • The dial is rotated L55 to point at 0. + • The dial is rotated L1 to point at 99. + • The dial is rotated L99 to point at 0. + • The dial is rotated R14 to point at 14. + • The dial is rotated L82 to point at 32. + + Because the dial points at 0 a total of three times during this process, + the password in this example is 3. + + Analyze the rotations in your attached document. What's the actual + password to open the door? + + Your puzzle answer was 1026. + +--- Part Two --- + + You're sure that's the right password, but the door won't open. You knock, + but nobody answers. You build a snowman while you think. + + As you're rolling the snowballs for your snowman, you find another + security document that must have fallen into the snow: + + "Due to newer security protocols, please use password method 0x434C49434B + until further notice." + + You remember from the training seminar that "method 0x434C49434B" means + you're actually supposed to count the number of times any click causes the + dial to point at 0, regardless of whether it happens during a rotation or + at the end of one. + + Following the same rotations as in the above example, the dial points at + zero a few extra times during its rotations: + + • The dial starts by pointing at 50. + • The dial is rotated L68 to point at 82; during this rotation, it + points at 0 once. + • The dial is rotated L30 to point at 52. + • The dial is rotated R48 to point at 0. + • The dial is rotated L5 to point at 95. + • The dial is rotated R60 to point at 55; during this rotation, it + points at 0 once. + • The dial is rotated L55 to point at 0. + • The dial is rotated L1 to point at 99. + • The dial is rotated L99 to point at 0. + • The dial is rotated R14 to point at 14. + • The dial is rotated L82 to point at 32; during this rotation, it + points at 0 once. + + In this example, the dial points at 0 three times at the end of a + rotation, plus three more times during a rotation. So, in this example, + the new password would be 6. + + Be careful: if the dial were pointing at 50, a single rotation like R1000 + would cause the dial to point at 0 ten times before returning back to 50! + + Using password method 0x434C49434B, what is the password to open the door? + + Your puzzle answer was 5923. + + Both parts of this puzzle are complete! They provide two gold stars: ** + + At this point, you should [17]return to your Advent calendar and try + another puzzle. + + If you still want to see it, you can [18]get your puzzle input. + +References + + Visible links + 1. https://adventofcode.com/ + 2. https://adventofcode.com/2025/about + 3. https://adventofcode.com/2025/events + 5. https://adventofcode.com/2025/settings + 6. https://adventofcode.com/2025/auth/logout + 7. Advent of Code Supporter + https://adventofcode.com/2025/support + 8. https://adventofcode.com/2025 + 9. https://adventofcode.com/2025 + 10. https://adventofcode.com/2025/support + 11. https://adventofcode.com/2025/sponsors + 12. https://adventofcode.com/2025/leaderboard/private + 13. https://adventofcode.com/2025/stats + 14. https://adventofcode.com/2025/sponsors + 15. https://adventofcode.com/2025/sponsors/redirect?url=https%3A%2F%2Fwww%2Ejumptrading%2Ecom%2F + 16. https://en.wikipedia.org/wiki/Project_management + 17. https://adventofcode.com/2025 + 18. https://adventofcode.com/2025/day/1/input diff --git a/2025/day01/testinput b/2025/day01/testinput new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/2025/day01/testinput @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82