commit 5f14c1cf3b08cff2d8dbcadaf4ff126892af7392 Author: Andre Henriques Date: Mon Dec 1 19:50:42 2025 +0000 Day 1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..959a962 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,16 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "anyhow" +version = "1.0.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" + +[[package]] +name = "aoc" +version = "0.1.0" +dependencies = [ + "anyhow", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..37e0eb6 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "aoc" +version = "0.1.0" +edition = "2024" + +[[bin]] +name = "day1" +path = "src/day1/main.rs" + +[dependencies] +anyhow = "1.0.100" diff --git a/src/day1/day1-act.txt b/src/day1/day1-act.txt new file mode 100644 index 0000000..35d2c5f --- /dev/null +++ b/src/day1/day1-act.txt @@ -0,0 +1,4629 @@ +R49 +R27 +R22 +R5 +R6 +R10 +L13 +L37 +R17 +R6 +L2 +L23 +L18 +L3 +R39 +L14 +L24 +R22 +R48 +L22 +L22 +R7 +R9 +R36 +L10 +R40 +L36 +R25 +L50 +R11 +R46 +R37 +L25 +R44 +R4 +R4 +L22 +R47 +R8 +L42 +R45 +L11 +L22 +L8 +L48 +L50 +R26 +R38 +L48 +L85 +R88 +R18 +L99 +R63 +R93 +R39 +L64 +R69 +L96 +L64 +R91 +R69 +R26 +L26 +L5 +L95 +R15 +R85 +L13 +R18 +R49 +R37 +L91 +R42 +L28 +R51 +R69 +R92 +R70 +R84 +R77 +L57 +L30 +L85 +R57 +L11 +L70 +R36 +L97 +L72 +L89 +R48 +R13 +L30 +R30 +L10 +R91 +R29 +R90 +R79 +L863 +R67 +L83 +L70 +R46 +R3 +R94 +L36 +R58 +L595 +L29 +L51 +L43 +L77 +R6 +L16 +L996 +R98 +R5 +R41 +R62 +R53 +R196 +L74 +R25 +L51 +L26 +L70 +R71 +R346 +R30 +L655 +R718 +R837 +R40 +R83 +R77 +R461 +L35 +L26 +L99 +R99 +L68 +R68 +R113 +L61 +L52 +L460 +R9 +L49 +L982 +L3 +L15 +L30 +R99 +L51 +R1 +R81 +R74 +L8 +L92 +R97 +R29 +R188 +R70 +R85 +L843 +L39 +L1 +L33 +R95 +R78 +R18 +L21 +L950 +R43 +R110 +R52 +L52 +L984 +L49 +L94 +L76 +L19 +L78 +L65 +L437 +L31 +L90 +L56 +L4 +R85 +L931 +R50 +R541 +L67 +L95 +R92 +L80 +L62 +R75 +R19 +R203 +L547 +L20 +L80 +L16 +R16 +L19 +L85 +L73 +R99 +L45 +L77 +R16 +R44 +R40 +L7 +R84 +R323 +R186 +R61 +L447 +L16 +R446 +L30 +R39 +L99 +L40 +L58 +R21 +L52 +R96 +L7 +R73 +R62 +L23 +R88 +L33 +R27 +L243 +R37 +L64 +L24 +L266 +L34 +R76 +R43 +L76 +R657 +L944 +L56 +L68 +R68 +R96 +R14 +R58 +L33 +R26 +R28 +R77 +L51 +R85 +R58 +R804 +L630 +L49 +R17 +R166 +L66 +L41 +L99 +L60 +R57 +R43 +L16 +R543 +R73 +R6 +R41 +L95 +L52 +R11 +R91 +L11 +L91 +L31 +R78 +L81 +R34 +L21 +L872 +R38 +L15 +L30 +R92 +L68 +L98 +R10 +L673 +L3 +L60 +L47 +L453 +R477 +R50 +L756 +L71 +L82 +L589 +R71 +R499 +R15 +L14 +L9 +L105 +R14 +R55 +R56 +R89 +L4 +R465 +L7 +R22 +L553 +L23 +L52 +L82 +R35 +L71 +R42 +L64 +L81 +R59 +L61 +L25 +R72 +L73 +L99 +L86 +R86 +L82 +L18 +L9 +R9 +L579 +R284 +L66 +L23 +R75 +L22 +R162 +R36 +R42 +R91 +R57 +L44 +R87 +L4 +R4 +R67 +L21 +R72 +R296 +R105 +R81 +L49 +R88 +L43 +R4 +L77 +R77 +R23 +L63 +L60 +L36 +L69 +L317 +L16 +R11 +L73 +L40 +L634 +R56 +L51 +R87 +R82 +L375 +L11 +L14 +R10 +L31 +R55 +L52 +R86 +R80 +R3 +L51 +R798 +R70 +R32 +R87 +R1 +R565 +R60 +R87 +L328 +R30 +L91 +L33 +R22 +R14 +R67 +L60 +R42 +R74 +R96 +L87 +R54 +L60 +L197 +R45 +R67 +L55 +R25 +L563 +L63 +R1 +L42 +L83 +L75 +L41 +R496 +L43 +R42 +L48 +R848 +L36 +R317 +R65 +L54 +L46 +R4 +R96 +R17 +L17 +R878 +L78 +L32 +L98 +R377 +L53 +L38 +L10 +R997 +R22 +L42 +L98 +L25 +R39 +L87 +L99 +R47 +L69 +R341 +R28 +R17 +R64 +R11 +R54 +L16 +R70 +L843 +L217 +R5 +L59 +L86 +R93 +R638 +L802 +R76 +R95 +L811 +L89 +R361 +R39 +L22 +L78 +L1 +L528 +R829 +L64 +L68 +R94 +L97 +L41 +L46 +R73 +R4 +L8 +L68 +R31 +R390 +L33 +R53 +L83 +R63 +R372 +L467 +L81 +R97 +R16 +R363 +R44 +L44 +R9 +L2 +R93 +R19 +R981 +L685 +L85 +R32 +R70 +R661 +R90 +R87 +R30 +R45 +L50 +L95 +L60 +L37 +R311 +R84 +R902 +L56 +R824 +L95 +R759 +R60 +L56 +R27 +R37 +L65 +L135 +R484 +R654 +R34 +L83 +L89 +L54 +R335 +L81 +R30 +L830 +R39 +L45 +L94 +L42 +R22 +L80 +L89 +L56 +L292 +L27 +L84 +R988 +L480 +R40 +R33 +R901 +R266 +R5 +L50 +L86 +L698 +R29 +L37 +L63 +R603 +R1 +R523 +R89 +L73 +L54 +R547 +R26 +L62 +L19 +L3 +R22 +R67 +R889 +R19 +R989 +R12 +R24 +L92 +R92 +R28 +R79 +R49 +L56 +L87 +L66 +R535 +R58 +L367 +L73 +L66 +R566 +R17 +L41 +L76 +R645 +L54 +R77 +R50 +R82 +L74 +L2 +L24 +R39 +R65 +L4 +R35 +R65 +L73 +L27 +L52 +R22 +R51 +R79 +R948 +R1 +R51 +L71 +R37 +L66 +R41 +R59 +L73 +R69 +R4 +L974 +L626 +R42 +R58 +L6 +R78 +L149 +R77 +R90 +R8 +R2 +L59 +R8 +R51 +L16 +R17 +L77 +L24 +L598 +R398 +R40 +R253 +R7 +R88 +L88 +L751 +L49 +R50 +L150 +R20 +L6 +R586 +L10 +R50 +R3 +R57 +R875 +L46 +R20 +R51 +R25 +L60 +R9 +L120 +L54 +R94 +L94 +R3 +R97 +L431 +L69 +L637 +R64 +L27 +R31 +L15 +L144 +L28 +L44 +R50 +L87 +L58 +L5 +L87 +L95 +R41 +L959 +L20 +R662 +L42 +L11 +R711 +R78 +R31 +L9 +L39 +R39 +L925 +L675 +L78 +R78 +L95 +R82 +L887 +R87 +R318 +R38 +R68 +L82 +L8 +L98 +L28 +R5 +L16 +L98 +L86 +R33 +L92 +L441 +R19 +L19 +L81 +L219 +R214 +L869 +R55 +L10 +R210 +L17 +R17 +R279 +R43 +R68 +L90 +L762 +R36 +R74 +R51 +R1 +R538 +R62 +L99 +L682 +R81 +R594 +R372 +L63 +R97 +R314 +L85 +R3 +L32 +L521 +R98 +L477 +R68 +R832 +R6 +L42 +L54 +L10 +L69 +R169 +L86 +L14 +L52 +L994 +L9 +L45 +L57 +L40 +R551 +L22 +R22 +R795 +R83 +L32 +L39 +L999 +L81 +R78 +R57 +L16 +L90 +R1 +L78 +L83 +R10 +L60 +L612 +R812 +R49 +R51 +R20 +R80 +L498 +L2 +L26 +L74 +L429 +R25 +L96 +L33 +R383 +L250 +R6 +R73 +R31 +L10 +L54 +L46 +R51 +L91 +L34 +R74 +L12 +R12 +R125 +R48 +L73 +L71 +L68 +L15 +R754 +L47 +R79 +L32 +R87 +R90 +R323 +R82 +R9 +R94 +L92 +L76 +R83 +L121 +R112 +L391 +R719 +L519 +L40 +R70 +L51 +L58 +R816 +R934 +R92 +L69 +L878 +R97 +R87 +R43 +L17 +L446 +R75 +R29 +L84 +L56 +L34 +R90 +R413 +R87 +L90 +R90 +R36 +R64 +R68 +L4 +L69 +R50 +R25 +R68 +R481 +L60 +R33 +R73 +R86 +R94 +R761 +R94 +L89 +L167 +R56 +R13 +L34 +R38 +L17 +L99 +R54 +L63 +R28 +L620 +R226 +L607 +L319 +R29 +R74 +R70 +R63 +L36 +L68 +R81 +L13 +L492 +R49 +L63 +R6 +L2 +L198 +L424 +L50 +R81 +L7 +L76 +L24 +R796 +L296 +L94 +R34 +R89 +L45 +R16 +R180 +L965 +R3 +R5 +L23 +L30 +L70 +L11 +L689 +R21 +L164 +R37 +R85 +R69 +L39 +L687 +L322 +R91 +R109 +L21 +R21 +L480 +R662 +L98 +L99 +R49 +R83 +R427 +L44 +R260 +L38 +L22 +L66 +R77 +L57 +L520 +L834 +L70 +L32 +R47 +R281 +L26 +R99 +R32 +L31 +L36 +R63 +R83 +R90 +R542 +L42 +R48 +L2 +R87 +R16 +R51 +R89 +L89 +R3 +L3 +L66 +R71 +L5 +L86 +L242 +L65 +R439 +L768 +L78 +L58 +R13 +L555 +R209 +L9 +L935 +R254 +R22 +L1 +R14 +R66 +L820 +L54 +R64 +R33 +L98 +R755 +R44 +L936 +R42 +R37 +L87 +L46 +L2 +R37 +L28 +R39 +L9 +L91 +R97 +R3 +R95 +L438 +R17 +R32 +R94 +R849 +L43 +R94 +L84 +R484 +L535 +R984 +L25 +R76 +R28 +R72 +R998 +R980 +R22 +R39 +L39 +R216 +R84 +R67 +R75 +L56 +R64 +L68 +R619 +R299 +L68 +L32 +R909 +R436 +L45 +L98 +R598 +L7 +L171 +L56 +L18 +R58 +L662 +L27 +L17 +L32 +R86 +R19 +L50 +L23 +R45 +L45 +L268 +L53 +R38 +R63 +R70 +R85 +L235 +R777 +R96 +L929 +L96 +L75 +R27 +L969 +R69 +R9 +L37 +L78 +R26 +R80 +R807 +L54 +R92 +L45 +R41 +L37 +R24 +L808 +L20 +R84 +L15 +R47 +R54 +R67 +L66 +R36 +L59 +L48 +L43 +L57 +L76 +R76 +L393 +R78 +L11 +L74 +L35 +L6 +L59 +R74 +R48 +R29 +R79 +L3 +L27 +R38 +R92 +L21 +L21 +R909 +R69 +R18 +R216 +L214 +L86 +R48 +L89 +L9 +R650 +L21 +L3 +R25 +R23 +L4 +R144 +R43 +R84 +R64 +R829 +L66 +L86 +L308 +L49 +L73 +L2 +R22 +R34 +R416 +L72 +R90 +R247 +L80 +R43 +R58 +R6 +L49 +L82 +R82 +R660 +L952 +R66 +R12 +R90 +R9 +R64 +L36 +R27 +L47 +R99 +L88 +L37 +R2 +R97 +L44 +L58 +L70 +R986 +R5 +R25 +L25 +L25 +R74 +R51 +R57 +L53 +R57 +R349 +R290 +L5 +L18 +R523 +R38 +R97 +R71 +L94 +R88 +L24 +L40 +R464 +R38 +L38 +L913 +L87 +L52 +R52 +R596 +L96 +R94 +R57 +R6 +L42 +R918 +R67 +L738 +L41 +L21 +R83 +L73 +R18 +R11 +R28 +L36 +R43 +R476 +L9 +R521 +R58 +L64 +L556 +L71 +L29 +R61 +L61 +L23 +L11 +L80 +R52 +R58 +R81 +L77 +L64 +L61 +L4 +R82 +R67 +R27 +R53 +R45 +L39 +R99 +L70 +R65 +R24 +L206 +R99 +R83 +R22 +L22 +R58 +R642 +L252 +L48 +L87 +R552 +L65 +L44 +L56 +R45 +L32 +L442 +L93 +L26 +R48 +L23 +R61 +L27 +L25 +L59 +L98 +L370 +L759 +L91 +R91 +R64 +R36 +L31 +R31 +L567 +R29 +L62 +L68 +L32 +R28 +L628 +R94 +R6 +R992 +R84 +R59 +L35 +L29 +L61 +L53 +L57 +R59 +L43 +L16 +L73 +R72 +R75 +L774 +R67 +L67 +R52 +L52 +R56 +L44 +L40 +R7 +R46 +R44 +R55 +R76 +R43 +R369 +R98 +L64 +L59 +R99 +R21 +R8 +L2 +R2 +L15 +L28 +L72 +R6 +L79 +R931 +L13 +L50 +R61 +L56 +R53 +L53 +R93 +L52 +R359 +R71 +R28 +L99 +L77 +R77 +R5 +L305 +L486 +L14 +L32 +L26 +L42 +L47 +L26 +R73 +R34 +R91 +R64 +L582 +R928 +L11 +R30 +L14 +R60 +R61 +L14 +R63 +R1 +R128 +R14 +R73 +R17 +R11 +L690 +R10 +L78 +L90 +L397 +R51 +R3 +L47 +L16 +R81 +R19 +L87 +R69 +R23 +R95 +R2 +L18 +L78 +L706 +R257 +L57 +L80 +R465 +L654 +L31 +L94 +R86 +L92 +R81 +L290 +L91 +R466 +L99 +R33 +R85 +L85 +L81 +R71 +L53 +L37 +R9 +L9 +R2 +R98 +R86 +R14 +L33 +R15 +L82 +R6 +L106 +L317 +L70 +L54 +L20 +R82 +R56 +R123 +R681 +R52 +R562 +R67 +L80 +R77 +R65 +R96 +L46 +L59 +R196 +L94 +L17 +R24 +L24 +R6 +R51 +L36 +L2 +R81 +R611 +L11 +R65 +L11 +R97 +L5 +L65 +R58 +L39 +L98 +R398 +R69 +R94 +R550 +L298 +L15 +L530 +R30 +L38 +R87 +R51 +L778 +L71 +L836 +R85 +R80 +R75 +L41 +R4 +R40 +R42 +R401 +R37 +L97 +R74 +R85 +R59 +R38 +L12 +R15 +L4 +R1 +R3 +R69 +R1 +R30 +L34 +L66 +L862 +R10 +L48 +R364 +R70 +L59 +L64 +R13 +R76 +R6 +L6 +R971 +R15 +R62 +L48 +R98 +L98 +R20 +R34 +L69 +L18 +R33 +L74 +L26 +R70 +R79 +R151 +R67 +L85 +L52 +L21 +R966 +L75 +L13 +R628 +L15 +L27 +L78 +R428 +L9 +L755 +L87 +L472 +L43 +R23 +L69 +R41 +R48 +R46 +R91 +L837 +R75 +R57 +R68 +R46 +R612 +L51 +R493 +L459 +R43 +L940 +L49 +L95 +L833 +L222 +R55 +L435 +R31 +L85 +R37 +L48 +L41 +R19 +R22 +L24 +R28 +L26 +L116 +L9 +L59 +L13 +L73 +R92 +R73 +R96 +L659 +R90 +R99 +L70 +L72 +L57 +L58 +L36 +L6 +R66 +R51 +L617 +R640 +R48 +R12 +L34 +L13 +R47 +L29 +R29 +R37 +R63 +R24 +R36 +R40 +R77 +R876 +R47 +L692 +R630 +L33 +R944 +L849 +R64 +L55 +L17 +L41 +L51 +R458 +R43 +L20 +L47 +R566 +R24 +R31 +L55 +L68 +L40 +L677 +L68 +R82 +R571 +R650 +R49 +L588 +R36 +L60 +L87 +R77 +L65 +L12 +R882 +L16 +L66 +L581 +L19 +L93 +R93 +L12 +R22 +L10 +L92 +R95 +R97 +R556 +R7 +L763 +L39 +R483 +L4 +L40 +L95 +L30 +R25 +R44 +R56 +L560 +L88 +L52 +R45 +L209 +L988 +L43 +L705 +R68 +L614 +L438 +L56 +R86 +R26 +R50 +L63 +L59 +R3 +R97 +R16 +R84 +L27 +L934 +L762 +L43 +L977 +L57 +R83 +R43 +L66 +R82 +R95 +R63 +R227 +R37 +R29 +R91 +L84 +L20 +R613 +R7 +L49 +R81 +R37 +L91 +R22 +L454 +R61 +L60 +L74 +R78 +L36 +L694 +R779 +L378 +R11 +L33 +R60 +L48 +R14 +R66 +R48 +R39 +L26 +R96 +R34 +R217 +L418 +L82 +L74 +L26 +L779 +L21 +L88 +L12 +R99 +L60 +L82 +R53 +R90 +L51 +L74 +R36 +L11 +L28 +L80 +R8 +L60 +R3 +L683 +R25 +R15 +L42 +L58 +R5 +L5 +R620 +L99 +R79 +R85 +L15 +L51 +R81 +L280 +L26 +L294 +L57 +R12 +L99 +R44 +L43 +L68 +R26 +L1 +R7 +L29 +L58 +L92 +R51 +R50 +L30 +R987 +L94 +L6 +R69 +R31 +R27 +L27 +L737 +L64 +L47 +R60 +R51 +L26 +L45 +L61 +L731 +R387 +R944 +R25 +L56 +L63 +R54 +R18 +R91 +L24 +R824 +L82 +L19 +L99 +R36 +L36 +R6 +L1 +L5 +R56 +L16 +R15 +R45 +L4 +L96 +R60 +R6 +L15 +L219 +R81 +R22 +R80 +L515 +R298 +R78 +R17 +L273 +L20 +R6 +L36 +L670 +R66 +R59 +L45 +R20 +R98 +L43 +R46 +R99 +R11 +L11 +R73 +L73 +L79 +L9 +R88 +R74 +R95 +R446 +R67 +L26 +R160 +R722 +L38 +R82 +L82 +R85 +L85 +L43 +L112 +L45 +L633 +L67 +L70 +L38 +R8 +L63 +R29 +L86 +L80 +L99 +L1 +L69 +R69 +L8 +R73 +R58 +L77 +R54 +L41 +R41 +R56 +L56 +R9 +R91 +L38 +R42 +L46 +R42 +L35 +R435 +R735 +R65 +R41 +R79 +L20 +R61 +L61 +R171 +R87 +R72 +L330 +R23 +R77 +R55 +R45 +R42 +R58 +R72 +L96 +R91 +L467 +R98 +R2 +R903 +R1 +L24 +L1 +R231 +R90 +R13 +L46 +R933 +R647 +R12 +L791 +L48 +R680 +L51 +R38 +R513 +R65 +R35 +L75 +R26 +R59 +L27 +R24 +L6 +L33 +R156 +R76 +R241 +R44 +L185 +R17 +L99 +L65 +L753 +R208 +L41 +L90 +R16 +L2 +L59 +R809 +R77 +L18 +L91 +R21 +L68 +R28 +R61 +R88 +R67 +R46 +R48 +L43 +R75 +R34 +L55 +R89 +L38 +L24 +L38 +L79 +R25 +R95 +L52 +L47 +L42 +L29 +R29 +R568 +R96 +R69 +R67 +L282 +L148 +L85 +R38 +L12 +R66 +L64 +L513 +L756 +L564 +R20 +R5 +R38 +L38 +L56 +R380 +L94 +L235 +R124 +L24 +R62 +L17 +L20 +L25 +L92 +L8 +L6 +R6 +L11 +R85 +R99 +R25 +R30 +R11 +R861 +L811 +L11 +L683 +L44 +R49 +L78 +R248 +R30 +R79 +R281 +L98 +L821 +R792 +R67 +L68 +R368 +L71 +R32 +R17 +R22 +L33 +R58 +R63 +L6 +L97 +R13 +R2 +R72 +L72 +R83 +L59 +R87 +R3 +R86 +L806 +R616 +L10 +L32 +L9 +L59 +R4 +L54 +R77 +R39 +L66 +L23 +R78 +R11 +L82 +R458 +R31 +R91 +L64 +R38 +L271 +L67 +L95 +L5 +R44 +L41 +L91 +R92 +R96 +L10 +L90 +R36 +L50 +R14 +L84 +L73 +L43 +R705 +R35 +L39 +R83 +R4 +R12 +R68 +R86 +L44 +R12 +L12 +L10 +R10 +L770 +L40 +L82 +L32 +R14 +L51 +R53 +L302 +L62 +R888 +L26 +R53 +R24 +L15 +R38 +L46 +L86 +L92 +L756 +L22 +L398 +L535 +R35 +R246 +R98 +R24 +L768 +L3 +L40 +L810 +L422 +L925 +R87 +R643 +R64 +R87 +R19 +L42 +R98 +L56 +L50 +R62 +R7 +R39 +L58 +R83 +R17 +L30 +R84 +L64 +R10 +R29 +L42 +L58 +L45 +R16 +L2 +R32 +R5 +L35 +R66 +R51 +R283 +R75 +R725 +L89 +L68 +R57 +L40 +L81 +L579 +L89 +R33 +R63 +R777 +L84 +L30 +L70 +R92 +R608 +R25 +L225 +L65 +R65 +L709 +R72 +R60 +R177 +L579 +L595 +R14 +L26 +R66 +R537 +R83 +R51 +R56 +L7 +L26 +L16 +L58 +R55 +R862 +R234 +R49 +R585 +L38 +R53 +L78 +L42 +L80 +R22 +R332 +L30 +R76 +R82 +L82 +L31 +R2 +R99 +R30 +R4 +R27 +L931 +L52 +L52 +R42 +R62 +L903 +R3 +R95 +L395 +R7 +R58 +R45 +L92 +R79 +R68 +L265 +L36 +R70 +L2 +R68 +L4 +R27 +L6 +L717 +L94 +R94 +L89 +R89 +L80 +R80 +R33 +R73 +L27 +L39 +R60 +R737 +R75 +R51 +L366 +L97 +R259 +R590 +L45 +R41 +R44 +L20 +R31 +L26 +R11 +L85 +R22 +L77 +R18 +L709 +L37 +R70 +L87 +L27 +L168 +L5 +L348 +R64 +R51 +L79 +R20 +L8 +L18 +L482 +R64 +L36 +R72 +L73 +R93 +L90 +L530 +R75 +R720 +R7 +R44 +R54 +L43 +R443 +R80 +L32 +R652 +L31 +L57 +L97 +L42 +R22 +R78 +R27 +L27 +L65 +R499 +R60 +R21 +L88 +R928 +R73 +L87 +L14 +R292 +L90 +R11 +R35 +R52 +R135 +L99 +R43 +L979 +L80 +R80 +R72 +R28 +R16 +R80 +L96 +L31 +R547 +L16 +L99 +L1 +L28 +R28 +R62 +L62 +L41 +R25 +R16 +R3 +L67 +R70 +L79 +L8 +R70 +L689 +R864 +R5 +L478 +L927 +R36 +L112 +L54 +L734 +R28 +L28 +L915 +R15 +L51 +L508 +R59 +R632 +R32 +L25 +L339 +L79 +R53 +R53 +R273 +R28 +L28 +L88 +R691 +R312 +L15 +L740 +L25 +R13 +R80 +L528 +L75 +R75 +L60 +R30 +R30 +R3 +R97 +R76 +R24 +L333 +L67 +R10 +L10 +R544 +R39 +R67 +L50 +L40 +L760 +L545 +R545 +R77 +L177 +L61 +R61 +L256 +L35 +R89 +R13 +R37 +R31 +L99 +L13 +R64 +R69 +L75 +R75 +L70 +R70 +L36 +L674 +R1 +R17 +L8 +L35 +L60 +L552 +R683 +R64 +L41 +L11 +L684 +R77 +R6 +L47 +L61 +R24 +L63 +R89 +R596 +R78 +R21 +L738 +R390 +R64 +R33 +R966 +L18 +R55 +L36 +R69 +L969 +L68 +R68 +L73 +R673 +R39 +R61 +R93 +R71 +L64 +L25 +R90 +L80 +R86 +L46 +R75 +L61 +R61 +L534 +R71 +R53 +L90 +R59 +L46 +L12 +L55 +R54 +R589 +L101 +L88 +L10 +L90 +R40 +L40 +R39 +R61 +L84 +R69 +L85 +R28 +R51 +L446 +L33 +R46 +R54 +R255 +R45 +R429 +R99 +R72 +R98 +R85 +R28 +R89 +R96 +L82 +L41 +L73 +L61 +R761 +L101 +L104 +R92 +R57 +R35 +L7 +R22 +L78 +L67 +R50 +R4 +R32 +R771 +L87 +R81 +R67 +L67 +L94 +R44 +R86 +R64 +R527 +L52 +R59 +R48 +R18 +L32 +L68 +L50 +R944 +L94 +R959 +L25 +L78 +R446 +R63 +L65 +L35 +L65 +L927 +R27 +L46 +L24 +L199 +R18 +L60 +R20 +L82 +L39 +L348 +L40 +L54 +R96 +R458 +L75 +R375 +L34 +L66 +L49 +R697 +R23 +R21 +R8 +L13 +L6 +R19 +L78 +L23 +R83 +L74 +R74 +R926 +L30 +L12 +R34 +L56 +R56 +R28 +R91 +R81 +R36 +R30 +L66 +L47 +L156 +L53 +L70 +R11 +R55 +R38 +L11 +R33 +L41 +R10 +L967 +L3 +L79 +R79 +R604 +R97 +R55 +R45 +R97 +L45 +R48 +L92 +L80 +R94 +L40 +L82 +L73 +R873 +R334 +R66 +L92 +L797 +R15 +R41 +R733 +L51 +R84 +L33 +R84 +R16 +L2 +R78 +R526 +R58 +L63 +R3 +L71 +L879 +L94 +L356 +R27 +R60 +R294 +L781 +R98 +L22 +L676 +L97 +R8 +L4 +L526 +L81 +L20 +R20 +R64 +R766 +R70 +L16 +R73 +R68 +L25 +R65 +R30 +R42 +R140 +L27 +R83 +L33 +R66 +L31 +R94 +R26 +L22 +R67 +L9 +R64 +R13 +L73 +L895 +R91 +R93 +L859 +L25 +L64 +R464 +L67 +L33 +R66 +R61 +L40 +R13 +R559 +L69 +R48 +R72 +L10 +L91 +L94 +R85 +R24 +L330 +L41 +R86 +L39 +R307 +R93 +R963 +L43 +R4 +R76 +L534 +R34 +R37 +L807 +L44 +L67 +R83 +L60 +R37 +R31 +L45 +R342 +L7 +L18 +L71 +L11 +L25 +L76 +R201 +L548 +R57 +L163 +L96 +L37 +L13 +R50 +L8 +L87 +L89 +L66 +R568 +R933 +L88 +R87 +R90 +L297 +L58 +R56 +L63 +L128 +R67 +L33 +L34 +L74 +R26 +R48 +R11 +L11 +R599 +L99 +L8 +R79 +R29 +R99 +L9 +L88 +R98 +L67 +L33 +L720 +L87 +R75 +R969 +L411 +L26 +L832 +R58 +L12 +L59 +L87 +R32 +L22 +L89 +L36 +L783 +R50 +L74 +L61 +R15 +L17 +R39 +L912 +R379 +L29 +R65 +R76 +R31 +L99 +L98 +L70 +L45 +R2 +R78 +R935 +L835 +R58 +R76 +L41 +L585 +R123 +R93 +L65 +R97 +L64 +L95 +L97 +R78 +R822 +L188 +R688 +R46 +R54 +L4 +R404 +R589 +R11 +R48 +L92 +L81 +R99 +L67 +R893 +R67 +L36 +R17 +R52 +L7 +L87 +R10 +L89 +R7 +R66 +R973 +L27 +L546 +R45 +R89 +L205 +L29 +L68 +L518 +L53 +R71 +R63 +R16 +R42 +L43 +R30 +R41 +L67 +L14 +L836 +L490 +R26 +R11 +L44 +R33 +L874 +R37 +L63 +R56 +L56 +R61 +L590 +L17 +R98 +L55 +L607 +R10 +R67 +L39 +L28 +R86 +L71 +R85 +R544 +R88 +R68 +L67 +L67 +L801 +R35 +L42 +R15 +L4 +R31 +L98 +L71 +L119 +L78 +R66 +R355 +L62 +R97 +L96 +L94 +R48 +L48 +R61 +R71 +L832 +R85 +L1 +R16 +R37 +R9 +R8 +R247 +R7 +L62 +R89 +L735 +R83 +R17 +R28 +R81 +R610 +L548 +R29 +L209 +R85 +L76 +L87 +L69 +L193 +L71 +L14 +L66 +R89 +L29 +R340 +R80 +R702 +R18 +R65 +R42 +L79 +L84 +L19 +L63 +R93 +L395 +L38 +L13 +L9 +L34 +R43 +R77 +R25 +R40 +R705 +R44 +R91 +L38 +L97 +R93 +L449 +L552 +R119 +R58 +R275 +R81 +R1 +L82 +R89 +R643 +R8 +L24 +L16 +R46 +R93 +L39 +L92 +L80 +L627 +L490 +L85 +L13 +R20 +L265 +R632 +R69 +R63 +L732 +L38 +R6 +L396 +L30 +R166 +R47 +L52 +L3 +L10 +L90 +R49 +L61 +L49 +R35 +R26 +R80 +L280 +R79 +R57 +R72 +R49 +L18 +R83 +R12 +L99 +L16 +R71 +R938 +L28 +R45 +L745 +L591 +R91 +L75 +R66 +R9 +R89 +L1 +R89 +R223 +L49 +L3 +R752 +R40 +L304 +R64 +R34 +L41 +R7 +R19 +R77 +L97 +L99 +R78 +R358 +L52 +R583 +R33 +R143 +L43 +L68 +L32 +L92 +L63 +R55 +R970 +L31 +R14 +L768 +L84 +R375 +L19 +L695 +L984 +R375 +L53 +R673 +L73 +R28 +L28 +R779 +R930 +L809 +R28 +L72 +R1 +L41 +R31 +R53 +R44 +L440 +R314 +R82 +L547 +L46 +L7 +L31 +R52 +R812 +L93 +L24 +R96 +L12 +L11 +R65 +R39 +R19 +L87 +R76 +L82 +L99 +R75 +L95 +L56 +L64 +L482 +R902 +L83 +R75 +R8 +L50 +R40 +R86 +R24 +L92 +L8 +L77 +L23 +R58 +L158 +R63 +R49 +L12 +L57 +L90 +L60 +R61 +L54 +R54 +R46 +R92 +R40 +R68 +R36 +R57 +R307 +L99 +R42 +R761 +R7 +R18 +R71 +R163 +R44 +R87 +L696 +R32 +L883 +R31 +L36 +L16 +L90 +R443 +R21 +L551 +R51 +L984 +R95 +R88 +R1 +L83 +L336 +L81 +R75 +R88 +L63 +L14 +L86 +L905 +R5 +R37 +R396 +L433 +R75 +L28 +L870 +R39 +R13 +L281 +R97 +L91 +L52 +R98 +R36 +L813 +R650 +R827 +L88 +R560 +L72 +L40 +R40 +R19 +R27 +R54 +L36 +R84 +L48 +L57 +L43 +R484 +R16 +R712 +R84 +L57 +L39 +R24 +R676 +L72 +L71 +R43 +R72 +L56 +R83 +R1 +R63 +L823 +R4 +R56 +R30 +L80 +L45 +L80 +R42 +R33 +L82 +R95 +L20 +L52 +R246 +L19 +L47 +R688 +L18 +L34 +L776 +R19 +L390 +R86 +R66 +R38 +L31 +L869 +R21 +R8 +L952 +R23 +R10 +L78 +R43 +R73 +R72 +R89 +L7 +R29 +R69 +L20 +R53 +R5 +R35 +R627 +R609 +R91 +R85 +L790 +R645 +L90 +R27 +R57 +L87 +L58 +R93 +R5 +R13 +R411 +L30 +R3 +R24 +L108 +L24 +L76 +L38 +L933 +L37 +R50 +L49 +R7 +R98 +L173 +R75 +R892 +L67 +L870 +R45 +R24 +L324 +L53 +L10 +L66 +L87 +L651 +L67 +R18 +L42 +R58 +L55 +L33 +R88 +R54 +L771 +R17 +R49 +R36 +L66 +R49 +R32 +L155 +R40 +L84 +L76 +L3 +L510 +R88 +R5 +R207 +L23 +L89 +L82 +L69 +R51 +R15 +L5 +L10 +R98 +L3 +L99 +L16 +R24 +L4 +R20 +L864 +L1 +L32 +L23 +R962 +L62 +R21 +L70 +R77 +R75 +R11 +R8 +L14 +R89 +L97 +R74 +R593 +R6 +L374 +L97 +L902 +R57 +R42 +R436 +L35 +R85 +R87 +L34 +L40 +L97 +R82 +R17 +R7 +L2 +L98 +R10 +R83 +R31 +R69 +R24 +L103 +R61 +R18 +R85 +L8 +R23 +L18 +R18 +L64 +R80 +L243 +R845 +R82 +R844 +L61 +L68 +L715 +L2 +L32 +R82 +L12 +L884 +R248 +R976 +R798 +R826 +R21 +R79 +R14 +L14 +L18 +R18 +R46 +R54 +L94 +R94 +L55 +L49 +R79 +R4 +R721 +L1 +R1 +L850 +R35 +R3 +R23 +R89 +L3 +R703 +R30 +L530 +L42 +L20 +L96 +L42 +L88 +L12 +R92 +R92 +L17 +R37 +R96 +L11 +L89 +R45 +R13 +L674 +R18 +R17 +L19 +L51 +L986 +R437 +L95 +L605 +L58 +R58 +R588 +R81 +R53 +R78 +L98 +R98 +L69 +R47 +R422 +L17 +L76 +L31 +R24 +R26 +R96 +L48 +L60 +R5 +L19 +L66 +L607 +R81 +L28 +L80 +L76 +R50 +R26 +L15 +R15 +L34 +L66 +L62 +R22 +R40 +R92 +L44 +L505 +L43 +R659 +L249 +R84 +R14 +R92 +L246 +L57 +L32 +R14 +R15 +R29 +L34 +L27 +R79 +R21 +R83 +R43 +R75 +L663 +L29 +R72 +L28 +R271 +R43 +R71 +R8 +R92 +L76 +R52 +L82 +R44 +R562 +L28 +L72 +R24 +L24 +L7 +R4 +R94 +L104 +L79 +R70 +R45 +L94 +R4 +L33 +L33 +L89 +R867 +R91 +L39 +R1 +L29 +R31 +L499 +L48 +R24 +L41 +R73 +R96 +L27 +L12 +R395 +L61 +R783 +L83 +L75 +R75 +R83 +L83 +R995 +R67 +L70 +L92 +L59 +L19 +R41 +R35 +R99 +R53 +L50 +R799 +R1 +R153 +L62 +R727 +L336 +L82 +R381 +R27 +R28 +R65 +R72 +R927 +R16 +L16 +L20 +L80 +R72 +L155 +L17 +R21 +R73 +L23 +R14 +L96 +R411 +L114 +R43 +L8 +R52 +R27 +R92 +L88 +L423 +R151 +R18 +R50 +L95 +L5 +R238 +L44 +R6 +L10 +L10 +R20 +L38 +L79 +R46 +L372 +L57 +R31 +L8 +L65 +R62 +R78 +R818 +L89 +L91 +L236 +L58 +L5 +R63 +L31 +R31 +L545 +L829 +R44 +R63 +R77 +R795 +L5 +R71 +L671 +L82 +L17 +R90 +R9 +L1 +L199 +L72 +L28 +L59 +L41 +L718 +L94 +R30 +L18 +L291 +R91 +L94 +R72 +R22 +L25 +R25 +R38 +L38 +L891 +L9 +L95 +R32 +R555 +R24 +R47 +R37 +R10 +R84 +R14 +R92 +L90 +L10 +R11 +R89 +L63 +L76 +L15 +L12 +R772 +R50 +L56 +L5 +R88 +L82 +L201 +R73 +R27 +R77 +L77 +R37 +R63 +R991 +R11 +R98 +R12 +L430 +L175 +L45 +L87 +R825 +R3 +R515 +R82 +L77 +L318 +L5 +L33 +L10 +L958 +R318 +R52 +R86 +R45 +R87 +L64 +R77 +L53 +L90 +L86 +L45 +L61 +R535 +R53 +R947 +R41 +L33 +L24 +L784 +R74 +L50 +L48 +R41 +R83 +L204 +L788 +L53 +L89 +L29 +L98 +L39 +L29 +R53 +L24 +L46 +L7 +R11 +R742 +L2 +L102 +R39 +L89 +R54 +R999 +L99 +R10 +R36 +L99 +R8 +R45 +R87 +L987 +R29 +R90 +L85 +R91 +R75 +R50 +L850 +L88 +L83 +L74 +L55 +R77 +R48 +L873 +R229 +L81 +R92 +R8 +R10 +L44 +L166 +R5 +R703 +L8 +L78 +L222 +R95 +L95 +L14 +L41 +L45 +R536 +L34 +R74 +R41 +L815 +L99 +R97 +L12 +R12 +R3 +L55 +R52 +L45 +R445 +L134 +L66 +L68 +L78 +L54 +R87 +L7 +R76 +L19 +L13 +R87 +L15 +R88 +L983 +L1 +R7 +R85 +R15 +R21 +R63 +L191 +L876 +R76 +R73 +L73 +R26 +R24 +L48 +L68 +L58 +L76 +L28 +L59 +L13 +L734 +L66 +L780 +R67 +R13 +L76 +L924 +R37 +L37 +L2 +L24 +R38 +R81 +L64 +L88 +L90 +L74 +R328 +L35 +R30 +R13 +R32 +R55 +L18 +L89 +R22 +L4 +R60 +L60 +R52 +L44 +L19 +L1 +R89 +R93 +R31 +R86 +R2 +R62 +L43 +R50 +L69 +L31 +R13 +R18 +L4 +L196 +R73 +L15 +R68 +L26 +L89 +R61 +R879 +R95 +L13 +R667 +L525 +R25 +L38 +R70 +R65 +R4 +L1 +L32 +R53 +R979 +R40 +L40 +R38 +L520 +L40 +R22 +L10 +R10 +R10 +L10 +R3 +L3 +L818 +R52 +R66 +L90 +L10 +L91 +R91 +L91 +R924 +L33 +L13 +L887 +R753 +R78 +L784 +L47 +R89 +L57 +L98 +L34 +R578 +R667 +L9 +L79 +R5 +R22 +R23 +R95 +R54 +L47 +R91 +L32 +L162 +L6 +L7 +R7 +L585 +R85 +R18 +L55 +L67 +L96 +R618 +R396 +R10 +L24 +R213 +L38 +R97 +R25 +R3 +L36 +R36 +R15 +R85 +R25 +R506 +L31 +L8 +R508 +L78 +L470 +R64 +R83 +R67 +L28 +R44 +L396 +L32 +R46 +L19 +L74 +L91 +R484 +R949 +R51 +R23 +R977 +R89 +R811 +L144 +L48 +L68 +R860 +R64 +R792 +L497 +R51 +R90 +L57 +L39 +R96 +L25 +R25 +R87 +L79 +L961 +R60 +L7 +L13 +R13 +L40 +R35 +R905 +R58 +R882 +R66 +L22 +R546 +R35 +L93 +L72 +L7 +L90 +L10 +L97 +R87 +L83 +R469 +R85 +L73 +L81 +L664 +R37 +L9 +R20 +L6 +R9 +L188 +L3 +L96 +L91 +R91 +R384 +R77 +R399 +R40 +L83 +L68 +L49 +R96 +L196 +L56 +L44 +R37 +R63 +L42 +L32 +R74 +L764 +R23 +L1 +L1 +L4 +R58 +L54 +L78 +L7 +R74 +L690 +L938 +R45 +L263 +R83 +R85 +R32 +L38 +L95 +L67 +R86 +R14 +L57 +L83 +R40 +R15 +L69 +L75 +R29 +L705 +L42 +R47 +R20 +L90 +R70 +R94 +R3 +L26 +L71 +L53 +L369 +L27 +R49 +L97 +R97 +R24 +L24 +R585 +L85 +L41 +L49 +R8 +L78 +R859 +L908 +R80 +R29 +R691 +L91 +R16 +R50 +L53 +R95 +L608 +L911 +R11 +L67 +L22 +L11 +R76 +R58 +R16 +R94 +L72 +R28 +R64 +R28 +R8 +R64 +R36 +R244 +R5 +L849 +R75 +R18 +R96 +R11 +R76 +L76 +R99 +L99 +R30 +L65 +R88 +L15 +L10 +R41 +L71 +R69 +R44 +L54 +L57 +R1 +R99 +R27 +R80 +R71 +L324 +L47 +L31 +L555 +L21 +R25 +R913 +R62 +L70 +R70 +R7 +L39 +L26 +R58 +R638 +L984 +L814 +R60 +R16 +L61 +L27 +L28 +R8 +L712 +L875 +L45 +R24 +L753 +L55 +R758 +L703 +L47 +L1 +L28 +L74 +R21 +L218 +R54 +R355 +L75 +R184 +L34 +R816 +L75 +L46 +R19 +L85 +R596 +L64 +R55 +L388 +L12 +L29 +R29 +L8 +R744 +L36 +R58 +R35 +R74 +R28 +R84 +L8 +R29 +R54 +R95 +L72 +L769 +R881 +R903 +R47 +R37 +L86 +R84 +R26 +L57 +L843 +L113 +L87 +L67 +L89 +L37 +L7 +L76 +R69 +R45 +L272 +L58 +L62 +L746 +R571 +R329 +L38 +R538 +R10 +L23 +L187 +R53 +L70 +L383 +R76 +R36 +R388 +R375 +R119 +R7 +L301 +R87 +L87 +L36 +R36 +L36 +L11 +L4 +L49 +R11 +R831 +L45 +L84 +L713 +L16 +L23 +L61 +R15 +R785 +L27 +L401 +L71 +L56 +L145 +R27 +L92 +L67 +R494 +R82 +R80 +L707 +L17 +R54 +R46 +L25 +L201 +L35 +L67 +R25 +L97 +L16 +L36 +R2 +L565 +L94 +R809 +R62 +L87 +R42 +L201 +R84 +L89 +L569 +R74 +R26 +R61 +R91 +L94 +L71 +R71 +R23 +L646 +R92 +R32 +L55 +L92 +R24 +R22 +R55 +L55 +L41 +L87 +R828 +L40 +L660 +L580 +L20 +R71 +L642 +R71 +L36 +R36 +L98 +L60 +L45 +L97 +L94 +L36 +L70 +R18 +L97 +R96 +L17 +R60 +L60 +R35 +L12 +R82 +L5 +L25 +R36 +R89 +L41 +L483 +L855 +L32 +L983 +R94 +R87 +L87 +R14 +L27 +R13 +L91 +L9 +L249 +L52 +L73 +L149 +R23 +L84 +R807 +L323 +R41 +R79 +L77 +R67 +R90 +R42 +L132 +R82 +R66 +R13 +L76 +R8 +L3 +R39 +L24 +L867 +R7 +L70 +R82 +R9 +R33 +L5 +L4 +R1 +R71 +L72 +R31 +R78 +R91 +R89 +R7 +L64 +R47 +L79 +R61 +L43 +R22 +L40 +R38 +L80 +L62 +R71 +R33 +L88 +R88 +L70 +L47 +R17 +R19 +L19 +R24 +L5 +L27 +R8 +L25 +L12 +L91 +R20 +R18 +R34 +R14 +R15 +R99 +L36 +R7 +R57 +R54 +R47 +R38 +R35 +L21 +L29 +L12 +R12 +L41 +R27 +L6 +R24 +L34 +R43 +R40 +L37 +R42 +R7 +L26 +R28 +L18 +R45 +R42 +R8 +R13 +L12 +L5 +R23 +R39 +L25 +R20 +R11 +R37 +L46 +L32 +R5 +L21 +R14 +R15 +R46 +L10 +R12 +R24 +L5 +L7 +R19 +R8 +L20 +R7 +L34 +L15 diff --git a/src/day1/day1-test.txt b/src/day1/day1-test.txt new file mode 100644 index 0000000..53287c7 --- /dev/null +++ b/src/day1/day1-test.txt @@ -0,0 +1,10 @@ +L68 +L30 +R48 +L5 +R60 +L55 +L1 +L99 +R14 +L82 diff --git a/src/day1/main.rs b/src/day1/main.rs new file mode 100644 index 0000000..7e827c6 --- /dev/null +++ b/src/day1/main.rs @@ -0,0 +1,39 @@ +use anyhow::Result; +use std::{fs, num}; + +fn main() -> Result<()> { + println!("Hello, world!"); + + let (count, extra, _) = fs::read_to_string("src/day1/day1-act.txt")? + .split("\n") + .filter(|s| s.len() > 0) + .fold((0, 0, 50 as i32), |(sum, e, p), s| { + let modi = if s.chars().nth(0).unwrap() == 'R' { + 1 + } else { + -1 + }; + let v: i32 = s[1..].parse().unwrap(); + let mut nv: i32 = p + (v % 100) * modi; + let mut extra = v / 100; + if nv < 0 { + nv = 100 + nv; + if p != 0 { + extra += 1; + } + } else if nv == 100 { + nv = nv - 100; + } else if nv > 100 { + nv = nv - 100; + if p != 0 { + extra += 1; + } + } + println!("{} - {}: {}", s, nv, extra); + (sum + (if nv == 0 { 1 } else { 0 }), e + extra, nv) + }); + + println!("{} and sec {}", count, count + extra); + + Ok(()) +} diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}