diff --git a/2024/day_01.py b/2024/day_01/day_01.py similarity index 100% rename from 2024/day_01.py rename to 2024/day_01/day_01.py diff --git a/2025/.gitignore b/2025/.gitignore new file mode 100644 index 0000000..0e9868c --- /dev/null +++ b/2025/.gitignore @@ -0,0 +1,2 @@ +# Created by venv; see https://docs.python.org/3/library/venv.html +# diff --git a/2025/d1.py b/2025/d1.py new file mode 100644 index 0000000..f80690b --- /dev/null +++ b/2025/d1.py @@ -0,0 +1,73 @@ +#combo_lock = [x for x in range(0, 100)] +last_position = 50 +current_position = last_position +password = 0 + +#print(combo_lock) +#print('At position ', combo_lock[current_position]) + +input_file = open('d1_input.txt', 'r') +lines = input_file.readlines() + +def find_direction(rotation): + print(rotation[0]) + return rotation[0] + +def find_clicks(rotation): + print(rotation[1:]) + return int(rotation[1:]) + +def track_landed_zero(position, password, clicks): + if position == 0: + password += 1 + print('track_zero() password', password) + return password + +def track_passed_zeroes(direction, clicks, position, password, current_position): + print('track_passed_zeroes() starting with', password, 'zeroes') + if direction == 'L': + if position < (clicks % 100) and not position == 0: + password += 1 + print('added 1 more going L for total of', password) + elif direction == 'R': + if (100 - position) < (clicks % 100) and not position == 0: + password += 1 + print('added 1 more going R for total of', password) + if clicks >= 100: + password += (clicks // 100) + + print('adding more for total of', password) + return password + +def turn_dial(direction, clicks, position, password): + if direction == 'L': + position = (position - clicks) % 100 + elif direction == 'R': + position = (position + clicks) % 100 + else: + print(direction, 'is not a valid direction') + print('turn_dial() position', position) + return position + +# Main loop +count = 0 +print('Current position', current_position) +print('Last position', last_position) +print('Current password', password) +for line in lines: + count += 1 + line = line.strip() + clicks = find_clicks(line) + direction = find_direction(line) + + print('last_position', last_position) + print(clicks, 'clicks to the', direction) + current_position = turn_dial(direction, clicks, last_position, password) + print('current_position', current_position) + password = track_passed_zeroes(direction, clicks, last_position, password, current_position) + password = track_landed_zero(current_position, password, clicks) + last_position = current_position + print('Current password', password) + +input_file.close() +print('Total lines', count) diff --git a/2025/d1_input.txt b/2025/d1_input.txt new file mode 100644 index 0000000..c11e6ce --- /dev/null +++ b/2025/d1_input.txt @@ -0,0 +1,4432 @@ +L29 +R49 +L41 +R37 +L13 +L2 +R2 +L42 +L50 +R35 +L43 +L39 +L35 +R5 +L18 +R11 +R42 +R25 +R24 +L17 +R1 +R26 +L48 +R6 +R23 +R1 +R5 +R24 +R35 +R44 +R17 +L6 +R31 +L48 +R22 +L34 +R33 +R35 +L13 +L28 +L45 +L24 +R41 +R12 +R18 +R40 +L18 +L41 +L3 +R43 +R98 +R31 +L72 +L47 +L62 +L89 +L43 +L75 +L41 +L96 +R95 +L32 +R46 +L75 +L85 +L40 +R75 +L94 +L94 +R69 +R32 +L34 +R89 +R67 +R11 +L73 +R23 +L70 +L53 +R39 +L73 +R73 +R35 +L22 +R87 +L15 +R66 +L43 +R56 +L17 +R55 +L69 +L33 +L83 +R88 +R95 +L44 +L11 +R46 +L20 +L71 +L646 +L54 +R55 +R1 +L56 +R91 +L75 +L824 +R90 +L82 +L64 +L65 +R57 +R72 +L789 +R89 +R109 +L509 +L83 +R43 +R99 +R34 +R20 +L13 +R95 +R5 +R62 +R92 +R46 +R349 +R15 +L64 +L326 +R3 +R553 +L65 +R435 +R84 +L3 +R42 +L23 +R59 +R41 +R619 +R81 +R12 +L98 +R86 +R87 +R99 +R41 +L72 +R89 +L544 +R19 +L18 +L1 +R58 +R888 +L42 +L504 +R71 +L71 +L39 +R39 +R45 +L47 +R2 +L537 +L63 +L36 +L63 +R99 +R383 +R38 +R42 +L63 +R445 +R55 +L73 +L27 +L27 +L46 +L18 +R91 +L50 +L39 +R89 +R61 +L135 +L64 +R56 +L18 +L137 +L77 +R98 +R467 +R9 +R87 +L947 +L56 +L77 +R13 +R38 +L18 +L82 +R31 +L49 +R54 +L54 +R787 +R163 +L51 +L85 +R692 +R58 +R11 +R254 +L2 +R536 +R62 +L1 +L24 +R92 +R93 +R398 +R17 +R21 +L21 +L5 +L95 +R43 +L769 +R203 +L884 +L957 +L36 +L36 +R36 +R25 +L25 +L325 +R95 +R92 +R44 +R63 +L69 +R26 +L74 +L52 +L49 +L52 +L39 +L91 +R11 +R752 +L921 +R89 +L89 +L84 +R773 +R55 +L28 +R54 +L41 +R60 +L90 +R90 +R354 +L54 +R56 +L598 +L358 +L28 +L14 +L64 +L59 +R83 +L23 +L62 +L430 +R208 +L812 +L99 +L68 +R54 +R14 +L58 +R70 +R16 +L30 +R56 +L54 +L31 +L69 +R873 +L59 +L94 +L20 +L1 +L82 +R6 +L478 +R41 +L5 +L68 +R80 +L49 +L44 +L92 +R92 +R36 +R720 +R65 +R46 +L7 +R30 +L59 +L99 +R522 +R818 +L72 +R74 +L2 +R28 +L42 +L57 +R79 +R26 +L18 +R12 +R8 +R34 +R64 +L6 +R48 +R130 +R80 +L52 +R94 +R56 +L72 +R33 +L61 +L64 +R911 +R97 +R6 +R81 +L66 +L21 +L75 +L25 +R26 +L3 +R77 +R97 +L3 +L55 +R802 +R59 +R53 +L99 +L71 +R17 +R89 +L42 +L47 +L35 +L744 +R79 +R390 +L90 +R856 +L37 +L3 +R84 +L90 +L21 +R53 +R75 +L50 +R33 +R70 +L205 +L23 +R5 +L27 +R751 +R64 +L19 +R91 +R93 +R89 +L31 +R13 +R6 +R99 +L12 +L79 +L26 +R78 +R63 +L5 +R854 +R43 +R108 +L12 +L75 +L80 +L52 +L32 +R151 +L891 +R56 +L65 +L41 +R41 +L44 +R65 +L21 +L36 +R180 +R56 +R30 +L12 +L43 +L375 +L671 +R14 +L56 +L5 +L382 +R57 +L99 +R5 +L63 +L32 +R87 +R66 +R79 +R486 +R14 +L120 +L80 +L53 +R966 +L774 +R26 +R57 +R278 +L60 +R55 +R58 +L53 +R90 +R10 +L18 +L95 +R20 +L93 +R224 +L367 +R55 +L26 +L36 +R24 +L688 +R33 +L33 +R57 +R22 +L164 +R85 +L119 +L58 +L23 +R19 +L28 +R6 +R3 +L89 +R73 +L84 +L62 +R24 +R21 +L83 +L21 +L479 +R30 +R535 +R86 +L25 +R932 +R52 +L451 +L1 +L96 +L11 +R14 +R33 +R93 +R9 +R62 +L11 +L51 +R402 +L2 +L8 +L362 +R34 +L77 +L763 +R84 +L848 +L565 +R48 +L19 +L24 +L9 +L67 +L24 +L92 +L8 +L88 +L312 +L47 +L56 +R13 +R31 +R72 +R34 +L47 +R35 +L35 +R850 +R50 +L29 +L565 +L22 +R98 +L60 +L18 +L38 +L559 +R63 +R77 +R53 +L95 +L60 +R476 +R339 +R62 +R95 +L66 +R59 +R10 +L79 +L105 +L24 +R288 +L33 +R825 +L4 +L18 +R91 +R60 +R92 +L13 +R47 +L69 +L32 +R54 +R8 +L59 +R347 +R954 +R84 +R66 +R98 +L43 +R45 +L58 +L85 +R117 +L574 +R64 +R36 +R52 +L99 +L53 +L74 +L26 +L237 +L63 +R64 +R36 +L166 +R66 +L48 +L20 +R34 +L789 +L46 +R12 +R17 +R40 +R65 +L65 +L40 +R40 +R21 +R79 +R23 +L95 +R14 +R130 +L43 +L29 +L80 +L95 +L325 +L66 +L24 +R47 +L36 +L43 +L30 +R299 +L39 +R723 +R69 +R827 +R9 +R864 +L528 +L72 +L51 +L3 +R38 +R82 +R12 +R237 +L40 +R725 +L79 +R2 +R98 +L721 +L16 +R99 +R11 +L394 +R47 +R781 +L60 +L68 +L85 +L815 +R21 +R12 +R5 +L55 +R17 +R204 +R87 +L82 +R91 +L69 +L38 +R7 +L857 +R57 +L88 +L412 +L29 +R29 +L24 +R22 +R2 +L92 +R92 +R45 +R635 +R749 +L77 +R406 +L11 +R53 +R48 +L14 +R66 +R25 +L94 +L31 +R51 +L51 +L42 +L27 +L93 +L23 +R13 +L44 +L23 +L80 +R62 +R57 +L8 +R88 +L95 +L63 +R26 +L48 +R779 +R95 +L19 +L87 +R93 +L61 +R691 +L78 +L866 +R46 +R2 +L95 +R12 +R94 +L86 +L20 +L352 +L33 +L77 +R593 +R26 +R20 +L8 +R9 +R22 +L66 +L669 +L11 +L54 +R78 +L2 +L56 +L20 +L951 +L49 +L96 +R51 +L55 +L34 +L865 +R99 +R51 +R49 +R84 +R19 +L3 +R72 +L495 +R23 +L23 +L88 +R938 +L74 +L53 +R94 +L25 +R54 +R20 +R457 +L77 +L99 +R643 +R13 +L79 +L47 +L54 +L92 +L8 +R608 +L8 +R86 +R114 +L47 +R99 +R18 +R206 +L88 +L61 +R24 +L35 +L15 +L34 +L609 +L69 +R11 +L40 +R22 +L3 +R6 +L32 +L56 +R3 +L51 +L49 +R33 +R64 +L78 +R86 +R59 +R503 +R726 +L24 +R31 +R45 +L949 +L96 +L140 +L91 +R83 +L52 +L55 +R61 +L81 +L25 +L42 +R82 +R89 +L90 +R61 +R22 +L22 +L77 +R18 +R93 +R66 +L63 +R363 +L1 +L48 +R49 +L718 +R56 +R62 +R928 +R34 +R38 +R62 +R38 +L904 +L7 +R66 +L55 +L93 +L671 +R46 +L23 +R146 +L93 +L144 +R18 +L850 +R64 +L369 +R69 +L88 +L40 +R28 +L56 +R96 +R60 +L84 +R94 +L10 +L790 +L37 +R455 +R72 +R61 +R34 +L995 +L90 +R83 +R15 +R57 +L23 +R70 +R44 +L5 +R49 +R7 +L92 +L80 +L87 +L648 +R86 +R14 +R53 +R28 +L53 +L62 +R32 +L55 +R977 +R680 +L676 +L198 +L26 +R37 +L37 +R8 +R92 +L28 +R84 +R44 +R27 +L71 +R44 +R58 +L64 +L4 +R53 +L77 +R99 +L65 +L68 +L432 +R783 +L83 +L52 +R50 +R37 +R65 +R67 +L104 +R37 +R81 +R31 +R64 +R834 +R390 +R42 +L79 +R97 +R40 +L94 +R27 +R267 +L24 +L580 +L37 +L632 +R16 +R48 +R165 +R35 +L85 +R94 +L32 +L68 +L15 +L85 +R42 +L19 +L65 +L58 +R87 +L87 +R649 +L16 +R67 +R66 +L66 +L82 +L18 +L17 +L462 +R279 +L881 +L64 +L55 +L68 +L289 +R67 +L92 +L19 +L86 +R687 +R77 +L77 +R63 +R62 +R75 +L716 +L64 +R880 +L30 +R43 +R45 +R85 +R98 +L19 +L70 +R348 +R12 +R58 +L70 +R83 +R12 +R5 +L44 +L77 +L92 +L998 +R11 +R343 +L732 +R89 +R33 +L4 +L44 +L188 +R703 +R30 +R70 +R276 +L78 +R20 +L11 +R493 +R583 +L15 +L68 +R68 +R351 +L86 +R77 +R62 +L35 +R27 +L960 +R96 +R18 +L60 +R25 +L83 +R488 +R87 +R77 +R39 +L62 +L29 +L41 +L31 +R16 +R56 +R320 +L193 +R68 +R5 +R4 +L43 +R74 +R10 +R73 +R107 +R936 +R44 +R395 +L86 +L14 +L7 +R7 +R44 +R1 +L44 +L81 +L18 +R14 +R84 +R48 +L509 +R61 +R534 +L34 +L17 +R17 +L96 +R346 +R86 +L24 +L318 +R82 +R24 +L23 +R88 +R35 +L48 +L78 +L74 +L53 +L88 +R77 +L89 +L91 +L8 +R52 +R6 +L77 +L53 +L76 +L96 +L97 +L80 +L42 +R276 +R539 +R70 +R30 +R20 +R80 +L96 +R21 +L70 +L55 +R756 +L40 +R184 +L392 +L845 +R37 +L57 +L62 +R38 +R39 +L58 +L58 +L42 +R935 +L45 +L70 +L20 +R92 +R66 +R42 +R36 +R40 +R66 +L76 +R34 +R93 +R3 +L96 +L61 +R5 +R56 +R33 +R67 +L96 +R96 +L59 +R82 +L64 +R43 +L34 +R93 +R111 +L7 +L65 +R54 +R91 +R17 +R53 +R21 +L19 +R87 +L4 +R33 +L33 +R74 +R26 +L96 +L38 +L151 +R120 +L96 +L509 +L460 +L78 +R8 +R25 +L625 +L66 +R44 +L68 +L48 +L62 +R90 +L671 +R657 +L76 +R96 +R56 +R182 +L34 +R24 +L24 +L90 +L58 +L15 +L37 +R4 +L4 +R65 +L65 +R75 +L34 +L11 +L30 +L884 +L16 +R24 +L77 +R29 +R16 +L19 +R27 +L4 +L396 +L99 +L1 +L55 +R55 +L67 +L33 +L70 +R75 +R78 +L83 +L12 +L361 +L35 +L92 +R441 +R26 +L30 +L837 +R96 +L67 +R418 +L5 +L42 +R44 +L44 +L94 +L34 +R28 +R51 +R49 +R99 +R96 +L19 +R6 +L82 +R99 +L58 +L541 +R251 +R53 +L80 +R76 +R65 +R46 +R89 +L42 +L86 +L8 +L64 +L84 +R364 +R13 +R18 +L4 +R93 +L107 +L50 +L52 +R9 +L36 +L64 +L90 +L76 +R466 +L10 +L38 +L95 +R43 +R88 +L88 +R6 +L20 +L60 +R99 +L38 +R469 +R691 +L83 +L64 +R38 +L38 +R43 +R52 +L1 +L23 +L71 +R212 +L12 +R79 +L79 +L10 +L39 +L152 +R393 +L49 +R80 +R988 +L11 +R77 +R91 +L3 +L161 +R12 +L85 +L61 +R830 +R81 +L6 +L975 +L890 +L62 +L61 +R12 +L4 +R5 +R82 +R134 +L25 +R9 +L16 +L5 +L379 +L65 +L35 +R23 +R16 +L39 +L44 +R67 +L280 +R39 +L280 +L2 +L57 +R57 +L29 +R29 +L58 +L64 +R46 +R19 +L39 +R53 +R143 +R17 +R15 +R94 +L12 +R80 +L94 +L83 +R81 +L935 +R58 +R10 +L27 +R998 +L402 +L67 +R82 +R17 +L943 +L692 +L45 +R735 +R55 +R16 +R4 +L82 +R45 +R75 +L25 +L75 +L94 +L810 +L71 +R65 +L81 +R509 +L11 +L95 +L33 +L179 +R63 +R37 +R86 +L86 +L923 +L77 +L24 +L94 +R18 +R64 +L78 +R62 +L48 +L62 +L38 +L546 +R21 +R4 +L2 +R96 +L73 +R10 +L210 +L81 +R304 +L1 +L986 +L87 +R71 +L673 +R69 +L90 +R57 +L6 +R19 +R4 +R6 +R114 +L20 +L229 +L31 +L51 +R503 +R5 +R3 +L644 +L4 +L40 +R106 +R56 +L59 +R495 +L10 +R823 +R20 +R75 +R49 +L33 +L834 +L35 +L62 +L3 +L34 +R99 +L65 +R76 +L66 +R37 +L17 +R83 +R92 +L5 +L36 +R65 +R37 +R6 +R315 +L87 +L33 +L1 +L66 +L19 +L86 +R5 +R55 +L55 +R5 +L19 +L86 +R46 +R928 +L74 +L38 +R38 +L14 +L676 +L47 +R26 +L89 +R88 +L88 +L45 +R35 +L10 +L80 +R24 +L175 +L49 +R65 +L677 +L13 +L75 +R97 +R68 +L23 +R25 +R50 +R23 +L11 +L429 +R17 +L50 +R63 +L830 +L48 +R97 +R91 +R22 +R83 +R55 +L96 +R12 +L15 +R83 +L39 +R95 +R7 +L39 +L71 +R32 +L82 +L87 +R56 +R44 +R772 +R38 +R24 +L34 +R1 +R24 +L25 +R3 +L703 +L48 +L52 +R469 +R25 +R83 +R23 +R17 +L95 +R66 +R12 +L60 +L81 +L96 +R937 +L99 +R780 +L581 +L32 +R43 +L6 +R595 +R72 +R73 +R55 +R28 +R44 +L72 +L614 +R14 +R96 +L28 +L63 +L805 +R91 +L86 +R71 +L76 +L75 +R1 +R54 +R343 +L25 +L98 +R86 +L86 +R76 +R53 +L29 +R756 +L92 +R170 +R48 +R14 +R2 +R2 +L22 +R22 +R25 +R90 +R85 +R222 +R682 +R7 +R89 +R619 +L16 +R50 +R90 +R857 +L59 +R94 +L16 +R81 +R698 +R202 +L42 +L17 +L842 +R1 +L34 +R34 +L42 +L58 +R257 +R43 +R45 +R70 +L76 +R61 +L2 +L57 +L634 +L7 +L50 +R450 +R67 +R26 +R7 +R28 +R46 +L50 +R776 +L59 +R88 +L36 +L93 +R370 +L2 +L62 +R89 +L99 +L508 +L40 +L91 +R123 +L80 +L28 +R87 +L61 +R77 +L70 +L255 +L50 +R22 +L32 +L42 +R14 +L62 +R95 +R605 +R3 +L33 +L27 +R22 +L17 +R62 +L60 +L37 +R26 +L20 +R81 +R397 +R72 +L64 +R95 +L89 +L442 +R18 +R567 +L78 +L263 +L29 +R616 +L48 +R41 +L75 +R65 +L11 +L72 +R21 +L21 +L39 +L27 +R223 +L57 +R42 +R58 +R73 +L82 +L79 +L521 +L33 +R942 +L47 +L87 +R749 +L752 +R97 +R51 +R32 +L49 +R106 +R38 +L64 +R74 +R52 +L48 +R48 +L6 +L91 +R42 +L945 +L53 +L147 +L657 +R19 +R38 +R14 +R86 +L139 +L261 +R89 +L9 +R32 +L85 +R892 +R181 +R52 +R48 +L93 +R93 +L713 +R47 +L67 +R5 +R17 +R22 +R47 +L78 +L9 +R939 +R33 +L205 +L72 +R734 +L764 +L41 +R36 +R469 +R19 +L158 +L696 +L62 +R53 +L53 +L40 +L863 +L66 +L664 +R930 +L51 +L49 +L22 +L78 +L18 +R19 +R999 +L40 +L355 +R93 +L98 +R44 +L91 +L615 +L38 +L858 +L342 +L792 +L57 +L325 +L326 +R24 +R94 +L97 +L21 +L55 +L236 +R71 +R55 +L23 +L12 +R11 +L79 +R68 +R96 +L324 +R156 +R41 +R2 +L71 +L64 +L452 +R20 +L933 +L71 +R60 +R74 +L34 +L85 +R72 +R68 +R943 +L613 +R89 +R26 +L89 +L626 +L4 +R19 +R24 +R415 +L34 +R195 +L47 +R99 +R48 +R81 +L10 +R55 +R74 +R95 +R90 +L85 +R49 +R990 +R2 +R59 +R57 +R43 +L94 +R2 +L8 +L774 +R27 +R47 +L78 +L79 +L43 +R241 +R59 +R601 +R34 +L935 +L86 +L24 +R510 +R550 +R70 +L69 +L68 +R17 +R56 +L63 +L93 +L888 +L12 +R16 +R25 +L304 +R43 +R90 +R96 +L66 +L56 +L44 +L76 +L24 +R28 +R656 +L21 +L63 +R546 +R87 +L56 +R50 +L830 +L61 +R60 +L60 +R41 +L82 +R54 +L20 +L429 +L50 +R24 +R64 +L38 +R38 +R17 +L34 +R79 +R83 +R1 +L94 +R77 +R33 +L34 +R8 +R26 +L88 +R28 +R60 +L269 +L31 +L48 +R79 +L459 +R88 +R73 +R74 +L924 +R17 +L37 +R40 +R29 +R8 +L947 +L49 +L144 +L2 +L4 +R44 +R62 +R76 +L87 +R11 +L44 +R77 +R17 +L33 +R63 +L80 +L2 +L98 +L55 +R92 +L92 +L67 +R16 +L94 +L25 +L75 +L21 +L79 +L29 +R429 +R24 +L431 +L6 +L22 +R35 +R9 +R91 +R39 +L9 +L55 +R88 +R632 +R105 +R7 +L23 +L36 +R81 +R871 +L849 +R51 +R75 +L977 +L28 +R619 +R9 +R313 +R64 +L75 +R8 +R31 +R65 +R973 +R21 +L83 +L99 +L18 +R72 +L26 +R54 +L41 +R74 +R39 +L26 +L45 +L1 +R37 +L37 +R89 +R13 +R37 +L39 +L7 +R57 +R550 +L93 +L75 +L58 +R26 +R204 +L88 +R41 +L1 +R338 +R45 +R87 +R38 +R36 +L54 +R79 +R33 +L97 +R39 +R68 +R32 +L359 +R74 +R739 +L15 +R94 +L11 +R78 +R54 +R39 +R17 +L910 +L565 +L35 +R748 +L48 +L35 +R35 +R4 +L4 +R39 +L732 +L22 +L6 +L33 +L1 +R65 +L10 +R36 +L46 +R54 +R56 +R93 +L93 +R67 +L67 +L15 +R326 +L61 +R90 +R60 +R772 +R28 +R72 +R28 +R77 +L77 +L14 +L59 +L791 +R30 +R89 +R504 +R27 +L13 +R27 +L812 +R12 +R50 +L150 +L43 +L57 +L65 +L6 +R952 +R19 +R5 +L90 +L15 +R79 +R95 +L74 +R7 +L70 +R63 +L89 +L89 +R10 +L8 +L3 +R92 +R68 +L46 +R27 +L53 +R43 +R839 +R69 +R363 +L70 +R81 +R69 +L10 +R782 +L43 +R91 +L23 +L745 +R19 +R47 +R79 +R85 +L33 +L627 +L25 +L261 +R329 +R16 +L84 +R304 +R23 +L34 +R68 +R45 +L6 +R38 +L36 +L15 +R13 +L719 +R74 +R22 +L2 +R25 +R54 +R46 +L15 +L85 +L62 +R87 +R11 +L63 +R27 +L44 +L444 +L48 +L18 +R54 +R91 +L23 +R346 +L39 +R25 +R9 +R9 +R5 +L605 +L18 +L39 +R39 +L2 +L37 +L261 +R871 +L71 +R31 +L31 +L77 +R78 +R89 +L21 +R73 +R48 +R66 +R5 +R72 +L85 +R52 +L10 +R8 +R32 +R70 +L25 +R91 +R34 +L23 +L8 +L236 +L2 +R69 +L41 +L59 +L85 +L15 +L79 +L21 +L54 +L65 +L81 +R96 +L92 +R43 +L130 +R83 +R26 +R5 +R24 +L12 +L15 +L83 +L45 +R66 +L76 +L87 +L3 +R856 +R97 +L38 +L310 +L774 +L31 +R73 +R617 +R10 +L61 +R27 +R34 +L8 +R87 +R58 +L837 +R686 +R58 +R56 +R54 +L58 +L216 +L81 +R88 +R13 +R88 +R36 +L24 +R23 +L223 +L59 +R959 +L557 +L15 +R72 +L17 +L97 +R14 +L28 +R28 +L35 +L65 +L46 +L2 +R48 +L79 +R79 +L62 +R13 +R549 +R69 +L93 +R29 +L905 +L93 +L8 +R963 +L312 +L21 +R107 +L536 +R70 +R69 +L439 +L337 +L92 +R29 +L73 +R32 +L59 +R30 +L625 +R39 +L65 +L42 +R63 +R20 +R80 +L82 +R682 +R15 +R47 +R20 +L232 +R50 +L3 +R11 +R69 +R4 +L881 +L86 +L14 +L39 +L9 +L52 +R10 +L91 +L8 +R5 +L489 +R16 +R57 +R34 +L34 +L25 +L21 +R46 +R34 +L1 +R67 +L131 +R30 +L43 +R13 +R628 +R43 +L19 +L85 +R864 +L43 +L57 +R44 +R56 +R94 +R26 +R56 +L22 +R63 +L576 +R19 +L77 +R17 +R54 +L506 +L89 +L59 +R2 +L25 +L77 +L11 +R45 +R66 +L95 +R80 +R55 +R14 +R72 +L39 +L57 +L25 +L38 +L467 +L11 +R94 +L583 +R11 +R89 +L868 +L932 +R39 +R972 +R89 +R19 +L63 +R844 +R231 +R67 +L98 +L29 +R40 +L39 +R314 +L92 +L730 +R70 +R66 +R85 +L59 +R62 +R997 +R15 +L54 +R50 +R59 +R667 +R19 +L51 +L12 +L78 +R85 +R690 +L92 +R17 +L19 +R519 +R2 +R98 +L902 +R18 +R84 +R770 +L84 +L28 +L58 +L97 +L16 +R30 +R283 +R24 +L24 +L66 +L18 +R88 +L67 +L98 +R2 +R46 +L87 +R52 +L63 +R49 +L38 +R2 +L17 +L885 +L48 +R48 +R10 +R90 +R98 +R136 +R66 +L91 +L38 +L71 +L74 +R334 +R142 +R98 +L17 +L78 +L88 +L26 +R57 +L92 +L309 +L20 +R773 +R89 +L17 +L72 +R19 +R824 +R84 +R83 +L69 +L35 +L6 +R72 +L50 +R2 +L56 +R566 +L234 +L70 +R14 +L23 +R69 +L51 +L39 +L78 +R11 +L36 +R11 +L77 +R69 +R37 +R63 +R7 +L97 +L11 +L983 +L33 +R779 +L140 +R42 +L14 +R58 +L8 +R25 +L116 +R53 +R538 +L21 +L32 +L8 +R61 +L874 +L42 +L18 +R34 +L45 +R45 +R50 +L50 +L770 +R70 +R68 +R12 +L58 +L51 +R42 +R87 +L22 +L54 +L91 +L79 +L1 +L378 +R25 +L15 +R475 +L44 +L33 +L47 +R637 +R975 +L48 +L398 +R96 +R77 +L75 +R411 +L22 +R19 +R724 +R51 +R29 +L20 +L98 +R306 +L89 +L59 +L52 +L13 +L287 +L48 +R95 +R53 +R16 +L97 +L17 +L5 +L97 +L67 +L33 +R90 +R616 +R94 +R11 +L35 +L82 +L37 +L187 +L74 +L28 +R46 +R586 +R76 +R24 +R78 +R16 +L94 +L682 +R70 +R12 +L647 +L753 +L12 +L79 +L31 +R53 +R99 +L30 +R207 +L69 +L30 +R66 +L74 +L42 +R11 +R67 +R64 +R96 +R5 +R499 +R94 +L94 +L81 +R70 +L403 +R58 +R567 +R427 +L42 +L5 +R47 +L30 +R960 +L868 +L76 +L50 +R26 +R6 +L6 +R7 +L52 +L55 +R75 +L20 +L55 +L743 +L61 +L96 +L25 +L45 +L30 +R19 +R81 +L19 +R19 +R907 +L73 +R66 +L65 +L53 +L97 +R14 +L34 +R77 +R58 +L53 +R653 +R97 +R14 +R88 +R4 +R28 +L41 +R31 +R79 +R9 +R99 +L770 +L38 +R55 +R13 +R32 +L38 +R38 +R68 +R74 +R39 +L94 +R64 +L51 +L6 +L594 +L19 +R741 +R49 +L97 +R26 +L20 +L7 +L75 +R2 +R154 +R64 +L65 +L53 +R34 +R2 +L12 +L24 +L12 +R56 +R12 +L8 +R530 +L932 +R54 +R81 +R19 +L19 +L52 +L29 +L60 +R60 +R23 +R76 +L299 +R49 +L49 +R60 +R40 +R816 +R84 +R470 +L212 +R76 +R960 +R6 +L20 +L759 +R479 +L9 +R9 +L583 +R83 +R162 +R533 +L65 +L130 +L7 +R31 +L25 +L82 +L85 +R53 +R85 +L815 +R45 +R12 +R39 +L51 +R62 +L968 +L73 +R76 +L196 +L13 +R58 +R997 +L43 +L68 +L45 +L935 +L78 +L167 +L20 +L86 +L21 +L80 +L15 +L18 +R33 +R974 +R826 +R199 +L66 +L219 +R45 +R41 +R34 +R66 +L58 +L35 +R542 +R65 +R303 +L69 +L536 +R74 +L586 +L85 +R685 +L74 +R74 +L56 +R199 +L15 +R72 +L81 +L72 +L47 +L72 +R7 +R95 +L20 +R290 +R76 +L565 +L164 +R53 +R99 +L15 +R816 +R79 +L42 +R20 +L95 +L68 +R866 +R85 +L821 +L62 +R948 +R2 +R88 +L907 +L88 +R41 +L48 +L845 +R47 +L54 +R54 +L12 +R12 +R7 +L60 +R8 +R45 +R64 +R183 +R53 +R622 +L22 +R20 +R19 +L39 +R65 +L92 +L14 +R41 +L92 +L8 +R54 +R52 +R12 +L918 +L141 +L59 +L62 +R3 +R53 +R171 +L65 +L31 +R689 +R88 +R54 +L58 +R53 +R5 +R77 +L94 +L83 +R86 +L46 +R860 +L936 +R80 +R92 +L36 +L87 +L52 +L50 +R89 +R34 +L34 +R83 +L44 +R988 +R40 +L67 +L991 +L54 +L768 +L87 +L82 +R815 +L12 +R24 +R55 +L66 +L734 +L19 +L46 +R9 +R20 +R36 +R68 +R732 +L54 +L25 +L96 +R29 +L989 +L62 +L3 +L67 +L60 +R72 +L31 +R86 +R8 +R47 +R435 +L4 +L86 +R21 +R671 +R21 +R865 +L78 +L525 +R36 +R861 +L72 +R38 +L538 +L50 +L11 +R63 +R98 +L68 +R71 +L3 +R41 +L41 +R20 +R44 +R36 +R35 +R465 +L91 +R158 +R405 +R57 +L28 +R91 +R8 +R28 +L28 +R2 +L91 +R90 +L19 +R83 +R35 +L252 +L48 +R49 +R87 +R64 +L64 +R64 +R46 +L42 +L76 +R51 +L50 +L468 +L989 +L72 +R19 +R48 +R97 +R36 +R43 +R807 +L31 +R29 +L13 +R23 +R658 +L98 +R95 +R87 +R11 +L87 +R776 +L9 +L91 +R75 +R343 +R99 +L84 +L33 +R11 +L11 +L72 +L53 +L309 +L99 +L67 +L44 +L16 +L55 +R415 +L44 +R85 +R48 +L27 +R138 +R67 +L67 +R846 +L50 +L136 +L825 +L35 +R55 +L155 +L35 +L69 +L96 +R449 +R29 +L78 +L70 +L32 +L98 +L98 +L2 +R64 +L44 +R80 +R445 +R89 +R44 +R92 +L54 +R92 +R97 +L905 +R107 +L7 +R65 +R884 +R65 +R71 +L2 +R513 +R955 +R49 +R82 +L1 +L81 +R86 +L566 +R459 +L32 +R53 +L96 +R96 +L4 +L73 +L23 +L1 +R26 +L85 +L64 +R24 +L86 +L92 +L22 +L29 +L71 +R81 +R19 +L757 +L45 +R38 +R67 +R171 +R5 +L140 +R53 +L23 +R31 +L13 +R13 +R83 +L818 +R32 +L74 +R77 +L98 +R9 +L11 +R43 +L704 +R461 +R22 +R28 +L3 +L66 +L19 +L38 +R71 +L905 +R10 +L95 +R46 +L62 +R69 +R52 +L36 +R26 +L45 +L655 +R12 +L84 +R96 +R658 +R73 +R6 +L84 +L77 +L19 +R88 +R35 +R67 +R9 +R38 +R82 +L21 +R258 +L20 +R31 +L57 +L68 +L47 +R84 +L79 +L81 +L92 +R91 +R55 +R86 +L816 +R838 +L30 +L83 +R23 +L72 +L84 +R85 +R7 +L43 +L14 +L85 +L866 +R93 +R7 +R41 +R82 +L9 +L56 +R42 +R67 +L14 +L53 +L31 +L40 +L229 +L1 +L443 +R48 +R261 +R735 +L72 +L828 +R49 +L49 +L629 +R29 +L47 +R76 +R46 +R56 +L98 +L53 +L394 +L573 +L80 +R67 +R947 +L87 +L237 +L23 +L81 +L49 +R30 +R50 +L16 +R36 +R79 +R16 +L67 +R28 +R40 +L66 +R59 +R26 +L85 +L87 +L35 +L918 +R80 +R3 +L843 +L212 +R12 +R74 +R20 +L73 +R79 +L26 +L430 +L64 +L80 +L378 +R78 +R671 +L35 +R344 +L63 +L612 +R95 +R88 +L88 +L42 +L42 +R84 +R7 +L71 +L622 +L277 +L37 +L42 +R40 +L659 +R22 +R39 +R38 +R857 +R32 +L222 +L44 +R74 +R722 +R43 +L24 +R24 +R71 +R81 +L152 +L30 +L23 +R53 +R54 +L50 +L4 +R92 +L67 +R32 +L57 +R770 +R30 +L35 +L65 +R91 +R9 +R83 +R98 +L781 +R51 +L14 +R31 +R703 +L289 +R18 +L66 +L134 +L3 +L18 +L369 +L10 +L21 +R689 +L32 +L36 +R29 +R71 +L195 +L5 +R9 +R37 +L946 +R20 +L220 +L192 +R34 +L26 +R496 +R21 +R98 +L231 +L95 +R79 +L977 +R9 +R51 +R33 +L24 +R60 +L36 +R62 +R338 +R4 +R96 +R97 +R3 +L226 +R20 +R89 +L83 +R6 +L24 +L782 +R74 +R821 +R81 +L28 +L911 +L37 +R50 +L85 +R19 +R23 +R12 +R2 +R62 +L45 +R30 +R16 +L84 +R484 +L84 +R51 +R449 +L56 +L47 +R13 +R90 +R72 +R69 +R59 +R67 +L67 +L69 +R69 +L99 +R209 +L10 +R98 +R26 +L87 +R63 +L15 +L685 +R809 +L2 +L7 +R85 +R37 +L822 +R96 +R4 +R14 +R86 +R68 +L68 +L105 +L295 +L611 +L98 +L230 +L86 +L75 +R492 +R32 +R62 +L86 +R96 +L29 +R233 +R914 +L14 +R49 +R33 +R55 +L98 +L39 +L5 +L30 +R35 +L77 +R760 +R39 +R85 +L407 +L823 +R873 +R66 +L506 +R182 +L97 +R5 +R901 +R78 +L266 +R587 +L985 +L15 +R82 +L62 +L72 +L132 +R60 +L76 +R44 +L44 +L42 +R808 +R34 +R21 +R85 +R94 +R20 +L18 +L96 +L23 +L83 +R40 +R71 +L28 +L73 +L486 +R64 +R66 +R136 +R10 +L844 +R44 +L588 +R19 +L62 +L93 +R14 +R56 +L850 +L96 +R25 +R175 +R85 +R169 +L54 +R50 +L83 +L106 +L49 +L12 +L43 +L69 +R612 +L10 +R50 +R695 +L95 +L46 +R606 +R40 +L940 +R60 +R3 +L163 +L131 +R223 +L1 +L11 +L53 +R44 +R586 +L2 +R55 +L96 +L14 +L791 +L23 +R514 +R310 +R55 +R86 +L951 +R76 +R83 +L85 +R10 +L84 +R45 +R255 +L72 +L28 +L49 +L319 +L228 +R924 +R80 +L38 +L159 +R86 +L15 +L75 +R93 +L61 +R32 +L7 +L29 +R75 +L197 +R87 +L78 +L22 +L78 +L22 +R37 +R63 +L78 +R90 +L25 +R89 +L55 +R36 +L73 +R93 +R27 +L805 +L77 +R25 +L73 +L12 +L594 +L75 +L10 +R85 +L73 +R5 +L110 +L78 +R46 +R5 +L350 +L76 +L65 +L294 +L24 +R95 +L80 +L31 +L38 +L35 +L2 +R346 +R91 +R28 +R905 +L59 +L74 +L7 +L93 +L5 +L95 +R82 +R61 +L83 +L21 +R442 +R41 +L22 +R698 +R2 +R5 +R3 +L22 +R15 +L5 +R59 +R20 +L388 +L91 +R6 +L46 +R44 +L323 +L51 +R47 +R78 +R49 +L75 +R48 +L12 +L86 +R76 +L59 +L43 +L37 +L212 +R59 +L59 +R82 +L682 +L27 +L73 +L736 +L19 +L45 +R727 +L46 +L81 +R1 +L84 +R484 +L28 +L67 +L6 +L8 +L47 +L99 +R789 +R69 +R4 +L74 +R31 +R3 +R918 +L86 +R10 +L10 +R28 +R84 +L43 +R86 +R8 +L377 +L20 +R621 +R42 +R71 +L699 +R99 +R248 +R36 +R496 +R920 +R92 +R8 +L261 +L84 +L755 +L15 +R50 +L48 +L87 +L23 +L296 +L81 +R60 +L33 +R84 +R90 +L1 +R92 +L3 +R11 +R903 +L503 +R20 +L325 +R5 +R73 +L73 +R66 +L65 +R99 +R86 +R14 +R637 +L337 +R38 +L565 +R20 +L893 +R96 +L13 +L83 +L61 +L83 +R144 +R89 +R11 +L74 +R74 +R85 +R22 +R27 +R66 +R5 +R95 +R91 +R66 +R46 +R5 +L83 +R51 +L87 +L93 +R4 +L463 +R77 +L19 +R591 +L11 +R74 +L49 +L80 +L20 +L81 +L690 +R15 +L948 +L96 +R67 +R33 +R6 +L57 +L49 +L36 +L32 +R74 +R94 +R69 +R31 +L73 +L30 +R80 +L77 +R47 +R37 +R16 +R56 +L524 +L628 +R42 +L546 +L44 +L54 +R55 +R43 +L22 +L14 +R36 +L82 +R461 +L79 +R29 +R31 +L91 +R431 +L14 +R214 +L16 +R16 +L53 +L47 +L491 +R11 +L49 +L27 +L78 +R38 +R98 +L2 +R624 +R6 +L10 +L21 +R66 +R535 +L93 +L60 +L312 +L86 +R63 +L20 +L83 +R91 +R77 +L25 +L55 +L48 +L49 +R75 +R48 +R429 +L813 +R65 +R96 +R89 +R11 +R90 +R63 +L12 +L94 +L74 +R60 +L162 +L71 +R226 +R5 +R21 +L53 +R1 +L19 +L46 +R32 +R35 +R98 +R64 +L33 +R69 +L933 +L367 +L74 +L626 +L20 +L580 +R1 +R99 +L972 +R61 +R11 +R28 +R72 +L78 +R78 +R7 +R93 +L99 +R99 +L53 +R66 +R287 +L72 +L228 +L649 +R33 +R65 +R51 +L415 +L53 +L69 +L20 +L43 +R31 +R60 +R68 +L59 +R28 +L28 +L11 +R14 +L67 +R45 +R6 +L15 +R89 +R39 +L36 +L54 +L610 +L1 +L68 +R66 +R3 +R72 +R54 +R74 +L2 +R802 +L1 +L455 +L972 +L856 +L358 +L65 +L81 +L26 +R65 +R49 +R41 +R48 +R771 +R40 +R41 +L41 +L50 +R133 +R62 +L45 +L89 +L11 +L86 +L79 +L74 +R66 +R826 +R47 +R56 +L18 +L69 +L40 +R495 +L124 +R6 +R11 +R48 +L30 +R565 +R4 +R96 +R28 +R816 +L44 +L98 +R34 +R64 +L70 +L95 +L31 +R691 +R36 +R85 +L53 +L40 +L25 +L98 +L760 +L40 +R14 +L59 +L32 +R595 +R82 +L23 +R323 +R25 +L25 +R416 +R435 +L651 +L88 +R88 +R96 +R80 +R24 +R4 +L98 +R46 +L80 +R42 +L48 +L66 +L901 +R1 +R4 +R25 +R68 +R90 +R13 +L82 +L473 +L43 +L2 +R13 +R87 +R29 +L717 +L87 +L27 +R78 +R38 +L14 +R144 +R69 +R328 +L41 +L20 +R20 +R97 +L97 +R70 +R30 +R61 +R651 +L20 +L55 +L74 +R4 +R20 +R13 +L27 +R58 +L12 +L419 +R94 +L44 +R40 +R531 +R89 +R98 +L51 +L57 +R35 +R165 +R141 +L94 +R22 +R88 +L39 +R1 +L16 +L65 +L938 +L94 +R94 +L88 +R2 +R32 +L46 +R89 +R77 +L21 +L645 +L83 +R31 +L5 +R440 +L72 +L49 +L1 +L693 +R532 +L78 +R33 +L55 +R48 +R52 +L61 +R6 +R54 +L99 +L43 +R43 +R83 +R17 +L79 +L298 +L97 +L50 +R24 +R24 +L624 +L92 +L2 +R83 +L742 +R53 +R65 +L23 +R19 +L430 +L31 +R75 +R425 +R88 +L88 +R96 +L66 +L99 +L18 +R836 +R51 +L93 +L7 +L70 +R88 +L18 +R77 +L15 +R38 +R52 +R89 +L56 +L385 +R91 +R643 +L64 +R11 +R7 +R45 +L333 +R44 +L44 +L72 +L56 +L72 +L843 +R43 +L574 +L26 +L19 +L881 +L487 +R16 +L43 +L37 +L37 +L26 +R76 +R38 +L24 +R324 +L38 +L74 +R12 +R92 +R59 +L51 +L65 +R94 +L46 +L983 +L64 +L59 +L77 +R96 +L56 +L581 +L74 +R15 +R31 +L47 +L123 +R98 +L55 +L4 +R393 +L16 +R523 +L85 +R85 +R9 +L912 +L97 +L87 +L81 +R9 +L732 +L334 +R182 +L57 +R243 +L25 +L18 +R11 +R85 +L735 +L17 +R45 +R11 +L44 +R15 +L26 +L61 +R16 +L56 +L47 +L23 +R423 +L63 +L61 +R57 +R14 +L96 +R55 +L126 +R25 +R71 +R27 +R639 +L74 +L65 +L206 +R87 +R64 +R55 +L31 +R31 +R98 +L50 +L4 +L95 +L49 +R62 +R7 +R31 +R72 +R442 +L59 +L692 +L63 +L81 +R56 +L975 +L21 +L79 +R67 +R69 +R64 +L951 +L32 +R83 +L70 +R65 +R11 +R94 +R59 +L44 +L71 +L82 +R78 +R60 +R4 +R45 +L39 +L88 +R28 +R51 +L82 +R81 +R87 +L87 +L3 +L97 +R42 +L67 +R86 +L12 +L49 +L9 +R42 +R67 +R84 +L89 +L95 +R59 +L59 +L3 +L59 +R62 +L56 +L44 +L59 +L75 +L66 +L94 +L71 +L25 +L92 +R73 +R66 +L1 +R65 +R41 +R44 +R27 +L44 +L29 +L6 +R15 +R7 +L36 +L18 +R2 +L6 +R30 +L21 +R39 +R30 +R7 +R27 +L13 +L44 +R21 +R36 +L41 +L9 +R5 +R21 +R47 +R1 +R31 +R34 +L27 +R18 +L28 +R27 +R48 +R25 +L28 +R50 +R45 +L29 +R16 +R50 +R42 +L33 +L1 +L31 +R24 +L36 +L41 +R3 diff --git a/2025/d1_my_input.txt b/2025/d1_my_input.txt new file mode 100644 index 0000000..98f2f14 --- /dev/null +++ b/2025/d1_my_input.txt @@ -0,0 +1,10 @@ +R150 +R50 +R100 +R50 +R50 +L150 +L50 +L100 +L50 +L50 diff --git a/2025/d1_test_input.txt b/2025/d1_test_input.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/2025/d1_test_input.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/2025/requirements.txt b/2025/requirements.txt new file mode 100644 index 0000000..e69de29