From c7454a0202aabe57bbda52c9b28695af77b189ad Mon Sep 17 00:00:00 2001 From: Lol3rrr Date: Thu, 8 Jan 2026 19:21:43 +0100 Subject: [PATCH] Implement 2025 - Day 1 - Part 1 --- 2025/01.rs | 63 + 2025/inputs/01_1.txt | 4604 ++++++++++++++++++++++++++++++++++++ 2025/inputs/01_example.txt | 10 + 3 files changed, 4677 insertions(+) create mode 100644 2025/01.rs create mode 100644 2025/inputs/01_1.txt create mode 100644 2025/inputs/01_example.txt diff --git a/2025/01.rs b/2025/01.rs new file mode 100644 index 0000000..df483d7 --- /dev/null +++ b/2025/01.rs @@ -0,0 +1,63 @@ +---cargo +--- + +static CONTENT: &'static str = include_str!("./inputs/01_1.txt"); + +#[derive(Debug)] +enum Direction { + Left, + Right, +} + +#[derive(Debug)] +struct Rotation { + direction: Direction, + amount: usize, +} + +fn main() { + let rotations: Vec = CONTENT.lines().map(|l| l.trim()).filter(|l| !l.is_empty()).map(|l| { + let (direction, raw_amount) = l.split_at(1); + + let direction = match direction { + "L" => Direction::Left, + "R" => Direction::Right, + other => unreachable!("Unknown Direction: {:?}", other), + }; + + let amount = match raw_amount.parse::() { + Ok(a) => a, + Err(e) => unreachable!("Invalid Amount ({:?}): {:?}", raw_amount, e), + }; + + Rotation { + direction, + amount, + } + }).collect(); + + println!("Rotations: {:#?}", rotations); + + let mut count = 0; + + let mut state: isize = 50; + for rot in rotations.iter() { + match rot.direction { + Direction::Left => { + state = state.strict_sub_unsigned(rot.amount); + state = state.strict_rem_euclid(100); + } + Direction::Right => { + state = state.strict_add_unsigned(rot.amount); + state = state.strict_rem_euclid(100); + } + }; + + println!("Applying {:?} => {}", rot, state); + if state == 0 { + count += 1; + } + } + + println!("Result: {}", count); +} diff --git a/2025/inputs/01_1.txt b/2025/inputs/01_1.txt new file mode 100644 index 0000000..7ae7a2b --- /dev/null +++ b/2025/inputs/01_1.txt @@ -0,0 +1,4604 @@ +L40 +R27 +R20 +R12 +R28 +L9 +R31 +R45 +L19 +R2 +L25 +L46 +R1 +R26 +L44 +L27 +R11 +R41 +L11 +R14 +R33 +L2 +R24 +L8 +L31 +R3 +R3 +R17 +L14 +L8 +L16 +R44 +L39 +L7 +R2 +L17 +L2 +R33 +R50 +L33 +R45 +L33 +L22 +R35 +R50 +L24 +R47 +L50 +L49 +R14 +R13 +R10 +R45 +R96 +R4 +R29 +L29 +L34 +L66 +L59 +L69 +R18 +R56 +R54 +R5 +L20 +R92 +L38 +R99 +R62 +L87 +R20 +R41 +L97 +L77 +L93 +R85 +L92 +R82 +L82 +R71 +R28 +L94 +L96 +R97 +R10 +L16 +L48 +L52 +R92 +L16 +L44 +L32 +R72 +L10 +R38 +L45 +R17 +R7 +R14 +R7 +L69 +L44 +L87 +R87 +L68 +R24 +L67 +R95 +L60 +L65 +L46 +L603 +R272 +L69 +L93 +L73 +R366 +R76 +L75 +R515 +L96 +L214 +L428 +L55 +R327 +R5 +R10 +R16 +R19 +R176 +L878 +L24 +R59 +R75 +L8 +L720 +R30 +L30 +R87 +L37 +R70 +R96 +R4 +L4 +L23 +R27 +R268 +R64 +L825 +L49 +R942 +R24 +L24 +R90 +L63 +L259 +R76 +L60 +R86 +L5 +R63 +L928 +L95 +R129 +R66 +R85 +R415 +R64 +R178 +R92 +L64 +R78 +R52 +R30 +R76 +L75 +R92 +R77 +R24 +L38 +R14 +R396 +L96 +R11 +R22 +L270 +R89 +R148 +L83 +R36 +R47 +R34 +L34 +L16 +L8 +L69 +L66 +R28 +L9 +R23 +R358 +L41 +L95 +R95 +L672 +L656 +R289 +R44 +L5 +R707 +R93 +L32 +L43 +R88 +L61 +L52 +R6 +R585 +R38 +L29 +R441 +R959 +L42 +R708 +R51 +L58 +L59 +L54 +L61 +L85 +L47 +L453 +R45 +L64 +R57 +L13 +R56 +L81 +R41 +L43 +R54 +R47 +R1 +L43 +R943 +R90 +L48 +R80 +L70 +R37 +L85 +L403 +L71 +R70 +L667 +R856 +L89 +L31 +R21 +L207 +R17 +L27 +L16 +R11 +R74 +R405 +R53 +R41 +L59 +L48 +R33 +L8 +L59 +L55 +L45 +R51 +L15 +L136 +R5 +R1 +L18 +L88 +L41 +R19 +L73 +L25 +R20 +L13 +R42 +R41 +R468 +R62 +R8 +R85 +L41 +L52 +R87 +L87 +L29 +R929 +L12 +R22 +R25 +R58 +L54 +L72 +R733 +R612 +L99 +L1 +R86 +R43 +R28 +L669 +R25 +R153 +R81 +R41 +L19 +L69 +L12 +R40 +R171 +L15 +L73 +L301 +L22 +L47 +L68 +R32 +L17 +L89 +R89 +L13 +R13 +R833 +R29 +L36 +L79 +L751 +L6 +R54 +L54 +R17 +R993 +R49 +R51 +L31 +L69 +L95 +R37 +R567 +L53 +L79 +L77 +R70 +R832 +R46 +R13 +L43 +L823 +R4 +L99 +L358 +R29 +L268 +L71 +R660 +R81 +L973 +L92 +L79 +L62 +L75 +L92 +L38 +R38 +L79 +L616 +R60 +L65 +L39 +L19 +L161 +R19 +R70 +L70 +L74 +L34 +L92 +R61 +L61 +R19 +R99 +R82 +L717 +L8 +R31 +R511 +L17 +R134 +R43 +R62 +L28 +R89 +R10 +L27 +L42 +L99 +R537 +L179 +L19 +R319 +L87 +R36 +L49 +L97 +R25 +R999 +L27 +L509 +L55 +R64 +R62 +R38 +R96 +R4 +R813 +R123 +R63 +R1 +R67 +L457 +L94 +R21 +L76 +L46 +L432 +L22 +L5 +L47 +L46 +L23 +L44 +L96 +R32 +L32 +L265 +L868 +R233 +L47 +L53 +L53 +R69 +L16 +L226 +R86 +R873 +R590 +L80 +R11 +R10 +L49 +R85 +L172 +R32 +R1 +L84 +R23 +L12 +L97 +L90 +L89 +L12 +R95 +R30 +L79 +L756 +R88 +L178 +L23 +L37 +R69 +R391 +R953 +R47 +L29 +L17 +R95 +R51 +L41 +R21 +L62 +R63 +L89 +R633 +R18 +L43 +R18 +L12 +L975 +R538 +R56 +L35 +R6 +R64 +R46 +L34 +L126 +R344 +L84 +L93 +L78 +L488 +L74 +L907 +R34 +L904 +L85 +L74 +R63 +R99 +L99 +R261 +R45 +R94 +L645 +R43 +L50 +L47 +R177 +R683 +R70 +R78 +L9 +L668 +R48 +R520 +R72 +R28 +R90 +R10 +L76 +R76 +R11 +R77 +L88 +L31 +L80 +L781 +L77 +L7 +R17 +R59 +L861 +L11 +R72 +R99 +R4 +L31 +L86 +L69 +L17 +L5 +L995 +L65 +R78 +R87 +R306 +R62 +R432 +L57 +L7 +L836 +L79 +L21 +L77 +L923 +L49 +L85 +R25 +L91 +L66 +L74 +R60 +R43 +L70 +L556 +R49 +L58 +R52 +R20 +L539 +L61 +L90 +R390 +R587 +R913 +L10 +R46 +R910 +L46 +L84 +R84 +L8 +R79 +L71 +R83 +L83 +R59 +L24 +R833 +L33 +L35 +R375 +R9 +L84 +R55 +L62 +L5 +R90 +L52 +L60 +L23 +R96 +R46 +R9 +R6 +R85 +L85 +R11 +L15 +L96 +R46 +L63 +L357 +R45 +R73 +L73 +L34 +L37 +L90 +R90 +R42 +L89 +L12 +L411 +L426 +R96 +L867 +L933 +L36 +L93 +R25 +R23 +R785 +L4 +R84 +R16 +R293 +L69 +R96 +R2 +R578 +R714 +R36 +L350 +R2 +R15 +L46 +L71 +L163 +R42 +L479 +R10 +R150 +R39 +L99 +L88 +R511 +L93 +R49 +R221 +L17 +R192 +R25 +L36 +R17 +R2 +L78 +L405 +L73 +R39 +L566 +R69 +L82 +R242 +R35 +L92 +L35 +R63 +L48 +R281 +R67 +L20 +R14 +R6 +L60 +L59 +L99 +R718 +R929 +R397 +R663 +L1 +L88 +R73 +R240 +R87 +L50 +R65 +L17 +R2 +R60 +L60 +L65 +R65 +L68 +R68 +R34 +L69 +L701 +R36 +R7 +R12 +R2 +L17 +L60 +R493 +R710 +L47 +R91 +L491 +R1 +L23 +L50 +R72 +R91 +R78 +R16 +L85 +L67 +L94 +L56 +L5 +L83 +R553 +R52 +R90 +L25 +L88 +L77 +R29 +R67 +R804 +L433 +L67 +R37 +R63 +L953 +L62 +R442 +R73 +L28 +R728 +L73 +R1 +R29 +L48 +R193 +R98 +L33 +L22 +R11 +R54 +L10 +L82 +L273 +R728 +R38 +L11 +R10 +L74 +R26 +R64 +L548 +R5 +R56 +R226 +R66 +L156 +L68 +R93 +R547 +L47 +L610 +R71 +R25 +L63 +R45 +L219 +R51 +L65 +R39 +L74 +L19 +R20 +R99 +R762 +L13 +R55 +L99 +L5 +R23 +R45 +R732 +L91 +L9 +L877 +L23 +L142 +L558 +R33 +R67 +R866 +L931 +L890 +R355 +L64 +L60 +L33 +R57 +L77 +R16 +L57 +L24 +R86 +R56 +R70 +L895 +R25 +L69 +R469 +R95 +R5 +L64 +L60 +R24 +L796 +R96 +R77 +L13 +R204 +L68 +L73 +L27 +R974 +R26 +L45 +R87 +L724 +R96 +L36 +R22 +R7 +L743 +R32 +L515 +R419 +L91 +R91 +L17 +R75 +L29 +R26 +L69 +R51 +R40 +L77 +L29 +L71 +L704 +R52 +L148 +L65 +R48 +L35 +R52 +R721 +L663 +R6 +L64 +L5 +R85 +R73 +L79 +R58 +L29 +R89 +L29 +L463 +L87 +L13 +R51 +R15 +R84 +R850 +R95 +R5 +L19 +L36 +L64 +L10 +R29 +R889 +L97 +L1 +R9 +R11 +R322 +L10 +L19 +L61 +R23 +R34 +L25 +R60 +R60 +R64 +L16 +L843 +R26 +L630 +L579 +R30 +L847 +R19 +R81 +R891 +R84 +R83 +L58 +L29 +R429 +R492 +L92 +R56 +L35 +L28 +R7 +R61 +L52 +L309 +R6 +R632 +L38 +R80 +L76 +R96 +L79 +R1 +R78 +L24 +L18 +L458 +L23 +L173 +R87 +L10 +L581 +R618 +R982 +R48 +R52 +R65 +R27 +L92 +L33 +L67 +L23 +L58 +L19 +L2 +L45 +L98 +L24 +R69 +L486 +R65 +R783 +L662 +L817 +R32 +R51 +R34 +L57 +L43 +L229 +R729 +L96 +L34 +L70 +L39 +R39 +R9 +R91 +L72 +L28 +R43 +L43 +R45 +L33 +L80 +L33 +L334 +R240 +L192 +L13 +L60 +R60 +R64 +L64 +R78 +L215 +R54 +L2 +L50 +L91 +L174 +R50 +R14 +L62 +L2 +L756 +R47 +R80 +L90 +R90 +L471 +L81 +R76 +L46 +L16 +L45 +R12 +L21 +L562 +R991 +L15 +R51 +R56 +R55 +R45 +L17 +L47 +R49 +L51 +L15 +L99 +R43 +R73 +L27 +R33 +R98 +R66 +L6 +L37 +L7 +R888 +R37 +R540 +L34 +R51 +L38 +R25 +L91 +L34 +L910 +L91 +L96 +R56 +L711 +L48 +L32 +R25 +L76 +R29 +R19 +L917 +R353 +L186 +R31 +L27 +L99 +R36 +L56 +L481 +R658 +L63 +L14 +L53 +L62 +R92 +L503 +R20 +L994 +R206 +L37 +R32 +L27 +L874 +R48 +L51 +R22 +R661 +L22 +R927 +R15 +L47 +L72 +L381 +L70 +L11 +R98 +L871 +L79 +L46 +L93 +R23 +L755 +L42 +L54 +L16 +L65 +R12 +R94 +L68 +R543 +L87 +L76 +L26 +R72 +R98 +L122 +L63 +R46 +R28 +R20 +R53 +R46 +L89 +R487 +L359 +R72 +L89 +L11 +R37 +R263 +L11 +R58 +R53 +R45 +L30 +R7 +R99 +R79 +R50 +L44 +L6 +R10 +R977 +R78 +R35 +L57 +R75 +L918 +R165 +R35 +R13 +L717 +R87 +L98 +L60 +L25 +R197 +R12 +R91 +L36 +L64 +L64 +L470 +L866 +L60 +L12 +R72 +R65 +R17 +L82 +L41 +R45 +L4 +R70 +R30 +R239 +L39 +R89 +L89 +L41 +R41 +L249 +L41 +R51 +L60 +L47 +R51 +L13 +R8 +L20 +L80 +L245 +R919 +R929 +R97 +R517 +L18 +L899 +R701 +L737 +R236 +L89 +L11 +R18 +L92 +L31 +L655 +R33 +R84 +L55 +R106 +L8 +R9 +R91 +R38 +R8 +L649 +L55 +L59 +L98 +L248 +R702 +L39 +L60 +R21 +L90 +L71 +L73 +R43 +L49 +L19 +R80 +R18 +R43 +L468 +R89 +L94 +R730 +R74 +R54 +R34 +L62 +L2 +L12 +L88 +R2 +L86 +R986 +L72 +L86 +L44 +L1 +R3 +R534 +R266 +R74 +L60 +R13 +L88 +R520 +R41 +R65 +R235 +R232 +L32 +L74 +R47 +R431 +L4 +L92 +L8 +L833 +L67 +R49 +R88 +L46 +R9 +L67 +R22 +R53 +L85 +R77 +L95 +L496 +R53 +R471 +L717 +L16 +R45 +L45 +L22 +R10 +L57 +R69 +R21 +R79 +R63 +L29 +L34 +R50 +R99 +L549 +R21 +R836 +R954 +L3 +R292 +L63 +L37 +R32 +R968 +L487 +L91 +R144 +L56 +R91 +R9 +R34 +L41 +R97 +R39 +R361 +L58 +L264 +R25 +R87 +L90 +R8 +L973 +L35 +R57 +R60 +R4 +R64 +L85 +R39 +L17 +R478 +L484 +L21 +R151 +R80 +L26 +R10 +L35 +R41 +R728 +R71 +L15 +L91 +L9 +R78 +R39 +R31 +R82 +R70 +L96 +L4 +R63 +L63 +R43 +R57 +R36 +L24 +R96 +R52 +R99 +L59 +R35 +L87 +R13 +L80 +L49 +L432 +R99 +L430 +R72 +L41 +L40 +L72 +R256 +R920 +R36 +L99 +L68 +R67 +L51 +L73 +R36 +L12 +L84 +L16 +R32 +R43 +L36 +L77 +R87 +R851 +R90 +L4 +R53 +R76 +R25 +R60 +L904 +R11 +R95 +R68 +R23 +R407 +L44 +L56 +L177 +R87 +R62 +L91 +R474 +L74 +L81 +L876 +L22 +R36 +L73 +L74 +R9 +L58 +L42 +L984 +L16 +L42 +R56 +L14 +R64 +L64 +L96 +L657 +R76 +R77 +L20 +L898 +R18 +L96 +R96 +L688 +R75 +L93 +L69 +L27 +R68 +L447 +L19 +R637 +L57 +L37 +R57 +R8 +L302 +L23 +R562 +L45 +R62 +L94 +L68 +R61 +R181 +L58 +R77 +R1 +R2 +R11 +R69 +L57 +L77 +L10 +L37 +L62 +L25 +R21 +R3 +R51 +L2 +R51 +R9 +R91 +R42 +R56 +R56 +L63 +R99 +R92 +R464 +L60 +L137 +L62 +L87 +R638 +L38 +L92 +R45 +L53 +R8 +L8 +R52 +L601 +R686 +R3 +L40 +R85 +R26 +L76 +R862 +L37 +L60 +R63 +R37 +R180 +R20 +L53 +R53 +L64 +L53 +R17 +R71 +R81 +R35 +R313 +R32 +R71 +L71 +R60 +L92 +L2 +L98 +L1 +R701 +R89 +L59 +R70 +L85 +R285 +L81 +L40 +L79 +R22 +R28 +L50 +R99 +L499 +R90 +R10 +R85 +L85 +L30 +R30 +L63 +R63 +R883 +R17 +L50 +L3 +R22 +R940 +R23 +L32 +L332 +L72 +R49 +L387 +L258 +R267 +L67 +L82 +L92 +L96 +L42 +L14 +R654 +L82 +L42 +L666 +L157 +R75 +R87 +L8 +R41 +R42 +L34 +R24 +R30 +L38 +R19 +L54 +L539 +R747 +L73 +R440 +L97 +L143 +R81 +R19 +R514 +L14 +L99 +R899 +R50 +L371 +L79 +R14 +L14 +L125 +L575 +L71 +R71 +R63 +L972 +L55 +R475 +R89 +L25 +R368 +R57 +L56 +L44 +L81 +R41 +R289 +L89 +R40 +L40 +R71 +L11 +R28 +R84 +L858 +R26 +L143 +R43 +L62 +L38 +L65 +L127 +R99 +L28 +R571 +R77 +L25 +R41 +R57 +L93 +L607 +R960 +L34 +R53 +R21 +L82 +L65 +L953 +R24 +R11 +R45 +R79 +L892 +R33 +R75 +R38 +R87 +L82 +R823 +L40 +R41 +L442 +R92 +R84 +R80 +R44 +R24 +R43 +L67 +L44 +R44 +R59 +L64 +R65 +L66 +L194 +L821 +R26 +R66 +R29 +R43 +L343 +R35 +L535 +L91 +R833 +R59 +R75 +R24 +R79 +L78 +R88 +R511 +R24 +L24 +L74 +L29 +L97 +R7 +R893 +R22 +L49 +R39 +L11 +R62 +L95 +L646 +R43 +L83 +L635 +L65 +L985 +R72 +L24 +R37 +R29 +L933 +L67 +L63 +R52 +R84 +R416 +R94 +L91 +L3 +R919 +R956 +L75 +L16 +L84 +L37 +R937 +R53 +L11 +L6 +L36 +L84 +R95 +L895 +L16 +L806 +R51 +L878 +R94 +R39 +L9 +L856 +R48 +L87 +L60 +L57 +L79 +R70 +L70 +R638 +L138 +L947 +L58 +R19 +R3 +R883 +R58 +L4 +R346 +R563 +R68 +R60 +L54 +R763 +L20 +R55 +L35 +L93 +R93 +R27 +L227 +R77 +R23 +R41 +L229 +R42 +L54 +R1 +R17 +R67 +L75 +R90 +L2 +R2 +L6 +L72 +L22 +R43 +R57 +L9 +R89 +L97 +R617 +R78 +R739 +R83 +R76 +R24 +R66 +L19 +R53 +R32 +L96 +L92 +R67 +L890 +R33 +L54 +L76 +L24 +L66 +R66 +R7 +L46 +R10 +L33 +R551 +L589 +L98 +R98 +L67 +R87 +R123 +R57 +L938 +R53 +R803 +L71 +L12 +R16 +R44 +L586 +R85 +L87 +L51 +L91 +L741 +R605 +L702 +L41 +L86 +L74 +L26 +R203 +L103 +R35 +L821 +L14 +L95 +L55 +L446 +L760 +R12 +L56 +R43 +R178 +L19 +L92 +R28 +R53 +R86 +L84 +R68 +L374 +R80 +R33 +L45 +R907 +R463 +R29 +R46 +R59 +L59 +R38 +L238 +R27 +R43 +R30 +R29 +L29 +L32 +L66 +R22 +R776 +R586 +L32 +R46 +L970 +L76 +L55 +L77 +L18 +R844 +R52 +L20 +L80 +R325 +R14 +R761 +L25 +R25 +L89 +R89 +R24 +L988 +R27 +R37 +L999 +R99 +L87 +R17 +L94 +R464 +R7 +R93 +R99 +R1 +L92 +L594 +R53 +L186 +R86 +R150 +R49 +R734 +R827 +R15 +L42 +R84 +L84 +R74 +R35 +R56 +L89 +L24 +R48 +R98 +L80 +L7 +L73 +L76 +R38 +R938 +R71 +R58 +R33 +L303 +L90 +R907 +R90 +R36 +L28 +L63 +L32 +R659 +R77 +R47 +L738 +L31 +R557 +L88 +R72 +L72 +L66 +L39 +R5 +R64 +L223 +L16 +L562 +R73 +R64 +L51 +L75 +L15 +L7 +L82 +L50 +R80 +L770 +R85 +L47 +R687 +L587 +R87 +R54 +L9 +L95 +R88 +L93 +L574 +R74 +R756 +L82 +R26 +R40 +L49 +L19 +R27 +L2 +L97 +R14 +R274 +R12 +R19 +L48 +R751 +R419 +L41 +L64 +R64 +L7 +R228 +L11 +R90 +L405 +R99 +R92 +L31 +L55 +L694 +R632 +L638 +R666 +R34 +L23 +L77 +L60 +R98 +L72 +L21 +R14 +L59 +L61 +L42 +R31 +R72 +R8 +L63 +L12 +R92 +L25 +L81 +L19 +L802 +L54 +L80 +R31 +L33 +R17 +L74 +L6 +R16 +L16 +L36 +L63 +R290 +L671 +L19 +L21 +L3 +L48 +L56 +R409 +L854 +L27 +R90 +L90 +R50 +L25 +R37 +R38 +R40 +R82 +R12 +R66 +L42 +L58 +L82 +R82 +R120 +L19 +L897 +R596 +R21 +L11 +L7 +L603 +R98 +L61 +L919 +L43 +R66 +L41 +R44 +L33 +R942 +R647 +R766 +L32 +R66 +L18 +L103 +L61 +R82 +L32 +L371 +L97 +R126 +R832 +R484 +R98 +R60 +R95 +L894 +L36 +R89 +R46 +L32 +L68 +L84 +L76 +L440 +R78 +R22 +R81 +L34 +R347 +R455 +R51 +R247 +R53 +L4 +R498 +L94 +R83 +R80 +R133 +L51 +L45 +L73 +R85 +L912 +R34 +R753 +R49 +R64 +R492 +L92 +R95 +R85 +R27 +L7 +R56 +L56 +L30 +L74 +R77 +R80 +R233 +R11 +L60 +R67 +R658 +L53 +L124 +R15 +L30 +R972 +L35 +L3 +R25 +L93 +R64 +L14 +R48 +L70 +L47 +L17 +L397 +R60 +L15 +R50 +R33 +R65 +L206 +R402 +L8 +L41 +R722 +L65 +L48 +L6 +L46 +R74 +R26 +R3 +L37 +R15 +R19 +R51 +L25 +L72 +L555 +L44 +L84 +L440 +R10 +R18 +R52 +L75 +R29 +R42 +L24 +R96 +L79 +L2 +R37 +L349 +L86 +R336 +L36 +L44 +R44 +L423 +L87 +R23 +L13 +R97 +L81 +L16 +R27 +L58 +L87 +L45 +L37 +R80 +R20 +R75 +L23 +L52 +R919 +L881 +L38 +L13 +R9 +R65 +L61 +L76 +L80 +L971 +R61 +R251 +R15 +R345 +R755 +R10 +R48 +L458 +R90 +R38 +L28 +R44 +R95 +L4 +L78 +R229 +R60 +R54 +L45 +R71 +L84 +R6 +L62 +R9 +R74 +L69 +L528 +L35 +L7 +L2 +R72 +L13 +L287 +R8 +R31 +R61 +L669 +L76 +L55 +L910 +R21 +L11 +R82 +R32 +R64 +L378 +R48 +L648 +L16 +L92 +L5 +L78 +L49 +R40 +L4 +R4 +R276 +R86 +R20 +R56 +L44 +L344 +R20 +R72 +R758 +R97 +R448 +R55 +L37 +L16 +L12 +L61 +R26 +L8 +R10 +R698 +L43 +L3 +R77 +L31 +R39 +R61 +L340 +L47 +R7 +R94 +R19 +L81 +R715 +R10 +R69 +R605 +L520 +L94 +L35 +L50 +R664 +L701 +L45 +L40 +L46 +R460 +R502 +R57 +L97 +L93 +R76 +R59 +L82 +R34 +R39 +L492 +R45 +R173 +R1 +L866 +R64 +L25 +L39 +L9 +R30 +L78 +R29 +L72 +L27 +R91 +R136 +R15 +R85 +R859 +L448 +L12 +R32 +R69 +L94 +R93 +R701 +L62 +R62 +L10 +L12 +R64 +R58 +L664 +R7 +L43 +R81 +L53 +R93 +R1 +L57 +L64 +R99 +R470 +L961 +L15 +L94 +L656 +R29 +L73 +L3 +R403 +L86 +R86 +L47 +R47 +R76 +R55 +L13 +L18 +L71 +L329 +R407 +R893 +L114 +L86 +L99 +L40 +R63 +L24 +L49 +R24 +L773 +L2 +R69 +R3 +R828 +R49 +L162 +L87 +L20 +L61 +R69 +L88 +R57 +R83 +L140 +R663 +R718 +L70 +L11 +R414 +L814 +L35 +L65 +L94 +R30 +L72 +R35 +L61 +L38 +L242 +R64 +R835 +L72 +R15 +R5 +R70 +R793 +L4 +L493 +L84 +L87 +R995 +R868 +L63 +L89 +R5 +L16 +R50 +L50 +R17 +R17 +R78 +L12 +R92 +R8 +L40 +L260 +L47 +R361 +R7 +R79 +R87 +R89 +L95 +L881 +L68 +R42 +L74 +L35 +R482 +L47 +R37 +R63 +L1 +L99 +R341 +L810 +R69 +L5 +L913 +L70 +L24 +R12 +L80 +L20 +R44 +L44 +R98 +L64 +L20 +L75 +L39 +R36 +L36 +R56 +L309 +L45 +R98 +L889 +R89 +R11 +L11 +L36 +R315 +L79 +R13 +L13 +R55 +R71 +R33 +L59 +R36 +L36 +L45 +R45 +R614 +R55 +L86 +R46 +R62 +L52 +R65 +R96 +R17 +L221 +R26 +L31 +L47 +R87 +R22 +R304 +R18 +R905 +L45 +R65 +R90 +R96 +L73 +L713 +L93 +R93 +R27 +R73 +R60 +L83 +L77 +R71 +R67 +L338 +L76 +L24 +L372 +L516 +L77 +R17 +L50 +R325 +L55 +R92 +R236 +L68 +R10 +R58 +L94 +L706 +L884 +R84 +L21 +R79 +R84 +L54 +R806 +R406 +R369 +L69 +R73 +R27 +R754 +R341 +R75 +L370 +L34 +R61 +R73 +R35 +R65 +R22 +R66 +L88 +L699 +L21 +R27 +L82 +R62 +R13 +R63 +R66 +L19 +L10 +L30 +L270 +L30 +R36 +R731 +L37 +R71 +R729 +L25 +R69 +R55 +R1 +R90 +L148 +L17 +R654 +R67 +R54 +R1 +R99 +R79 +L58 +R16 +R63 +L50 +R28 +R12 +L32 +L309 +R108 +R41 +R6 +R52 +R17 +L173 +L25 +R136 +R589 +R82 +R66 +R7 +R135 +L97 +L793 +L72 +R772 +L3 +L415 +R18 +L997 +R56 +R39 +L87 +L11 +L80 +R480 +L11 +R2 +L91 +R352 +L4 +L27 +L42 +R221 +R94 +L17 +R23 +R87 +L887 +L44 +L6 +L50 +L83 +R69 +R959 +R55 +R79 +R899 +R22 +L438 +L62 +R46 +R34 +R1 +L93 +R356 +R402 +L35 +R495 +L65 +R93 +R82 +R740 +R95 +L51 +L31 +L2 +L21 +R209 +L64 +L27 +L64 +R94 +L793 +L7 +R24 +R17 +L254 +L81 +L77 +R99 +L36 +L86 +R663 +R29 +L92 +L79 +L56 +L31 +R66 +R21 +L455 +R741 +R93 +R56 +R54 +R541 +L43 +R22 +R70 +L623 +R41 +L46 +R59 +R79 +L43 +L67 +R587 +R66 +L33 +L91 +L34 +L61 +R27 +L48 +R287 +L48 +R75 +R13 +R25 +L65 +L98 +R92 +L794 +R38 +R8 +R54 +R472 +R27 +R15 +R87 +L41 +L60 +R42 +L504 +R41 +R64 +R14 +R40 +R77 +R926 +L19 +R219 +R77 +R23 +L74 +L57 +L171 +L39 +R68 +L60 +R74 +L5 +L36 +R41 +R3 +L44 +R55 +R45 +L82 +L55 +R37 +L718 +R30 +L12 +R18 +R88 +L34 +R29 +R99 +L27 +L47 +L61 +L62 +R597 +L36 +R36 +R45 +L40 +L27 +L14 +R65 +L54 +L15 +R40 +R33 +L76 +L89 +L44 +L24 +L55 +R20 +L241 +R44 +R37 +L81 +L801 +L485 +L62 +R24 +L5 +L49 +R793 +R585 +L24 +R46 +R301 +R189 +R65 +R85 +R34 +R980 +R57 +L48 +R72 +L39 +L69 +R73 +L846 +L84 +L516 +L83 +R4 +R79 +R23 +R77 +R15 +L99 +L90 +R38 +R41 +L5 +L89 +L340 +L270 +L72 +R71 +L90 +R11 +L47 +L74 +R812 +R45 +L57 +R35 +L864 +L66 +R313 +R204 +R56 +L78 +R29 +R435 +L64 +R34 +L34 +L78 +R58 +L80 +L679 +L14 +R93 +R290 +L90 +R7 +R93 +R2 +R298 +L17 +L169 +R36 +R750 +R38 +R407 +R76 +R7 +L807 +L512 +R79 +L25 +R37 +R206 +R74 +L80 +R590 +L5 +R21 +R99 +L20 +R78 +L45 +L44 +R58 +R70 +R98 +L56 +R17 +L61 +R961 +L56 +R711 +L76 +R60 +R91 +R4 +L43 +L30 +R65 +R74 +R46 +L25 +L493 +L89 +R85 +R15 +L56 +R656 +R47 +L67 +R48 +R1 +R243 +R28 +L34 +L266 +R760 +R840 +R27 +R73 +L87 +R47 +R40 +L451 +L34 +R46 +R63 +L50 +L39 +L69 +L66 +R51 +R79 +R46 +L76 +L66 +L46 +R92 +R80 +R40 +R70 +R214 +L84 +R41 +L41 +R675 +L30 +L29 +R497 +R55 +L72 +R86 +L42 +R97 +L37 +R60 +R91 +L66 +L17 +R169 +R663 +R14 +L17 +L97 +L45 +L57 +R30 +R58 +R14 +L821 +L90 +L471 +L63 +L70 +L85 +R65 +R51 +R84 +R82 +L41 +R605 +R13 +R41 +L6 +L2 +R8 +R8 +R92 +R10 +R537 +L527 +R763 +R823 +L44 +R196 +R69 +L321 +L6 +R180 +L71 +L739 +L70 +R662 +R75 +R6 +R96 +L23 +L16 +R687 +L23 +R436 +L578 +L90 +L24 +R592 +R681 +R19 +L17 +L82 +L92 +R91 +L660 +R77 +L99 +L58 +L60 +R88 +R58 +L84 +R779 +R59 +R42 +R35 +R923 +R10 +L591 +R709 +L2 +L43 +L83 +L51 +L56 +R46 +R661 +R58 +R12 +L370 +R33 +R404 +R85 +R467 +R8 +R3 +R443 +L41 +R739 +L55 +L85 +L66 +L57 +L59 +L86 +R67 +L93 +R93 +L72 +R472 +L76 +R23 +L80 +R396 +L71 +R8 +L173 +L746 +L88 +L24 +R54 +R31 +L53 +L30 +L71 +L85 +L215 +L72 +L3 +L46 +R91 +L95 +L775 +R30 +R592 +R77 +R12 +L11 +L579 +R237 +L58 +R10 +L29 +L7 +R26 +R41 +L884 +L57 +R95 +L92 +R66 +R43 +R88 +R52 +L34 +R9 +L22 +L305 +L812 +R636 +R76 +L864 +L722 +L75 +L39 +R811 +R594 +R4 +L86 +L70 +L42 +R89 +L89 +L164 +L47 +R270 +L28 +R53 +R753 +L415 +R604 +R2 +L39 +L6 +R6 +R278 +L67 +R58 +R54 +R1 +R9 +L899 +R29 +R70 +L18 +L57 +L46 +R88 +R67 +R9 +L72 +R47 +L51 +L882 +R56 +L74 +R668 +L332 +L83 +R52 +L36 +L69 +L99 +R99 +R47 +L47 +L153 +L247 +L38 +R62 +R66 +R58 +L38 +R90 +R64 +L30 +R85 +R84 +R35 +L78 +L50 +R90 +R78 +L242 +L1 +R59 +R6 +R71 +L79 +L439 +L53 +L92 +L908 +L77 +R77 +R226 +R313 +L349 +R78 +L41 +L27 +R877 +L77 +R471 +L78 +R22 +R760 +L75 +R88 +L58 +L22 +L742 +L966 +L89 +R89 +R85 +L55 +R370 +R32 +L32 +R25 +R75 +R42 +L77 +R35 +R846 +L46 +R937 +R8 +R932 +R56 +L297 +L33 +L81 +L18 +L30 +L84 +R467 +L57 +R53 +R347 +L75 +R75 +L9 +L22 +L69 +L74 +R74 +R223 +L23 +R9 +R152 +R31 +L172 +L87 +L33 +L13 +R88 +R566 +L29 +L12 +L372 +L43 +R15 +R133 +L69 +L64 +R49 +L59 +R831 +L721 +R12 +L42 +L59 +L790 +R479 +R76 +L771 +L11 +L801 +R37 +R91 +L68 +L376 +R11 +R11 +R1 +R88 +R85 +R27 +L94 +L6 +L31 +R64 +L482 +R21 +L338 +L34 +R122 +L2 +L97 +R77 +L634 +L4 +R10 +L5 +L61 +L53 +R857 +L10 +L39 +L861 +R92 +R8 +R81 +L28 +L53 +L94 +L6 +R966 +R80 +L17 +R35 +R52 +L66 +R50 +R17 +R83 +R299 +L32 +L427 +L576 +R436 +L36 +R36 +R37 +R258 +L15 +R835 +R21 +L13 +R777 +L16 +L84 +R45 +L45 +L53 +R29 +L76 +R13 +R9 +L724 +R2 +R45 +L887 +L58 +L658 +R58 +L401 +R49 +L465 +L355 +R91 +L19 +L75 +R41 +L76 +R259 +L249 +L731 +R31 +R127 +L2 +R9 +L34 +R69 +R76 +R771 +L916 +R3 +R27 +R68 +R49 +L64 +R62 +L45 +L55 +R71 +R86 +L2 +L53 +L46 +R30 +R669 +L65 +R965 +R84 +L66 +R82 +L4 +L36 +L360 +L42 +R82 +R46 +L31 +R940 +L95 +L594 +R40 +L543 +L67 +R5 +R8 +R76 +R74 +L92 +R27 +R66 +L7 +L374 +R38 +R43 +L23 +L440 +L37 +L81 +R28 +L16 +L31 +R41 +L41 +L15 +L81 +L25 +R54 +R80 +L42 +R29 +L94 +R64 +R13 +L83 +L67 +L5 +R84 +R3 +R85 +L39 +L26 +R87 +R46 +R32 +R6 +L6 +L72 +R5 +L46 +R93 +R20 +R70 +L9 +R4 +R14 +L69 +L12 +R72 +R30 +R651 +L10 +L96 +R19 +L11 +L39 +L14 +R41 +R59 +R513 +L13 +L6 +L86 +L11 +L16 +R53 +R46 +R81 +L886 +R61 +R34 +L34 +L36 +L61 +R61 +L20 +L780 +L92 +R30 +R17 +L55 +R94 +L131 +R37 +L6 +R6 +R47 +R53 +R963 +R732 +R5 +L6 +L86 +R21 +R60 +L97 +L62 +L85 +L45 +L81 +L19 +R221 +R14 +R79 +R32 +L46 +L34 +R13 +R24 +R54 +L28 +R71 +R67 +L57 +L65 +R555 +R20 +R80 +L4 +R204 +R93 +L315 +L378 +R98 +R26 +R76 +R837 +R63 +L92 +R92 +R57 +R25 +R18 +L421 +L10 +R731 +R46 +R653 +L99 +R97 +R75 +L55 +L17 +L42 +L16 +L3 +R61 +L28 +R301 +R71 +R89 +L92 +L57 +R16 +L703 +L13 +L81 +R97 +L71 +R71 +L33 +L96 +R20 +L40 +R48 +L70 +L718 +L98 +R787 +R35 +R431 +R34 +R27 +R68 +R40 +R68 +L73 +L30 +R980 +L80 +L97 +L95 +L976 +L528 +R96 +R97 +R32 +R72 +R99 +R804 +R96 +L72 +L60 +R32 +R110 +L46 +L77 +R213 +L787 +L30 +L814 +R64 +R62 +R5 +L61 +L639 +L82 +R34 +R12 +L90 +R22 +L696 +L20 +L80 +L20 +R20 +R67 +R633 +L96 +R96 +R661 +L811 +L97 +R521 +R26 +L78 +L804 +R882 +L26 +R41 +L15 +L25 +L45 +L95 +R64 +L1 +L80 +L18 +L35 +L721 +R78 +L69 +L898 +R566 +L5 +R784 +L14 +L86 +L184 +R82 +R202 +L1 +R1 +L541 +R68 +L27 +L73 +L27 +R31 +L22 +R9 +R323 +L541 +L86 +L1 +L683 +R26 +L56 +R93 +R98 +R24 +R685 +L38 +L25 +L404 +L233 +L984 +L21 +R96 +R40 +R25 +L12 +R56 +R77 +R79 +R75 +L34 +R3 +L943 +R92 +L83 +L644 +L622 +R12 +R549 +L61 +L85 +L24 +R588 +L11 +R29 +L47 +R14 +R65 +R71 +R579 +L34 +L62 +R215 +L21 +L27 +L494 +R21 +L81 +R35 +L659 +L72 +R14 +L13 +R44 +L45 +R1 +L1 +R96 +R71 +R83 +R32 +R511 +L119 +R35 +L8 +L1 +L928 +L743 +R71 +L24 +R93 +L869 +R95 +R63 +R742 +L80 +L20 +R51 +R75 +L26 +R921 +R24 +L64 +R19 +R74 +L19 +L55 +R94 +L202 +R8 +R937 +L818 +L20 +L25 +R22 +L6 +L90 +L81 +L3 +L16 +L24 +R905 +L8 +R4 +R561 +R762 +L334 +R84 +R50 +R3 +R44 +R86 +R50 +L47 +R77 +L37 +L876 +L476 +L627 +R40 +R63 +L92 +L8 +L42 +R5 +L63 +R97 +R56 +L53 +R47 +R85 +R31 +L10 +R47 +R987 +R13 +R94 +R98 +R537 +R63 +R98 +R10 +R44 +R130 +R19 +L93 +L91 +L62 +R7 +L54 +L41 +R23 +R18 +R47 +L36 +R56 +R433 +L20 +L80 +L215 +L85 +R954 +R20 +L171 +L3 +L351 +L86 +L22 +L50 +L71 +R80 +L60 +R47 +L66 +L73 +R352 +R37 +L43 +L84 +L980 +L701 +L29 +L287 +L69 +R51 +R31 +R81 +L16 +R66 +L57 +R252 +L71 +L81 +R29 +L99 +R81 +R89 +L31 +R92 +R52 +L57 +R44 +L92 +R50 +L558 +R7 +L507 +L38 +R4 +L452 +R582 +L3 +R22 +R33 +R52 +R48 +R74 +L44 +R71 +R54 +R66 +L34 +R7 +R58 +R55 +R41 +R96 +R8 +L64 +L36 +R44 +L75 +L67 +R16 +R9 +L27 +R65 +L65 +R67 +L67 +L98 +L154 +R93 +R986 +R573 +R27 +L27 +L88 +L28 +R16 +L911 +L60 +L29 +L732 +R423 +L485 +R94 +L81 +L19 +L3 +R858 +R58 +L113 +L32 +R11 +L34 +R17 +L14 +R31 +R33 +L172 +L95 +L1 +R56 +L60 +R80 +L720 +L683 +R80 +R3 +L75 +R84 +R76 +R91 +L38 +L3 +L46 +L76 +R7 +L65 +L55 +R77 +R22 +L50 +L56 +L21 +L25 +R53 +L11 +L89 +L96 +L64 +R60 +L969 +R19 +L99 +R25 +R23 +R1 +L56 +R356 +L40 +R40 +R905 +L807 +L197 +R93 +L16 +L96 +R949 +L763 +L68 +R203 +L57 +R54 +R847 +L69 +R22 +R13 +L29 +L84 +L37 +R38 +R15 +L75 +L50 +L91 +L40 +R480 +L74 +L85 +L43 +L49 +R363 +R424 +R99 +L75 +L48 +R447 +R1 +R34 +R42 +R28 +L66 +R662 +R38 +R74 +R82 +R67 +L64 +L6 +L81 +L59 +L51 +L427 +L56 +L117 +L1 +L39 +L82 +R22 +L936 +L68 +L96 +L2 +R16 +R98 +L173 +L972 +L5 +R38 +L48 +L9 +R14 +L20 +R721 +R16 +L19 +R45 +L63 +L894 +R54 +R80 +R23 +R76 +R33 +R29 +L38 +R742 +L35 +R255 +L88 +L974 +L56 +L7 +R13 +R67 +R3 +R80 +L547 +R59 +R895 +L7 +R967 +L78 +R911 +R23 +R28 +R49 +R14 +R77 +R59 +L64 +R414 +R997 +R3 +R67 +L67 +R31 +L15 +R74 +R10 +R70 +L70 +R266 +R23 +L9 +R69 +R51 +L84 +L78 +R15 +R90 +L479 +R21 +L42 +L58 +R150 +R865 +L25 +R502 +L17 +L81 +R68 +R53 +L550 +R578 +R61 +R363 +L99 +L77 +L62 +L14 +L64 +R17 +R47 +R63 +L63 +R21 +L421 +L49 +R49 +R96 +L31 +L65 +R46 +L622 +R11 +R65 +L54 +L45 +L1 +R35 +R65 +L37 +L63 +L80 +L29 +R9 +L78 +L22 +L83 +R76 +L827 +L57 +L963 +R54 +R7 +L95 +L62 +R99 +R51 +L39 +R362 +R98 +L65 +L58 +L98 +L560 +R64 +R79 +L792 +R8 +R1 +L50 +R82 +L73 +L88 +L71 +R44 +R2 +L90 +L8 +R47 +R73 +L271 +R3 +R44 +R206 +L2 +L65 +R343 +L26 +R110 +L52 +R15 +R64 +L78 +R441 +R24 +R32 +R63 +R81 +L341 +R48 +R93 +R67 +R46 +R75 +L15 +L26 +R53 +L27 +L42 +R58 +R66 +L155 +L64 +R79 +R66 +R87 +R38 +L93 +L997 +L99 +R82 +L1 +R602 +R43 +R73 +L20 +R4 +L12 +L42 +L86 +L1 +L69 +L245 +R634 +L13 +R85 +R49 +L52 +L30 +L18 +L21 +L18 +L657 +L404 +L74 +L226 +R55 +R945 +L70 +L30 +R84 +R786 +L70 +R309 +R96 +L867 +R3 +R4 +R31 +R56 +L27 +R93 +R40 +L238 +L955 +R44 +R80 +R701 +L37 +L33 +L88 +R88 +L15 +R61 +L46 +L54 +L46 +R15 +R72 +L87 +L15 +R15 +R241 +L15 +R39 +L78 +R240 +L48 +L758 +L521 +R56 +L79 +L18 +R41 +L18 +L782 +L95 +R90 +R91 +L86 +L49 +R49 +L4 +R57 +R47 +R733 +R67 +L824 +R24 +R94 +L968 +R74 +L79 +L21 +R43 +L43 +L264 +R364 +R2 +R998 +L6 +L99 +L281 +R86 +L45 +R662 +R459 +L32 +L44 +L13 +L87 +R94 +L64 +L11 +L19 +R18 +R69 +R20 +R45 +R10 +L94 +R41 +L409 +R13 +R87 +R65 +L78 +L87 +L80 +L86 +L87 +R33 +R74 +L54 +R95 +R5 +L46 +L88 +L2 +R48 +R13 +R12 +R63 +L25 +R85 +R41 +R99 +L26 +L27 +R53 +L77 +L16 +L7 +L71 +L29 +L59 +L91 +L50 +L42 +L82 +R24 +L61 +R13 +L36 +R70 +L66 +L40 +R20 +R78 +R22 +L68 +L73 +R59 +L56 +L22 +L2 +R30 +R15 +R19 +L35 +R30 +R42 +L38 +L13 +L43 +R43 +R12 +R26 +R27 +R34 +L29 +L25 +R26 +R49 +R37 +R42 +R35 +L15 +R39 +R36 +L48 +R20 +R29 +R43 +R22 +L39 +L42 +R50 +R9 +L44 +R43 +R37 +L7 +L46 +L15 +L29 +R6 +R19 +L14 +L19 +L47 +R37 +L18 +R29 diff --git a/2025/inputs/01_example.txt b/2025/inputs/01_example.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/2025/inputs/01_example.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82