From 5bda367f4530ffca3ff4b4ab174b75e97349aeeb Mon Sep 17 00:00:00 2001 From: Zeheng Li Date: Mon, 2 Oct 2023 10:09:23 -0600 Subject: [PATCH] clean up --- .gitignore | 1 - .vscode/extensions.json | 5 + .vscode/settings.json | 10 +- docs/2021.md | 60 +- docs/2022.md | 16 +- requirements-dev.txt | 2 - src/2021/day01_input.txt | 2000 +++++++++++++++++++++++ {2021 => src/2021}/day01_part1.py | 0 {2021 => src/2021}/day01_part2.py | 0 src/2021/day02_input.txt | 1000 ++++++++++++ {2021 => src/2021}/day02_part1.py | 0 {2021 => src/2021}/day02_part2.py | 0 src/2021/day03_input.txt | 1000 ++++++++++++ {2021 => src/2021}/day03_part1.py | 0 {2021 => src/2021}/day03_part2.py | 0 src/2021/day04_input.txt | 601 +++++++ {2021 => src/2021}/day04_part1.py | 0 {2021 => src/2021}/day04_part2.py | 0 src/2021/day05_input.txt | 500 ++++++ {2021 => src/2021}/day05_part1.py | 0 {2021 => src/2021}/day05_part2.py | 0 src/2021/day06_input.txt | 1 + {2021 => src/2021}/day06_part1.py | 0 {2021 => src/2021}/day06_part2.py | 0 src/2021/day07_input.txt | 1 + {2021 => src/2021}/day07_part1.py | 0 {2021 => src/2021}/day07_part2.py | 0 src/2021/day08_input.txt | 200 +++ {2021 => src/2021}/day08_part1.py | 0 {2021 => src/2021}/day08_part2.py | 0 src/2021/day09_input.txt | 100 ++ {2021 => src/2021}/day09_part1.py | 0 {2021 => src/2021}/day09_part2.py | 0 src/2021/day10_input.txt | 102 ++ {2021 => src/2021}/day10_part1.py | 0 {2021 => src/2021}/day10_part2.py | 0 src/2021/day11_input.txt | 10 + {2021 => src/2021}/day11_part1.py | 0 {2021 => src/2021}/day11_part2.py | 0 src/2021/day12_input.txt | 24 + {2021 => src/2021}/day12_part1.py | 0 {2021 => src/2021}/day12_part2.py | 0 src/2021/day13_input.txt | 995 ++++++++++++ {2021 => src/2021}/day13_part1.py | 0 {2021 => src/2021}/day13_part2.py | 0 src/2021/day14_input.txt | 102 ++ {2021 => src/2021}/day14_part1.py | 0 {2021 => src/2021}/day14_part2.py | 0 src/2021/day15_input.txt | 100 ++ {2021 => src/2021}/day15_part1.py | 0 {2021 => src/2021}/day15_part2.py | 0 src/2021/day16_input.txt | 1 + {2021 => src/2021}/day16_part1.py | 0 src/2022/day01_input.txt | 2251 ++++++++++++++++++++++++++ {2022 => src/2022}/day01_part1.py | 0 {2022 => src/2022}/day01_part2.py | 0 src/2022/day02_input.txt | 2500 +++++++++++++++++++++++++++++ {2022 => src/2022}/day02_part1.py | 0 {2022 => src/2022}/day02_part2.py | 0 src/2022/day03_input.txt | 300 ++++ {2022 => src/2022}/day03_part1.py | 0 {2022 => src/2022}/day03_part2.py | 0 src/2022/day04_input.txt | 1000 ++++++++++++ {2022 => src/2022}/day04_part1.py | 0 {2022 => src/2022}/day04_part2.py | 0 src/2022/day06_input.txt | 1 + {2022 => src/2022}/day06_part1.py | 0 {2022 => src/2022}/day06_part2.py | 0 68 files changed, 12837 insertions(+), 46 deletions(-) create mode 100644 src/2021/day01_input.txt rename {2021 => src/2021}/day01_part1.py (100%) rename {2021 => src/2021}/day01_part2.py (100%) create mode 100644 src/2021/day02_input.txt rename {2021 => src/2021}/day02_part1.py (100%) rename {2021 => src/2021}/day02_part2.py (100%) create mode 100644 src/2021/day03_input.txt rename {2021 => src/2021}/day03_part1.py (100%) rename {2021 => src/2021}/day03_part2.py (100%) create mode 100644 src/2021/day04_input.txt rename {2021 => src/2021}/day04_part1.py (100%) rename {2021 => src/2021}/day04_part2.py (100%) create mode 100644 src/2021/day05_input.txt rename {2021 => src/2021}/day05_part1.py (100%) rename {2021 => src/2021}/day05_part2.py (100%) create mode 100644 src/2021/day06_input.txt rename {2021 => src/2021}/day06_part1.py (100%) rename {2021 => src/2021}/day06_part2.py (100%) create mode 100644 src/2021/day07_input.txt rename {2021 => src/2021}/day07_part1.py (100%) rename {2021 => src/2021}/day07_part2.py (100%) create mode 100644 src/2021/day08_input.txt rename {2021 => src/2021}/day08_part1.py (100%) rename {2021 => src/2021}/day08_part2.py (100%) create mode 100644 src/2021/day09_input.txt rename {2021 => src/2021}/day09_part1.py (100%) rename {2021 => src/2021}/day09_part2.py (100%) create mode 100644 src/2021/day10_input.txt rename {2021 => src/2021}/day10_part1.py (100%) rename {2021 => src/2021}/day10_part2.py (100%) create mode 100644 src/2021/day11_input.txt rename {2021 => src/2021}/day11_part1.py (100%) rename {2021 => src/2021}/day11_part2.py (100%) create mode 100644 src/2021/day12_input.txt rename {2021 => src/2021}/day12_part1.py (100%) rename {2021 => src/2021}/day12_part2.py (100%) create mode 100644 src/2021/day13_input.txt rename {2021 => src/2021}/day13_part1.py (100%) rename {2021 => src/2021}/day13_part2.py (100%) create mode 100644 src/2021/day14_input.txt rename {2021 => src/2021}/day14_part1.py (100%) rename {2021 => src/2021}/day14_part2.py (100%) create mode 100644 src/2021/day15_input.txt rename {2021 => src/2021}/day15_part1.py (100%) rename {2021 => src/2021}/day15_part2.py (100%) create mode 100644 src/2021/day16_input.txt rename {2021 => src/2021}/day16_part1.py (100%) create mode 100644 src/2022/day01_input.txt rename {2022 => src/2022}/day01_part1.py (100%) rename {2022 => src/2022}/day01_part2.py (100%) create mode 100644 src/2022/day02_input.txt rename {2022 => src/2022}/day02_part1.py (100%) rename {2022 => src/2022}/day02_part2.py (100%) create mode 100644 src/2022/day03_input.txt rename {2022 => src/2022}/day03_part1.py (100%) rename {2022 => src/2022}/day03_part2.py (100%) create mode 100644 src/2022/day04_input.txt rename {2022 => src/2022}/day04_part1.py (100%) rename {2022 => src/2022}/day04_part2.py (100%) create mode 100644 src/2022/day06_input.txt rename {2022 => src/2022}/day06_part1.py (100%) rename {2022 => src/2022}/day06_part2.py (100%) diff --git a/.gitignore b/.gitignore index f71fd2c..1d17dae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ .venv -**/day[0-9]*_input.txt diff --git a/.vscode/extensions.json b/.vscode/extensions.json index de70d0d..39697e8 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,9 +1,14 @@ { "recommendations": [ "davidanson.vscode-markdownlint", + "eamodio.gitlens", "esbenp.prettier-vscode", + "ms-python.black-formatter", + "ms-python.pylint", + "ms-python.python", "ms-vscode.wordcount", "naumovs.theme-oceanicnext", + "njpwerner.autodocstring", "oderwat.indent-rainbow", "pkief.material-product-icons", "streetsidesoftware.code-spell-checker", diff --git a/.vscode/settings.json b/.vscode/settings.json index beca528..52e82b0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { + "autoDocstring.docstringFormat": "google", "editor.bracketPairColorization.enabled": true, "editor.formatOnSave": true, "editor.guides.bracketPairs": "active", @@ -7,12 +8,11 @@ "files.insertFinalNewline": true, "files.trimFinalNewlines": true, "files.trimTrailingWhitespace": true, - "python.formatting.blackPath": "black", - "python.formatting.provider": "black", - "python.linting.pylintEnabled": true, - "python.linting.pylintPath": "pylint", "workbench.colorTheme": "Oceanic Next (dimmed bg)", "workbench.editor.enablePreview": false, "workbench.iconTheme": "vscode-icons", - "workbench.productIconTheme": "material-product-icons" + "workbench.productIconTheme": "material-product-icons", + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter" + } } diff --git a/docs/2021.md b/docs/2021.md index 2112139..ea91a36 100644 --- a/docs/2021.md +++ b/docs/2021.md @@ -5,13 +5,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day01_part1.py" + --8<-- "src/2021/day01_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day01_part2.py" + --8<-- "src/2021/day01_part2.py" ``` ??? success "Day 2" @@ -19,13 +19,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day02_part1.py" + --8<-- "src/2021/day02_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day02_part2.py" + --8<-- "src/2021/day02_part2.py" ``` ??? success "Day 3" @@ -33,13 +33,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day03_part1.py" + --8<-- "src/2021/day03_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day03_part2.py" + --8<-- "src/2021/day03_part2.py" ``` ??? success "Day 4" @@ -47,13 +47,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day04_part1.py" + --8<-- "src/2021/day04_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day04_part2.py" + --8<-- "src/2021/day04_part2.py" ``` ??? success "Day 5" @@ -61,13 +61,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day05_part1.py" + --8<-- "src/2021/day05_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day05_part2.py" + --8<-- "src/2021/day05_part2.py" ``` ??? success "Day 6" @@ -75,13 +75,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day06_part1.py" + --8<-- "src/2021/day06_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day06_part2.py" + --8<-- "src/2021/day06_part2.py" ``` ??? success "Day 7" @@ -89,13 +89,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day07_part1.py" + --8<-- "src/2021/day07_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day07_part2.py" + --8<-- "src/2021/day07_part2.py" ``` ??? success "Day 8" @@ -103,13 +103,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day08_part1.py" + --8<-- "src/2021/day08_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day08_part2.py" + --8<-- "src/2021/day08_part2.py" ``` ??? success "Day 9" @@ -117,13 +117,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day09_part1.py" + --8<-- "src/2021/day09_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day09_part2.py" + --8<-- "src/2021/day09_part2.py" ``` ??? success "Day 10" @@ -131,13 +131,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day10_part1.py" + --8<-- "src/2021/day10_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day10_part2.py" + --8<-- "src/2021/day10_part2.py" ``` ??? success "Day 11" @@ -145,13 +145,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day11_part1.py" + --8<-- "src/2021/day11_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day11_part2.py" + --8<-- "src/2021/day11_part2.py" ``` ??? success "Day 12" @@ -159,13 +159,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day12_part1.py" + --8<-- "src/2021/day12_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day12_part2.py" + --8<-- "src/2021/day12_part2.py" ``` ??? success "Day 13" @@ -173,13 +173,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day13_part1.py" + --8<-- "src/2021/day13_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day13_part2.py" + --8<-- "src/2021/day13_part2.py" ``` ??? success "Day 14" @@ -187,13 +187,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day14_part1.py" + --8<-- "src/2021/day14_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day14_part2.py" + --8<-- "src/2021/day14_part2.py" ``` ??? success "Day 15" @@ -201,11 +201,11 @@ === "Part 1" ```py linenums="1" - --8<-- "2021/day15_part1.py" + --8<-- "src/2021/day15_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2021/day15_part2.py" + --8<-- "src/2021/day15_part2.py" ``` diff --git a/docs/2022.md b/docs/2022.md index aa69656..c524237 100644 --- a/docs/2022.md +++ b/docs/2022.md @@ -5,13 +5,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2022/day01_part1.py" + --8<-- "src/2022/day01_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2022/day01_part2.py" + --8<-- "src/2022/day01_part2.py" ``` ??? success "Day 2" @@ -19,13 +19,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2022/day02_part1.py" + --8<-- "src/2022/day02_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2022/day02_part2.py" + --8<-- "src/2022/day02_part2.py" ``` ??? success "Day 3" @@ -33,13 +33,13 @@ === "Part 1" ```py linenums="1" - --8<-- "2022/day03_part1.py" + --8<-- "src/2022/day03_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2022/day03_part2.py" + --8<-- "src/2022/day03_part2.py" ``` ??? success "Day 4" @@ -47,11 +47,11 @@ === "Part 1" ```py linenums="1" - --8<-- "2022/day04_part1.py" + --8<-- "src/2022/day04_part1.py" ``` === "Part 2" ```py linenums="1" - --8<-- "2022/day04_part2.py" + --8<-- "src/2022/day04_part2.py" ``` diff --git a/requirements-dev.txt b/requirements-dev.txt index 00f16c6..8f98b73 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,3 @@ -r requirements.txt -r requirements-docs.txt -black==23.9.1 pip-check-updates==0.22.0 -pylint==2.17.7 diff --git a/src/2021/day01_input.txt b/src/2021/day01_input.txt new file mode 100644 index 0000000..13c1d1f --- /dev/null +++ b/src/2021/day01_input.txt @@ -0,0 +1,2000 @@ +199 +203 +200 +201 +196 +195 +196 +214 +227 +225 +229 +260 +246 +253 +271 +281 +280 +295 +310 +293 +295 +297 +298 +297 +306 +299 +290 +292 +289 +287 +291 +296 +294 +287 +286 +287 +289 +290 +281 +283 +282 +275 +256 +265 +242 +231 +226 +216 +227 +226 +249 +238 +237 +247 +245 +250 +264 +267 +259 +258 +264 +261 +249 +246 +239 +240 +259 +258 +280 +279 +278 +281 +272 +256 +255 +271 +286 +290 +286 +288 +290 +294 +292 +294 +292 +293 +294 +291 +298 +303 +301 +330 +331 +336 +362 +371 +374 +368 +367 +368 +366 +364 +371 +377 +378 +384 +386 +388 +393 +409 +423 +422 +411 +412 +426 +430 +441 +460 +462 +464 +469 +461 +483 +452 +455 +457 +468 +506 +509 +514 +525 +512 +524 +523 +522 +531 +549 +548 +549 +548 +524 +525 +528 +526 +537 +544 +549 +546 +525 +532 +535 +543 +544 +545 +525 +536 +538 +541 +524 +534 +542 +538 +539 +544 +543 +539 +538 +527 +553 +552 +562 +560 +561 +573 +574 +570 +571 +568 +569 +571 +573 +566 +567 +584 +591 +607 +605 +604 +605 +617 +615 +617 +606 +608 +609 +613 +616 +635 +634 +637 +635 +634 +655 +639 +646 +637 +628 +622 +648 +645 +640 +652 +653 +659 +661 +658 +650 +667 +670 +668 +680 +682 +673 +668 +678 +677 +675 +676 +677 +675 +688 +681 +676 +684 +675 +664 +665 +654 +660 +664 +663 +667 +658 +661 +676 +675 +680 +681 +690 +693 +697 +721 +733 +739 +740 +739 +751 +765 +766 +752 +748 +763 +772 +771 +782 +784 +797 +799 +817 +812 +811 +795 +783 +785 +790 +785 +784 +782 +771 +756 +759 +783 +772 +774 +779 +783 +786 +780 +783 +779 +777 +778 +777 +762 +778 +777 +770 +773 +769 +770 +771 +764 +765 +761 +745 +754 +758 +759 +746 +738 +740 +742 +767 +765 +754 +755 +758 +762 +760 +761 +757 +761 +770 +773 +777 +776 +777 +769 +767 +793 +805 +798 +793 +803 +809 +808 +817 +804 +809 +805 +804 +806 +808 +812 +830 +831 +832 +831 +819 +820 +823 +822 +812 +814 +812 +842 +858 +855 +856 +862 +860 +855 +839 +840 +841 +840 +846 +850 +859 +861 +852 +846 +848 +845 +833 +843 +846 +849 +889 +890 +894 +904 +907 +904 +905 +906 +907 +910 +902 +906 +900 +907 +906 +899 +887 +867 +866 +873 +878 +885 +880 +890 +863 +860 +859 +885 +856 +853 +854 +852 +864 +855 +874 +875 +874 +875 +871 +872 +867 +870 +873 +874 +860 +862 +879 +878 +879 +880 +881 +882 +878 +882 +885 +890 +902 +903 +905 +906 +909 +917 +916 +934 +932 +935 +937 +935 +910 +911 +907 +902 +904 +910 +917 +918 +943 +945 +959 +973 +972 +969 +973 +972 +958 +957 +959 +963 +968 +961 +960 +973 +971 +970 +977 +1002 +1012 +1011 +1007 +1017 +1024 +1014 +1013 +1019 +1005 +984 +983 +980 +993 +999 +982 +988 +989 +990 +992 +988 +989 +988 +981 +958 +973 +966 +965 +942 +926 +933 +928 +932 +940 +927 +930 +920 +930 +897 +905 +907 +889 +882 +888 +889 +872 +873 +885 +884 +886 +887 +898 +901 +902 +895 +880 +894 +886 +882 +885 +890 +896 +880 +881 +866 +872 +875 +903 +901 +907 +899 +920 +921 +934 +935 +937 +928 +929 +927 +928 +935 +906 +908 +906 +882 +883 +887 +891 +892 +898 +903 +907 +909 +916 +917 +945 +935 +937 +928 +918 +927 +916 +929 +919 +931 +954 +953 +954 +956 +953 +947 +937 +941 +960 +968 +951 +955 +954 +938 +939 +946 +945 +947 +948 +951 +943 +949 +946 +954 +952 +949 +943 +936 +944 +941 +950 +952 +948 +947 +971 +970 +969 +974 +971 +1000 +1005 +1007 +1009 +1008 +1000 +998 +999 +1001 +1008 +1001 +1024 +1005 +998 +1016 +1018 +1019 +1020 +1021 +1057 +1056 +1052 +1044 +1045 +1057 +1058 +1074 +1075 +1069 +1056 +1055 +1056 +1052 +1059 +1070 +1043 +1039 +1035 +1025 +1015 +1018 +1029 +1033 +1042 +1038 +1031 +1033 +1023 +1016 +1019 +1018 +1016 +1018 +1020 +1009 +1008 +997 +973 +983 +990 +996 +1002 +1001 +1000 +1002 +1001 +1015 +1016 +1015 +1019 +1020 +1016 +1010 +1009 +1008 +1016 +1018 +1015 +1011 +1004 +999 +1000 +1027 +1035 +1050 +1051 +1068 +1058 +1072 +1086 +1089 +1060 +1043 +1028 +1026 +1028 +1052 +1050 +1042 +1040 +1036 +1055 +1050 +1051 +1049 +1053 +1054 +1059 +1058 +1066 +1059 +1061 +1070 +1071 +1068 +1059 +1060 +1065 +1066 +1068 +1060 +1059 +1070 +1069 +1068 +1067 +1068 +1070 +1069 +1066 +1073 +1065 +1066 +1050 +1052 +1050 +1056 +1055 +1063 +1062 +1057 +1054 +1048 +1047 +1051 +1049 +1043 +1017 +1016 +1002 +1005 +992 +994 +999 +1001 +1017 +1026 +1024 +1028 +1040 +1039 +1046 +1022 +1023 +992 +995 +1019 +1022 +1023 +1011 +1004 +1005 +993 +991 +992 +995 +996 +997 +1009 +1011 +1012 +1017 +1030 +1029 +1031 +1024 +1033 +1008 +1006 +1018 +1020 +1015 +1020 +1031 +1029 +1026 +1030 +1042 +1039 +1029 +1027 +1008 +1003 +1019 +1000 +1001 +995 +996 +994 +988 +989 +988 +987 +994 +997 +1000 +994 +997 +989 +991 +985 +975 +982 +981 +986 +980 +979 +973 +984 +985 +983 +981 +956 +925 +924 +919 +913 +915 +917 +914 +916 +895 +910 +924 +919 +914 +928 +935 +927 +930 +932 +936 +939 +944 +948 +947 +946 +945 +948 +944 +942 +944 +958 +956 +947 +955 +990 +995 +996 +1007 +1009 +1013 +1012 +1011 +1020 +1019 +1021 +1016 +1038 +1050 +1043 +1046 +1047 +1043 +1040 +1039 +1045 +1046 +1030 +1031 +1034 +1035 +1045 +1066 +1085 +1092 +1101 +1100 +1101 +1099 +1084 +1085 +1086 +1090 +1091 +1087 +1100 +1099 +1092 +1095 +1101 +1102 +1118 +1117 +1138 +1139 +1132 +1127 +1131 +1132 +1130 +1128 +1130 +1150 +1149 +1157 +1158 +1156 +1157 +1155 +1170 +1175 +1167 +1166 +1177 +1174 +1186 +1187 +1186 +1185 +1189 +1193 +1204 +1191 +1196 +1198 +1186 +1198 +1215 +1210 +1211 +1212 +1211 +1207 +1206 +1198 +1202 +1190 +1185 +1190 +1199 +1222 +1225 +1222 +1234 +1236 +1260 +1261 +1262 +1272 +1289 +1286 +1290 +1297 +1295 +1270 +1291 +1299 +1303 +1318 +1342 +1356 +1361 +1362 +1326 +1325 +1333 +1329 +1349 +1353 +1367 +1368 +1371 +1369 +1353 +1351 +1349 +1352 +1354 +1353 +1356 +1355 +1362 +1366 +1368 +1370 +1349 +1354 +1357 +1356 +1360 +1357 +1361 +1363 +1364 +1345 +1338 +1335 +1334 +1322 +1329 +1333 +1334 +1331 +1330 +1337 +1348 +1347 +1348 +1317 +1307 +1313 +1330 +1323 +1324 +1327 +1334 +1336 +1334 +1332 +1338 +1341 +1342 +1373 +1375 +1374 +1372 +1373 +1371 +1370 +1375 +1363 +1361 +1366 +1389 +1390 +1366 +1380 +1381 +1379 +1383 +1400 +1402 +1404 +1409 +1410 +1434 +1439 +1443 +1448 +1434 +1462 +1463 +1462 +1464 +1465 +1471 +1465 +1464 +1469 +1473 +1480 +1486 +1488 +1492 +1494 +1495 +1496 +1504 +1496 +1495 +1472 +1469 +1465 +1466 +1455 +1464 +1465 +1474 +1475 +1490 +1499 +1490 +1492 +1489 +1500 +1504 +1500 +1499 +1500 +1510 +1511 +1516 +1511 +1515 +1512 +1499 +1506 +1509 +1493 +1495 +1496 +1485 +1486 +1476 +1475 +1484 +1485 +1469 +1477 +1478 +1467 +1468 +1469 +1477 +1478 +1475 +1473 +1461 +1468 +1470 +1496 +1491 +1506 +1505 +1526 +1530 +1528 +1529 +1533 +1555 +1558 +1557 +1554 +1557 +1559 +1560 +1562 +1561 +1563 +1564 +1550 +1559 +1558 +1559 +1554 +1535 +1538 +1541 +1540 +1529 +1528 +1519 +1527 +1535 +1518 +1523 +1519 +1536 +1562 +1561 +1566 +1568 +1583 +1584 +1599 +1585 +1581 +1588 +1559 +1561 +1574 +1587 +1574 +1576 +1589 +1588 +1582 +1581 +1584 +1604 +1563 +1555 +1561 +1564 +1548 +1541 +1542 +1546 +1548 +1550 +1566 +1544 +1523 +1525 +1521 +1541 +1550 +1551 +1548 +1558 +1561 +1560 +1550 +1563 +1578 +1582 +1563 +1557 +1558 +1557 +1559 +1574 +1569 +1577 +1576 +1577 +1571 +1573 +1572 +1574 +1577 +1581 +1566 +1535 +1539 +1540 +1536 +1545 +1544 +1513 +1511 +1509 +1502 +1489 +1490 +1495 +1488 +1492 +1513 +1519 +1520 +1521 +1530 +1512 +1514 +1512 +1517 +1518 +1520 +1519 +1527 +1526 +1527 +1528 +1529 +1522 +1525 +1529 +1525 +1524 +1525 +1527 +1529 +1524 +1523 +1525 +1533 +1535 +1536 +1555 +1557 +1573 +1572 +1571 +1590 +1593 +1594 +1593 +1565 +1566 +1554 +1572 +1567 +1569 +1566 +1597 +1616 +1630 +1641 +1638 +1634 +1647 +1651 +1649 +1652 +1659 +1660 +1651 +1656 +1653 +1654 +1653 +1658 +1643 +1642 +1641 +1654 +1655 +1656 +1666 +1673 +1682 +1665 +1663 +1670 +1654 +1668 +1667 +1656 +1646 +1655 +1662 +1680 +1683 +1682 +1683 +1684 +1722 +1702 +1710 +1711 +1715 +1728 +1730 +1735 +1736 +1750 +1755 +1756 +1755 +1752 +1761 +1768 +1767 +1760 +1751 +1747 +1764 +1763 +1762 +1748 +1753 +1745 +1752 +1754 +1746 +1747 +1748 +1756 +1761 +1756 +1734 +1711 +1712 +1721 +1727 +1726 +1731 +1729 +1715 +1716 +1733 +1738 +1740 +1756 +1755 +1748 +1744 +1751 +1756 +1774 +1775 +1755 +1746 +1754 +1758 +1767 +1785 +1786 +1787 +1788 +1766 +1787 +1786 +1788 +1762 +1757 +1752 +1760 +1781 +1750 +1757 +1762 +1767 +1770 +1744 +1743 +1747 +1756 +1763 +1775 +1769 +1760 +1759 +1766 +1768 +1764 +1759 +1761 +1792 +1798 +1800 +1802 +1813 +1810 +1822 +1824 +1816 +1842 +1843 +1835 +1833 +1834 +1837 +1826 +1830 +1850 +1855 +1857 +1862 +1856 +1877 +1878 +1875 +1850 +1847 +1846 +1847 +1846 +1826 +1829 +1825 +1817 +1818 +1815 +1834 +1833 +1822 +1825 +1815 +1817 +1815 +1816 +1810 +1822 +1815 +1817 +1821 +1820 +1814 +1802 +1799 +1814 +1834 +1830 +1842 +1828 +1836 +1849 +1851 +1849 +1848 +1849 +1865 +1885 +1895 +1904 +1910 +1921 +1937 +1941 +1970 +1968 +1975 +1982 +2003 +2012 +2011 +2008 +2006 +1997 +1994 +1991 +1989 +1988 +1995 +1976 +2006 +2018 +2015 +2023 +2022 +2023 +2048 +2038 +2039 +2041 +2057 +2058 +2059 +2060 +2059 +2061 +2031 +2032 +2033 +2020 +2019 +2023 +2032 +2034 +2027 +2029 +2027 +2018 +2028 +2055 +2054 +2043 +2047 +2046 +2055 +2047 +2056 +2037 +2032 +2003 +2002 +1999 +2001 +1996 +2000 +2002 +2004 +1988 +1990 +1999 +1986 +1988 +1986 +1985 +1977 +1978 +1977 +1973 +1977 +1978 +1985 +1988 +1964 +1967 +1989 +1984 +1980 +1979 +1980 +1999 +2006 +2004 +2018 +2051 +2024 +2023 +2025 +2026 +2012 +2000 +2017 +2018 +2017 +2019 +2017 +2025 +2030 +2038 +2016 +2001 +2020 +2018 +2010 +2013 +2028 +2031 +2018 +2019 +2009 +2015 +2011 +2012 +2024 +2027 +2028 +2018 +2007 +2009 +2011 +2009 +2008 +2006 +2008 +2013 +2017 +2027 +2030 +2031 +2029 +2045 +2064 +2065 +2064 +2077 +2075 +2066 +2037 +2038 +2043 +2047 +2049 +2055 +2090 +2092 +2101 +2115 +2117 +2130 +2131 +2130 +2136 +2141 +2145 +2151 +2150 +2149 +2150 +2143 +2150 +2139 +2142 +2140 +2146 +2147 +2148 +2146 +2141 +2158 +2176 +2195 +2194 +2190 +2187 +2188 +2205 +2206 +2208 +2207 +2208 +2200 +2199 +2193 +2169 +2188 +2189 +2183 +2202 +2170 +2164 +2165 +2166 +2177 +2181 +2198 +2197 +2207 +2201 +2206 +2203 +2209 +2213 +2214 +2216 +2218 +2219 +2214 +2235 +2239 +2235 +2253 +2246 +2247 +2246 +2247 +2246 +2251 +2249 +2275 +2285 +2293 +2294 +2295 +2299 +2303 +2302 +2303 +2276 +2282 +2287 +2294 +2299 +2301 +2300 +2306 +2294 +2301 +2296 +2289 +2291 +2300 +2301 +2287 +2286 +2307 +2305 +2315 +2305 +2309 +2334 +2337 +2348 +2349 +2350 +2332 +2342 +2341 +2338 +2310 +2316 +2333 +2335 +2330 +2342 +2349 +2341 +2363 +2368 +2374 +2360 +2359 +2350 +2348 +2359 +2365 +2364 +2355 +2341 +2339 +2345 +2338 +2335 +2323 +2324 +2318 +2294 +2296 +2297 +2286 +2282 +2278 +2276 +2272 +2267 +2269 +2270 +2269 +2266 +2268 +2264 +2268 +2260 +2263 +2297 +2311 +2319 +2301 +2292 +2302 +2309 +2307 +2303 +2306 +2311 +2293 +2278 +2284 +2288 +2271 +2273 +2275 +2278 +2279 +2283 +2318 +2315 +2312 +2325 +2346 +2339 +2314 +2303 +2304 +2279 +2278 +2269 +2267 +2270 +2277 +2287 +2285 +2288 +2289 +2288 +2284 +2283 +2281 +2289 +2288 +2275 +2278 +2265 +2267 +2262 +2259 +2260 +2261 +2251 +2250 +2254 +2253 +2242 +2240 +2241 +2226 +2232 +2236 +2201 +2182 +2183 +2191 +2185 +2192 +2197 +2211 +2210 +2208 +2218 +2219 +2228 +2227 +2225 +2226 +2225 +2226 +2229 +2233 +2237 +2236 +2211 +2215 +2216 +2236 +2227 +2228 +2227 +2226 +2244 +2260 +2258 +2257 +2258 +2250 +2248 +2229 +2225 +2223 +2222 +2221 +2220 +2219 +2213 +2214 +2212 +2216 +2217 +2220 +2216 +2217 +2223 +2227 +2231 +2225 +2228 +2230 +2233 +2226 +2224 +2241 +2221 +2220 +2224 +2221 +2220 +2223 +2221 +2246 +2247 +2246 +2222 +2226 +2237 +2250 +2251 +2276 +2288 +2309 +2304 +2330 +2323 +2327 +2350 +2349 +2348 +2346 +2354 +2350 +2323 +2320 +2313 +2315 +2314 +2316 +2332 +2338 +2341 diff --git a/2021/day01_part1.py b/src/2021/day01_part1.py similarity index 100% rename from 2021/day01_part1.py rename to src/2021/day01_part1.py diff --git a/2021/day01_part2.py b/src/2021/day01_part2.py similarity index 100% rename from 2021/day01_part2.py rename to src/2021/day01_part2.py diff --git a/src/2021/day02_input.txt b/src/2021/day02_input.txt new file mode 100644 index 0000000..e7e260a --- /dev/null +++ b/src/2021/day02_input.txt @@ -0,0 +1,1000 @@ +forward 7 +forward 9 +forward 3 +down 5 +down 9 +forward 6 +down 2 +forward 2 +forward 8 +forward 3 +forward 5 +forward 5 +forward 8 +down 6 +forward 8 +forward 2 +up 8 +down 8 +forward 6 +down 4 +down 5 +forward 2 +down 6 +forward 7 +down 9 +forward 9 +down 2 +down 7 +up 6 +up 3 +up 7 +down 9 +forward 1 +forward 1 +down 4 +down 9 +forward 4 +up 4 +forward 8 +forward 9 +down 7 +down 4 +up 6 +down 8 +down 2 +forward 8 +forward 6 +down 3 +forward 2 +forward 6 +down 3 +forward 1 +forward 8 +down 8 +down 9 +forward 5 +forward 4 +forward 8 +down 7 +forward 4 +forward 3 +forward 6 +down 3 +forward 6 +forward 6 +down 9 +down 9 +down 9 +down 2 +down 7 +down 4 +forward 3 +up 7 +up 3 +down 1 +forward 4 +up 9 +forward 4 +forward 2 +down 2 +forward 9 +up 4 +forward 5 +down 8 +up 7 +down 5 +down 1 +up 7 +up 4 +forward 5 +up 8 +up 3 +down 2 +down 1 +down 2 +forward 3 +up 1 +forward 1 +forward 1 +down 1 +down 6 +down 6 +up 4 +down 4 +down 4 +forward 6 +down 6 +forward 7 +forward 5 +up 7 +down 9 +down 6 +forward 5 +forward 6 +forward 2 +down 4 +forward 5 +forward 8 +down 8 +down 6 +forward 2 +forward 8 +down 3 +forward 6 +down 1 +forward 5 +down 8 +up 1 +forward 6 +down 7 +forward 4 +down 8 +down 8 +forward 8 +down 6 +down 3 +forward 2 +forward 8 +forward 9 +forward 4 +forward 3 +down 4 +forward 3 +down 9 +down 1 +forward 2 +forward 3 +forward 7 +down 1 +forward 6 +forward 8 +forward 6 +forward 2 +down 8 +up 9 +forward 6 +forward 8 +down 7 +down 5 +up 4 +forward 9 +up 7 +up 3 +forward 3 +down 6 +forward 4 +forward 2 +down 3 +forward 9 +forward 5 +up 7 +down 9 +up 4 +down 3 +forward 8 +up 1 +forward 2 +forward 8 +forward 8 +forward 5 +down 7 +up 6 +down 9 +down 4 +forward 2 +down 5 +down 2 +down 2 +forward 6 +down 2 +forward 9 +forward 1 +up 1 +forward 4 +down 1 +forward 3 +down 3 +forward 4 +up 5 +up 3 +forward 6 +forward 8 +forward 2 +forward 6 +up 5 +down 9 +down 8 +forward 3 +down 5 +forward 8 +forward 1 +down 9 +up 3 +down 2 +down 9 +up 8 +down 2 +up 7 +up 2 +up 3 +down 9 +down 1 +down 7 +down 1 +forward 1 +down 9 +down 6 +forward 3 +up 7 +up 8 +down 5 +down 6 +up 2 +forward 8 +down 4 +up 1 +forward 4 +up 4 +forward 2 +down 4 +forward 4 +down 9 +up 4 +forward 8 +up 7 +forward 1 +down 3 +up 7 +forward 5 +down 5 +forward 2 +forward 7 +forward 3 +down 8 +forward 4 +forward 9 +up 2 +down 4 +down 5 +forward 4 +down 4 +up 6 +down 8 +up 1 +down 1 +up 6 +up 6 +down 7 +down 7 +forward 2 +forward 4 +forward 8 +down 8 +down 4 +down 4 +down 7 +forward 4 +down 3 +forward 5 +forward 5 +forward 7 +down 7 +forward 1 +down 8 +up 4 +up 9 +up 3 +up 6 +forward 5 +forward 5 +forward 4 +forward 9 +down 9 +forward 4 +forward 1 +up 8 +up 2 +down 9 +up 4 +forward 2 +up 8 +forward 6 +forward 2 +up 9 +down 3 +forward 3 +up 7 +down 7 +forward 4 +forward 7 +forward 3 +down 4 +down 5 +forward 7 +up 3 +up 1 +down 4 +forward 6 +down 1 +forward 1 +down 4 +down 3 +forward 9 +forward 4 +down 9 +down 3 +forward 2 +forward 5 +forward 6 +down 3 +forward 5 +down 9 +forward 2 +forward 9 +down 7 +down 4 +down 3 +down 1 +up 2 +forward 6 +forward 4 +down 9 +down 2 +forward 2 +forward 9 +down 3 +forward 8 +down 8 +forward 5 +down 4 +forward 4 +up 6 +up 3 +down 3 +down 9 +forward 5 +forward 8 +down 2 +forward 9 +forward 5 +up 9 +forward 2 +forward 3 +forward 4 +up 8 +up 1 +up 6 +down 5 +down 8 +down 4 +forward 6 +up 2 +forward 1 +forward 7 +up 8 +forward 5 +up 9 +forward 7 +down 6 +up 5 +up 7 +up 1 +down 3 +up 6 +forward 1 +up 1 +forward 2 +forward 4 +forward 5 +up 3 +up 8 +up 1 +up 6 +up 3 +down 5 +down 4 +up 8 +down 9 +up 7 +down 6 +down 9 +forward 5 +forward 3 +down 9 +down 3 +down 6 +up 3 +up 8 +down 4 +down 1 +up 9 +up 9 +forward 8 +down 7 +forward 1 +forward 4 +down 8 +forward 2 +down 4 +forward 7 +forward 3 +forward 5 +forward 1 +up 2 +down 9 +down 5 +up 6 +down 3 +forward 1 +up 9 +forward 6 +forward 1 +forward 4 +up 7 +forward 6 +down 1 +forward 9 +forward 1 +forward 3 +down 9 +down 8 +down 5 +forward 4 +down 7 +up 1 +forward 8 +up 4 +forward 6 +down 2 +forward 4 +forward 7 +down 8 +forward 6 +down 7 +forward 7 +up 7 +forward 4 +down 8 +down 8 +forward 8 +forward 6 +down 9 +down 8 +down 6 +down 2 +down 4 +forward 7 +forward 3 +down 8 +down 5 +forward 2 +down 9 +down 7 +up 1 +up 5 +forward 6 +up 8 +up 7 +up 4 +down 6 +down 6 +down 8 +down 9 +down 2 +forward 6 +forward 6 +forward 2 +up 9 +forward 6 +forward 9 +forward 8 +down 5 +down 3 +forward 1 +forward 8 +forward 1 +forward 3 +down 4 +forward 5 +forward 1 +forward 6 +down 8 +down 9 +forward 3 +forward 2 +forward 1 +forward 3 +up 7 +down 7 +down 2 +forward 3 +down 5 +down 2 +down 7 +down 9 +down 5 +down 7 +down 9 +up 7 +forward 7 +forward 9 +forward 8 +forward 5 +down 1 +up 6 +up 6 +forward 5 +up 6 +down 8 +up 6 +forward 2 +down 9 +down 5 +up 8 +up 7 +down 8 +down 7 +up 3 +down 5 +forward 6 +forward 2 +down 6 +forward 6 +forward 1 +forward 5 +forward 3 +down 4 +forward 3 +down 1 +up 7 +forward 3 +forward 9 +forward 3 +forward 4 +down 9 +forward 6 +down 1 +up 6 +forward 2 +forward 1 +down 2 +down 1 +down 9 +forward 1 +up 8 +down 1 +up 3 +forward 3 +forward 1 +up 6 +down 1 +down 7 +down 2 +forward 5 +down 4 +forward 4 +forward 9 +down 7 +forward 6 +down 4 +forward 8 +down 5 +forward 6 +down 6 +down 6 +down 9 +forward 3 +forward 2 +forward 7 +forward 6 +forward 8 +up 6 +forward 7 +down 2 +up 4 +forward 6 +forward 3 +forward 9 +down 1 +forward 9 +down 1 +forward 6 +down 9 +forward 7 +forward 9 +forward 6 +up 3 +down 3 +forward 3 +up 1 +down 8 +forward 7 +down 4 +forward 7 +forward 7 +down 1 +forward 5 +down 6 +forward 6 +down 8 +down 2 +down 7 +forward 9 +forward 7 +forward 2 +down 5 +forward 7 +forward 8 +forward 5 +forward 5 +up 1 +down 1 +up 4 +forward 5 +forward 8 +down 4 +up 8 +forward 8 +up 2 +down 1 +down 9 +up 9 +down 9 +forward 3 +forward 1 +down 7 +down 2 +forward 5 +up 7 +forward 9 +forward 1 +down 4 +down 8 +down 2 +up 1 +up 6 +forward 9 +down 3 +down 2 +forward 5 +forward 4 +down 5 +down 4 +up 4 +forward 4 +down 3 +up 3 +down 7 +down 7 +forward 1 +forward 4 +forward 7 +forward 5 +down 4 +down 7 +forward 1 +forward 9 +down 4 +forward 8 +up 4 +down 9 +down 9 +up 6 +up 3 +forward 2 +forward 3 +up 7 +forward 7 +down 4 +forward 5 +forward 5 +up 2 +down 5 +down 9 +forward 9 +forward 7 +forward 1 +up 5 +up 5 +forward 8 +forward 3 +forward 2 +down 4 +down 6 +down 2 +forward 5 +down 3 +down 9 +forward 8 +forward 7 +forward 7 +down 1 +up 3 +down 8 +down 9 +forward 6 +up 6 +down 6 +forward 2 +forward 3 +forward 7 +up 8 +down 8 +down 7 +forward 2 +down 2 +up 7 +up 9 +forward 1 +forward 1 +forward 1 +forward 1 +forward 1 +up 8 +down 3 +up 8 +down 5 +down 3 +up 4 +forward 4 +down 3 +down 4 +down 3 +up 3 +down 3 +up 2 +up 6 +down 9 +down 6 +up 8 +up 7 +down 1 +down 7 +down 3 +forward 3 +forward 5 +down 4 +down 7 +forward 1 +forward 8 +up 9 +up 2 +forward 3 +up 1 +forward 7 +down 7 +down 5 +forward 9 +up 9 +forward 3 +down 2 +up 4 +down 2 +down 1 +down 9 +down 9 +forward 3 +forward 4 +down 2 +down 6 +up 8 +down 5 +forward 7 +forward 4 +up 3 +forward 2 +down 4 +down 8 +forward 4 +forward 6 +forward 8 +down 6 +down 8 +up 2 +forward 5 +up 7 +down 9 +down 6 +forward 7 +up 3 +down 9 +forward 2 +down 6 +up 6 +down 6 +down 3 +down 2 +down 8 +down 4 +forward 8 +up 7 +forward 9 +forward 4 +down 3 +forward 3 +down 9 +down 2 +forward 2 +forward 1 +down 4 +down 3 +down 8 +up 6 +down 4 +forward 3 +down 7 +forward 8 +down 7 +forward 6 +forward 2 +forward 7 +forward 6 +forward 4 +up 4 +forward 2 +down 4 +down 2 +forward 3 +down 2 +up 9 +down 6 +forward 5 +up 6 +forward 1 +up 1 +down 3 +up 4 +forward 1 +down 6 +forward 9 +up 2 +forward 4 +up 9 +up 5 +down 5 +forward 3 +down 9 +forward 5 +down 3 +forward 7 +forward 5 +forward 9 +up 5 +down 4 +down 2 +forward 9 +down 3 +down 8 +down 9 +forward 2 +down 8 +up 6 +down 4 +down 2 +up 9 +forward 8 +forward 8 +down 8 +forward 4 +down 7 +forward 2 +up 7 +forward 7 +down 4 +forward 4 +down 3 +forward 9 +down 9 +forward 6 +down 5 +down 9 +up 5 +forward 7 +forward 2 +down 3 +down 7 +down 2 +forward 3 +down 4 +up 3 +down 1 +forward 9 +down 4 +down 8 +up 9 +forward 7 +down 8 +forward 9 +down 2 +up 2 +down 1 +down 1 +forward 6 +forward 2 +forward 3 +down 5 +down 1 +down 1 +up 4 +forward 8 +down 3 +down 1 +forward 9 +forward 7 +forward 2 +up 8 +up 6 +down 7 +down 6 +forward 3 +down 2 +down 9 +up 7 +forward 5 +up 9 +down 9 +down 4 +down 8 +down 5 +down 8 +down 8 +forward 6 +forward 1 +forward 4 +forward 7 +down 7 +down 6 +forward 4 +forward 7 +forward 6 +down 7 +forward 4 +forward 9 +up 3 +forward 9 +forward 5 +forward 1 +up 2 +down 1 +down 5 +forward 9 +up 4 +forward 6 +up 3 +up 6 +forward 8 +down 6 +forward 5 +down 3 +forward 2 +forward 7 +down 4 +up 8 +forward 6 +up 7 +up 9 +forward 3 +down 3 +down 7 +down 7 +down 1 +down 6 +down 9 +up 1 +forward 6 +forward 6 +down 3 +forward 7 +down 8 +forward 1 +down 7 +down 4 +down 3 +down 4 +down 4 +forward 7 +down 3 +forward 6 +up 9 +forward 3 diff --git a/2021/day02_part1.py b/src/2021/day02_part1.py similarity index 100% rename from 2021/day02_part1.py rename to src/2021/day02_part1.py diff --git a/2021/day02_part2.py b/src/2021/day02_part2.py similarity index 100% rename from 2021/day02_part2.py rename to src/2021/day02_part2.py diff --git a/src/2021/day03_input.txt b/src/2021/day03_input.txt new file mode 100644 index 0000000..b19b6a2 --- /dev/null +++ b/src/2021/day03_input.txt @@ -0,0 +1,1000 @@ +100100110110 +101110110110 +010100010100 +011001110000 +000000000111 +000010110001 +001111000001 +100010000001 +010100110011 +010000010110 +010000000011 +010101001000 +011011101100 +011100110111 +011011000000 +001010010010 +011011111010 +011110110110 +000000100010 +111111010101 +011100010011 +001110110100 +110110010100 +100000001011 +100100010011 +011011010001 +111000101110 +101100001111 +110101010101 +011010001001 +101111011000 +011111111011 +110000100101 +011101101101 +011010011001 +111100100001 +100000010000 +111010001010 +111110010001 +110110001101 +000001000001 +000101011000 +111101100100 +110011001001 +100010100011 +011011100010 +011000101101 +110101101011 +111110101000 +010111110100 +010010101011 +100001001000 +101011101011 +110111000001 +011100011110 +011001101101 +010100001111 +001111011000 +100111111010 +110110000100 +000010101100 +111010111011 +110110110110 +110111011000 +100001011001 +110010011111 +100000000101 +110000101100 +110100010110 +101001101100 +111000100011 +011001001101 +000111100111 +001000111110 +110100100010 +000110011100 +010011101111 +010101000111 +101100100001 +100110000010 +001110100101 +010100100100 +001110010110 +000010111010 +101011101001 +101111101010 +101011100110 +011001111010 +100110101010 +101111101110 +100000100011 +000101001011 +000110110000 +110111101111 +111110010110 +100010010111 +011100000101 +101010011010 +010111110010 +000011111101 +000001101000 +000111001001 +101000001011 +011001101000 +010110101110 +000111101000 +101100100011 +011010010011 +110101111110 +101011110001 +111000011101 +111110011100 +100110110001 +110111110011 +000000011010 +000100001110 +011100001111 +010110010111 +011000100110 +011000111000 +010001000111 +100010101110 +011001111011 +010111100001 +011101101110 +101100010110 +100010101011 +110101000010 +111010001101 +111001100111 +101001110111 +011000110010 +011001111100 +010001000110 +011011100101 +101111010001 +100110001011 +001011000010 +010100011111 +101111100110 +011100000010 +011001000010 +010011011111 +001101000010 +110110010110 +001000101001 +101100011000 +000111000110 +000001001101 +000100100111 +110111011100 +010100101001 +010101110000 +110000001110 +010011010000 +011101110000 +001111100000 +010011000011 +010011010011 +101110010000 +101100000110 +110011101101 +010011111101 +101011010110 +001011011100 +111111011001 +011011111000 +011101110011 +010011001101 +100011001000 +011010111011 +111101000110 +100110001101 +101001101011 +100000111100 +111101001011 +010111010111 +101110000000 +010010111111 +100010110010 +101111110100 +111101110111 +111111110010 +110110001100 +101010101111 +000110101000 +100110110100 +100101011010 +001001011000 +111010001011 +000000110100 +111000010010 +101010011101 +010110000010 +011111110111 +101011111101 +011010100111 +100011011101 +110110011110 +101111100111 +001100001111 +011111101011 +100101000100 +100101010010 +011110111010 +010110001001 +010101101010 +001111000101 +010001001100 +001010000010 +010000001101 +110000100110 +111100001101 +101010001001 +110011111111 +010111011001 +000111101111 +111110000011 +011111000011 +011110011011 +100011010100 +000011000110 +011100101000 +010101001111 +010110010110 +111111000111 +101011001001 +011100010111 +000000001100 +011001001000 +110101101111 +101101011001 +000111011000 +000010001111 +111110011011 +010111011111 +011101110100 +001011100001 +001001011100 +110100111011 +100101011111 +000111001101 +011110100101 +111100011010 +111000110100 +010001010101 +100001000100 +000000101110 +011011001110 +111010100111 +100110110000 +110110110001 +001110001001 +110010111111 +000111001011 +011001011111 +000010001011 +100010101001 +100101100101 +010110011001 +101101011110 +101011100101 +101110110101 +111001100001 +001000101010 +101011010011 +110011101100 +101100001101 +101111101001 +111100000010 +100111000000 +010010000100 +001001001001 +000110111110 +011010001110 +100011110000 +110111101000 +110000010101 +011011101011 +101000010001 +110110110010 +100000000001 +011011010101 +000111111101 +100001111011 +100100000110 +001111100010 +110010000011 +101101111001 +110011010110 +010001011011 +010010011010 +001110011110 +100111010010 +110011011010 +111100010011 +111011011101 +100001010110 +101011001111 +001001000000 +101011100010 +010000110011 +100111110000 +010010101110 +110000110011 +110100010111 +001011110010 +101011000111 +000101110011 +010001111011 +000010011011 +011000001011 +000000100100 +001101111001 +011000000101 +100100001101 +101001000011 +111100100111 +111000111111 +011000110011 +101011011110 +101110000100 +010101000001 +110111111100 +100000011011 +101001011010 +111011000110 +110111101011 +011000101100 +100001111111 +111011100101 +110111110101 +101011111010 +010001101100 +111000111001 +110001000011 +100000110100 +010110100010 +100011011111 +001111111001 +101101011011 +011101011000 +100000111000 +101000000110 +010110011101 +110010101101 +011110000010 +100011011010 +110010110101 +110111100011 +110100110000 +101010011100 +001010010110 +100110011110 +101100100010 +110101111001 +111110000000 +011000111111 +100100100000 +111111101111 +001011110101 +101110000001 +101111011110 +011010111001 +011111010111 +000111000101 +000100010001 +111100100101 +100110000100 +001000001111 +001001100100 +001000000110 +110010100100 +111110110101 +010010111001 +110111000110 +011101000000 +100001101100 +111101000111 +000101111111 +001111010100 +101001100100 +111111110001 +010010010001 +111011101010 +001110101000 +111101100001 +100001000001 +111001111010 +100101000011 +000001110011 +000111100001 +110010011110 +111111101011 +000101001001 +000101111101 +011101011001 +100100000111 +110000001011 +001111100110 +110010001101 +011101011011 +011100111111 +000001010000 +011001010101 +001111001010 +010111000000 +001101101101 +011111000111 +000111011101 +100100111100 +011101011111 +111000000111 +100111101101 +001001111001 +010001100101 +101111100001 +000010101101 +010001011111 +000111101010 +011101111101 +111111110101 +011111001101 +110101001100 +011110001110 +001001010000 +010001010001 +011000010010 +100010000100 +100100100001 +011101101111 +111000101111 +001101110110 +110011110000 +000111011111 +011100110010 +001101101110 +101010100010 +111110110010 +111101000100 +001010101000 +001100101001 +111010101000 +010110000100 +110111001000 +111100000110 +001110001011 +011111111100 +110011100000 +001010011100 +110011001000 +001001110101 +001010110110 +110010100101 +100000111111 +110010000100 +110110100100 +001011101101 +000110000010 +001100000111 +010011100110 +001010101011 +111001101000 +110111010010 +110111001100 +010000111100 +010111100110 +001111111111 +011010111010 +100111011100 +011011011010 +001000001110 +111010100101 +100001011000 +011001110011 +100111011000 +111111101000 +010111011010 +111011111000 +001010101110 +000010010111 +110011000010 +100000111010 +110000001111 +011110111101 +101011011001 +011110011111 +100001111010 +111001010110 +100001010000 +011000100000 +111001011000 +000100110011 +010110111101 +010111000100 +100111011101 +100000011010 +010110111001 +010101001110 +110001001001 +111100010001 +111010110011 +100100010100 +000100100000 +100100110010 +111011100000 +111010110010 +110110100110 +001001010001 +010110100111 +111001101100 +000111111001 +011100000110 +011011010010 +001010111000 +001100000010 +100001110001 +011101110111 +010101010100 +111100111001 +010000010101 +011110011110 +000011110100 +000111100100 +100100011000 +101000011011 +111010000100 +000001000111 +111111011111 +000111010101 +000111100101 +000000001101 +000011100001 +101000100111 +100111010001 +001110101010 +101101110001 +101000111001 +001101100011 +101110000111 +100111110010 +010001111111 +100111000010 +100111101111 +111011110110 +100111000100 +000011111110 +001010000101 +111011111110 +010010101111 +010011001110 +110100000001 +110101110001 +000010001101 +000110001010 +101111110010 +111111001000 +001001100001 +110001110100 +110111111011 +000010000101 +111100111000 +010000000010 +001110111001 +111000110111 +000010000001 +111111010010 +010010001010 +001110010111 +000111111110 +100101000001 +000001110111 +101000010000 +100011011001 +010000101101 +011101000110 +110011001011 +110100011010 +100111000101 +011000000100 +110010101110 +001000101110 +100010111111 +100011111011 +001101010001 +111000100100 +100101100100 +001000100001 +000011000101 +001000110001 +110110011011 +100110010111 +110000011101 +000010000010 +011111001111 +000100111000 +100001011011 +110010000000 +000100010100 +011000101001 +100111011011 +110000101101 +111000110011 +101100010111 +101001100110 +110011111011 +100110100110 +100111111111 +100100101010 +001000011111 +000110101101 +110111100001 +100111000110 +100111110110 +111111100000 +100010001011 +100000000010 +110001001000 +101101001110 +111101110011 +010111001111 +011111010100 +110111000101 +010010001110 +010111100010 +111110010011 +001100011011 +100000110111 +010111110110 +001100011101 +010010010111 +110011001101 +000111101110 +011000001111 +010100000000 +110001101001 +101101010111 +110111010100 +101010010111 +001110111110 +101001000111 +011010010110 +010000101100 +110000111111 +011101010000 +010110001101 +010101000101 +101101001000 +100010110001 +101000110101 +111101010101 +010011111100 +100010100110 +011001111001 +000110001001 +101100000101 +000101011010 +100100011110 +100000110011 +100011000101 +110001011010 +111100000111 +001100110111 +011010110000 +011000000111 +111101101011 +011101110101 +010100011110 +010101100011 +000100010000 +010111001011 +101110100001 +110110110101 +000010100111 +001011000110 +110110101100 +010001100010 +011110110111 +110100001100 +000110001100 +001101001100 +101010111011 +000001101100 +011110101101 +110100000000 +011011100111 +000010101001 +100111110101 +000101000101 +010011010111 +111101010100 +110110101101 +110011011100 +110011011001 +000111010111 +110100011110 +000110011010 +110110100000 +111110101101 +001100111000 +101111000110 +011011000010 +000000001001 +010100111110 +100010000110 +001110111101 +010001011100 +101001111101 +110101110000 +001111101111 +100101111101 +110100111101 +000100001000 +111011110101 +001011001000 +011101010111 +101000000101 +011111111001 +111001011011 +010001110001 +010001110011 +001100111001 +100101110010 +100010100010 +110011111001 +111011101011 +001101110011 +000011011010 +101000010111 +000011010001 +101000010010 +000011101111 +011100001100 +110110011001 +011101000001 +010011011001 +111010010011 +001011000111 +010111100101 +101001111011 +101111011011 +011011001100 +010100110000 +000111100011 +010111111011 +100101101010 +010001100000 +111110100011 +100101011101 +011011011011 +111101011001 +001000011101 +101111110011 +100100100110 +010111100111 +110000001101 +000001010011 +100001010100 +101101000100 +110100101101 +110001100011 +110000111010 +101111011010 +011011100000 +100101100110 +010110010001 +101000011000 +011001110100 +001110001100 +100100110100 +001110101011 +000110000100 +101000110001 +101101110010 +011100001110 +111011010011 +011001110001 +110101100000 +110000010011 +010111101111 +101111101111 +010110100000 +111111011011 +100110000110 +011000111100 +110010111110 +001000001101 +011101011010 +001010110101 +100110001100 +101000000011 +110001010011 +100001011111 +000001101001 +100001101101 +011100100000 +011011000110 +001110111011 +100111100101 +001110000000 +110101001101 +101100101100 +001110000001 +110000011010 +101100110010 +011010100010 +111101111010 +110001111100 +011110101000 +110011011000 +110100000111 +100000000111 +101100101110 +011001000011 +011011100110 +101001000001 +001100100101 +011011110011 +110110001011 +000101011110 +010011110101 +110101001010 +111110101010 +110111010001 +010111001101 +001101011000 +011001011011 +011101000010 +101010111110 +010010000101 +100100010010 +110010000010 +000000001110 +100110011100 +000110100111 +000000011011 +111011010000 +100001111000 +000010010011 +110010000101 +011001101111 +010010000110 +101000110100 +010111010110 +011010110010 +001101110001 +001101000100 +001001101011 +010111110101 +100100110101 +000101011011 +110110000111 +000100110001 +111111110011 +111010110000 +000000110001 +010011101001 +111110011101 +101011100100 +001010100101 +010111111100 +010101100100 +011010000000 +010111111111 +111001100011 +111001011110 +010011111010 +001010101100 +110001100101 +011000011110 +001111010010 +010110001110 +011101011110 +101100011010 +000000001000 +000000000000 +100000011000 +101000001111 +101101010010 +001010110010 +101111001001 +111000000001 +010011001010 +110000000101 +101101101000 +110011110111 +111101010110 +111011011011 +100011101100 +101100011011 +000011010110 +111100111101 +110000100100 +001111110111 +011110011101 +010001010110 +101000001110 +101010101110 +010110000011 +100001100000 +000001000011 +110011100010 +000101000110 +010010110110 +100111100011 +000110100100 +110100101110 +001101100101 +110000100000 +110001100110 +110010000001 +010010011011 +101111001010 +101010010110 +001001001100 +011001110010 +111010100100 +000001000100 +010101101001 +101001100011 +010010100100 +010111001010 +101000000100 +011001010100 +101110000110 +011010000111 +101001110001 +111000011110 +010011000111 +111000100111 +010101010011 +010010101010 +011110011001 +110010011101 +110100001001 +011111001001 +011110100011 +100100001111 +000010100101 +110010010111 +111111000101 +000001010100 +001000011110 +011101001110 +111001100101 +111110011110 +000110111100 +110001001110 +011001010111 +101100011101 +010000001001 +100100011101 +101001101000 +100011110101 +100110101101 +000001111001 +011110010001 +001001011001 +110111100111 +100000010111 +011110010010 +000011110000 +111011110111 +101110110010 +000111010100 +010010101001 +000011010010 +101010001011 +111100101100 +111101101111 +101001011111 +101110001010 +010101011110 +101001001101 +100010111100 +011110111001 +110100111110 +001101000011 +000111100010 +100111110011 +010111011011 +101010111100 +100111111110 +001111001011 +000101110001 +001000001010 +010001101101 +101101001101 +111100010000 +011110000110 +100011101110 +111100001110 +101000100010 +101010100101 +110011010111 +110010101010 +110110111111 +010010110011 +000111110010 +111100110011 diff --git a/2021/day03_part1.py b/src/2021/day03_part1.py similarity index 100% rename from 2021/day03_part1.py rename to src/2021/day03_part1.py diff --git a/2021/day03_part2.py b/src/2021/day03_part2.py similarity index 100% rename from 2021/day03_part2.py rename to src/2021/day03_part2.py diff --git a/src/2021/day04_input.txt b/src/2021/day04_input.txt new file mode 100644 index 0000000..6f02da3 --- /dev/null +++ b/src/2021/day04_input.txt @@ -0,0 +1,601 @@ +31,50,79,59,39,53,58,95,92,55,40,97,81,22,69,26,6,23,3,29,83,48,18,75,47,49,62,45,35,34,1,88,54,16,56,77,28,94,52,15,0,87,93,90,60,67,68,85,80,51,20,96,61,66,63,91,8,99,70,13,71,17,7,38,44,43,5,25,72,2,57,33,82,78,89,21,30,11,73,84,4,46,14,19,12,10,42,32,64,98,9,74,86,27,24,65,37,41,76,36 + +31 5 70 8 88 +38 63 14 91 56 +22 67 17 47 74 +93 52 69 29 53 +33 66 64 19 73 + +35 63 17 48 77 +25 58 33 14 96 +32 87 90 66 70 +16 4 98 72 23 +19 74 39 29 59 + +40 29 44 17 27 +56 98 83 62 70 +25 91 20 60 84 +42 66 34 77 31 +16 8 6 50 28 + +13 6 58 39 74 + 3 15 69 5 23 +81 65 0 85 93 +72 7 60 42 52 +45 64 47 53 67 + +94 21 67 0 14 + 2 75 77 15 78 +38 25 49 99 92 +76 35 69 4 64 +42 96 86 84 70 + +46 7 74 65 80 +99 12 4 38 77 +30 90 78 94 21 +22 15 72 52 57 +11 67 59 3 9 + +18 17 63 53 96 +16 76 55 5 92 +33 82 60 51 8 +29 99 87 95 58 +88 15 75 61 21 + +10 24 79 28 90 +64 43 21 48 99 +45 85 80 71 94 +68 39 57 50 72 +47 60 3 62 49 + +82 92 58 16 89 +76 90 74 61 29 + 2 72 43 69 23 +84 38 0 4 55 + 5 64 49 78 94 + +79 60 28 45 95 +47 2 93 89 77 +56 18 54 97 33 +55 91 68 58 90 +87 37 88 35 10 + +42 76 25 15 38 + 6 34 33 88 30 +43 10 27 26 72 +78 66 62 14 37 + 1 65 95 54 5 + +14 0 46 72 75 +83 2 62 76 26 +65 85 19 18 95 +57 45 87 51 29 +32 37 61 34 43 + + 9 75 56 60 50 +53 81 41 55 11 +86 54 29 85 2 +92 6 97 46 84 + 5 0 70 3 82 + + 3 15 61 94 85 +62 7 12 10 45 +84 66 18 33 86 +91 19 11 22 39 +57 16 80 26 9 + + 1 69 46 98 61 +19 7 63 56 90 + 9 3 66 38 73 +40 49 72 0 94 +42 23 75 89 32 + +33 59 17 15 86 +62 96 84 2 18 +27 63 55 3 82 + 0 89 19 73 24 +56 93 12 87 41 + +31 56 33 3 9 +55 52 87 57 30 +44 89 6 5 65 +15 53 62 51 11 +61 35 13 4 46 + +15 84 95 88 65 +96 18 93 14 21 +49 40 46 1 30 +50 64 69 80 81 + 3 19 87 9 38 + +71 68 18 81 41 +95 26 45 24 25 +42 73 62 36 94 + 5 61 98 99 48 +31 55 8 1 88 + + 0 73 19 12 4 +72 22 27 59 48 +71 26 28 66 37 +54 87 8 2 65 +20 60 35 32 29 + +44 41 93 76 47 +24 33 15 14 61 +78 49 81 67 52 +74 73 54 23 66 +75 10 18 3 60 + +94 95 52 23 10 +55 14 35 44 56 + 0 49 50 60 79 +59 54 90 67 46 +17 81 4 37 58 + +38 29 8 79 77 +91 98 1 68 30 +86 13 95 46 61 +55 36 90 42 97 +69 7 0 93 27 + +82 5 67 40 3 +61 16 56 68 29 +55 20 13 15 0 +75 28 45 17 77 +86 85 10 2 26 + +98 73 72 43 17 +32 41 56 46 76 +85 7 31 69 91 +86 21 37 40 82 +33 57 15 39 30 + +83 18 90 75 29 +17 73 32 88 50 +51 99 5 23 22 +60 47 35 42 2 +37 86 82 14 30 + +17 47 7 54 0 +65 83 33 11 57 +85 16 27 75 61 +60 90 44 69 81 +71 73 38 46 28 + +57 79 76 91 99 +96 20 13 34 52 + 0 21 5 47 63 +60 62 55 29 71 +44 59 58 78 65 + +83 30 7 1 80 +90 2 11 41 92 + 3 27 33 10 78 +63 75 0 38 86 +96 76 87 67 6 + +63 19 42 56 12 +35 89 87 13 81 +21 23 4 16 11 +64 78 25 92 33 +41 10 66 68 99 + +56 76 37 18 41 +38 27 17 50 14 +60 23 0 6 1 + 9 8 30 93 44 +58 99 16 46 26 + +40 77 4 96 68 +55 21 30 24 76 +81 58 41 91 98 +56 46 20 78 0 +82 29 87 67 53 + +59 33 4 18 95 + 2 52 54 96 19 +46 72 3 43 81 +20 97 87 55 53 + 9 80 84 76 29 + + 2 25 44 64 46 +93 35 17 84 67 +14 48 21 73 90 +89 62 53 54 52 +38 59 69 45 50 + +71 96 56 57 72 +47 39 25 15 90 +29 65 44 3 83 +36 30 92 59 95 +97 86 48 74 94 + +51 91 75 25 28 +72 56 9 21 93 +88 32 58 24 37 +82 48 95 53 23 +68 20 43 84 69 + +68 75 33 39 96 + 0 65 45 27 53 +36 71 2 91 97 +10 82 44 41 7 +11 42 17 26 14 + +61 36 56 6 64 +72 10 62 77 21 +99 73 37 38 25 +60 7 44 43 14 +81 59 29 19 92 + +63 49 13 31 56 +59 76 62 83 44 +69 24 57 40 91 +20 41 2 55 9 +50 60 46 15 52 + +87 90 97 53 23 +85 67 7 71 98 + 1 22 48 82 69 +15 21 17 91 80 +99 57 28 94 79 + +24 25 44 95 99 +55 97 9 18 27 +71 37 13 52 39 +30 3 79 14 28 +81 62 98 22 31 + +49 90 17 65 4 +59 42 15 14 54 +91 55 67 58 8 +13 61 79 32 99 +92 28 16 72 20 + +73 47 39 94 45 +93 53 95 71 27 +66 40 65 37 58 +15 61 63 50 55 +57 8 99 90 85 + + 6 45 79 9 14 +82 12 42 38 15 +31 71 48 5 96 +35 81 25 63 19 + 2 90 64 22 33 + +62 56 60 29 63 +47 33 75 77 76 +86 7 90 34 46 +85 3 0 16 65 +71 44 11 40 52 + +18 19 73 67 64 +66 85 37 10 51 +62 46 11 40 35 +83 69 57 1 78 +81 48 36 6 22 + +99 0 41 81 52 +68 31 27 30 5 +12 62 54 43 50 +58 36 10 55 86 +61 69 97 22 49 + +59 18 91 86 90 +87 20 57 61 42 +15 99 31 32 73 +23 89 64 96 49 +79 47 97 19 51 + +17 46 19 20 58 +67 29 4 8 22 +52 18 13 34 70 +82 73 71 95 47 +35 28 33 42 62 + +15 16 78 99 74 +61 81 84 72 69 +12 11 17 62 94 +76 63 96 42 98 +89 64 10 32 18 + +18 21 63 89 14 +95 5 79 19 11 +29 82 77 59 90 +13 3 31 46 45 +80 37 97 78 61 + +75 9 94 11 80 +93 27 10 2 82 +89 32 64 52 60 +42 56 23 20 18 +70 78 45 76 40 + +16 98 0 94 73 +28 13 48 90 11 +30 43 20 9 78 +14 39 89 4 6 +15 63 91 45 37 + +41 55 44 2 39 +38 14 19 72 64 +75 95 35 6 47 +70 7 1 29 86 +83 79 90 96 82 + +32 29 42 60 3 +85 93 16 41 35 +11 90 46 13 58 +26 19 79 30 86 +72 56 63 18 95 + +25 71 26 35 59 +80 21 11 24 87 +48 29 64 66 34 +74 83 84 60 57 +44 30 95 20 32 + +29 60 31 2 7 +51 78 32 45 14 +70 6 59 33 81 +16 26 11 38 88 +49 74 39 46 3 + +58 91 95 21 47 +61 52 30 2 96 +83 19 89 9 1 +41 64 28 23 11 +62 55 43 60 53 + +81 15 33 4 19 +51 97 88 70 13 +76 38 58 28 82 +67 3 6 22 47 +57 41 53 31 79 + +29 42 12 64 86 +23 0 14 28 82 +99 63 79 9 17 +75 73 3 45 1 +93 52 43 54 76 + +15 70 19 3 44 +47 60 46 93 59 +16 87 41 30 68 +88 9 26 45 43 +28 49 73 98 78 + +57 30 65 22 25 +99 21 36 47 11 +70 83 31 73 16 +61 77 94 93 23 +91 26 13 87 63 + +13 58 63 4 82 + 5 89 11 39 51 +12 43 75 97 8 +15 56 21 0 74 +23 66 62 70 44 + +37 25 82 80 86 +58 89 30 91 38 +75 40 87 50 67 +78 4 55 0 39 +54 64 52 96 45 + +61 57 42 74 26 +88 48 8 13 70 +81 69 7 97 10 +16 23 18 55 36 +11 46 68 39 27 + +37 85 59 41 2 + 3 29 91 87 84 +65 18 70 78 12 + 9 80 97 19 24 + 1 75 58 13 92 + +62 8 80 34 86 +72 6 40 57 3 +85 82 48 84 37 +79 29 70 21 96 +41 5 33 32 94 + +58 21 50 7 72 +34 71 93 35 90 +77 43 79 55 88 +57 12 45 95 70 +38 9 29 37 52 + +57 26 2 22 98 +87 4 53 17 97 +75 25 70 62 93 + 3 9 86 33 28 +58 50 72 27 5 + +16 15 71 64 94 +37 56 84 32 7 +54 99 73 20 8 +60 19 22 70 27 +69 83 79 48 77 + +94 38 0 31 19 +43 58 22 93 84 + 2 88 56 13 50 +90 68 46 95 47 +32 59 89 42 69 + +94 60 26 63 86 +21 64 81 47 71 +36 32 93 20 67 +16 10 68 39 74 +75 99 82 27 18 + +24 31 35 82 18 +49 16 98 90 26 + 8 64 25 87 92 +54 76 2 22 15 + 7 50 44 94 68 + + 1 31 72 28 18 +76 93 20 4 16 +35 54 49 30 10 +59 32 53 62 84 +99 52 92 75 25 + + 1 75 51 22 90 +61 83 58 63 28 + 9 5 85 43 92 +69 8 62 93 48 +84 31 21 82 78 + +99 6 70 73 75 +65 53 29 31 16 +78 61 37 90 7 +54 64 20 35 4 +97 44 1 10 3 + +73 50 53 24 49 +15 56 94 82 39 +31 40 65 79 44 +92 70 57 95 30 +21 74 55 3 64 + +44 42 78 31 37 +33 69 71 24 81 +12 7 23 8 30 +10 9 11 68 29 +93 28 94 63 87 + +87 53 75 85 0 +34 52 37 49 28 +11 72 2 86 62 +66 17 61 46 45 +13 96 18 99 29 + +50 76 71 10 92 + 4 99 46 39 86 +23 94 12 73 40 + 5 70 96 43 51 +55 61 67 18 15 + +51 88 97 58 33 +36 12 90 53 85 +86 5 42 6 2 +95 57 19 34 17 +26 1 77 78 20 + +61 17 79 97 10 +29 65 21 55 63 +19 88 74 62 6 +73 76 89 33 31 +50 30 12 22 39 + +18 94 15 17 26 +69 37 91 30 85 +13 67 25 84 58 +95 90 27 82 33 +20 56 62 4 65 + +58 19 17 83 89 +14 82 48 36 97 + 5 46 20 50 57 +60 92 52 85 9 +95 34 31 53 73 + +89 47 3 15 21 + 2 10 59 76 36 + 5 24 14 30 72 +37 77 57 48 91 +16 9 73 94 26 + +62 1 32 85 9 +13 52 75 34 84 +93 24 95 51 90 +86 35 22 72 38 + 0 46 96 88 7 + +67 80 84 34 4 +39 11 37 47 82 +29 63 57 86 77 +78 64 5 32 96 +38 69 55 87 50 + +91 26 89 87 54 +51 43 22 68 21 +74 62 88 38 53 +28 92 4 39 40 +96 97 73 72 29 + +40 83 35 5 91 +41 45 57 94 60 +61 31 59 47 95 +81 89 69 25 33 + 3 36 15 93 27 + +19 49 37 14 48 +96 55 43 6 12 +22 21 50 47 75 +78 40 51 91 63 +59 87 28 93 86 + +86 44 3 54 17 +71 82 70 88 49 +14 43 63 76 15 +78 81 61 22 46 +84 65 9 29 83 + +15 28 5 45 29 +12 19 64 93 48 +83 40 7 99 74 +20 30 85 67 58 +22 21 59 76 18 + +42 1 46 8 62 +69 27 67 68 38 +88 35 83 14 84 +53 85 82 29 59 +61 73 39 74 99 + +38 32 50 9 74 +75 66 63 3 62 +68 15 17 98 6 +81 29 52 88 21 +58 2 87 96 56 + +49 12 26 89 98 +92 69 90 50 35 +74 40 0 87 48 +19 47 65 42 31 +17 3 33 28 85 + +47 64 43 73 81 +32 49 65 42 24 +95 93 36 78 62 +34 96 79 10 4 +39 54 15 17 51 + +53 32 41 16 95 +54 47 56 69 17 +31 0 42 66 13 +88 9 43 38 79 +21 8 19 98 92 + +78 43 38 75 14 +36 62 64 45 53 +31 96 16 46 44 +93 11 57 56 65 +27 3 73 74 68 + +66 23 39 13 58 +40 85 68 50 57 +97 37 77 28 83 +48 29 51 84 91 +95 1 70 78 56 + +51 74 68 89 91 +49 54 8 83 36 +86 65 99 28 47 +82 57 32 81 58 +13 66 3 94 67 diff --git a/2021/day04_part1.py b/src/2021/day04_part1.py similarity index 100% rename from 2021/day04_part1.py rename to src/2021/day04_part1.py diff --git a/2021/day04_part2.py b/src/2021/day04_part2.py similarity index 100% rename from 2021/day04_part2.py rename to src/2021/day04_part2.py diff --git a/src/2021/day05_input.txt b/src/2021/day05_input.txt new file mode 100644 index 0000000..060fda6 --- /dev/null +++ b/src/2021/day05_input.txt @@ -0,0 +1,500 @@ +905,103 -> 905,82 +253,13 -> 253,546 +578,60 -> 900,60 +102,71 -> 535,71 +678,419 -> 678,363 +366,938 -> 366,136 +15,299 -> 149,165 +445,99 -> 464,80 +519,262 -> 814,262 +687,609 -> 687,219 +528,128 -> 398,128 +704,363 -> 49,363 +335,157 -> 335,715 +536,120 -> 215,441 +494,587 -> 494,764 +15,672 -> 15,835 +748,346 -> 748,471 +231,395 -> 89,395 +922,989 -> 18,85 +787,828 -> 453,828 +117,186 -> 729,798 +647,201 -> 439,201 +368,399 -> 261,399 +337,294 -> 301,294 +20,660 -> 396,660 +658,383 -> 658,445 +284,225 -> 284,202 +89,582 -> 89,468 +517,582 -> 400,582 +168,167 -> 168,473 +697,682 -> 408,393 +528,198 -> 528,245 +189,171 -> 785,767 +679,598 -> 965,598 +149,560 -> 187,560 +778,734 -> 406,734 +626,959 -> 626,330 +392,479 -> 392,461 +70,705 -> 70,498 +462,132 -> 380,50 +776,690 -> 776,413 +710,894 -> 153,894 +484,532 -> 706,754 +72,148 -> 72,120 +441,81 -> 576,81 +367,959 -> 367,199 +217,706 -> 217,471 +715,418 -> 963,170 +26,126 -> 26,659 +750,126 -> 589,126 +404,257 -> 404,136 +809,148 -> 848,148 +647,205 -> 572,205 +977,67 -> 223,821 +846,299 -> 846,444 +575,946 -> 575,742 +216,853 -> 969,853 +120,600 -> 120,351 +105,565 -> 100,565 +184,781 -> 747,781 +133,727 -> 662,198 +273,388 -> 273,828 +472,324 -> 539,324 +497,889 -> 497,249 +56,145 -> 655,145 +883,99 -> 986,99 +391,607 -> 503,719 +321,835 -> 865,291 +847,436 -> 754,343 +381,105 -> 381,648 +100,101 -> 120,101 +67,324 -> 724,981 +68,618 -> 316,370 +202,807 -> 202,382 +751,318 -> 689,318 +95,811 -> 95,695 +644,293 -> 644,487 +715,331 -> 309,737 +62,954 -> 62,605 +25,37 -> 962,974 +642,201 -> 178,201 +102,74 -> 102,764 +752,127 -> 435,444 +533,875 -> 808,600 +984,389 -> 984,551 +420,329 -> 420,705 +682,965 -> 319,602 +140,416 -> 671,416 +11,14 -> 984,987 +833,846 -> 833,217 +414,434 -> 19,829 +138,384 -> 138,80 +535,61 -> 208,388 +900,303 -> 170,303 +24,980 -> 984,20 +477,794 -> 74,391 +496,101 -> 462,101 +981,848 -> 981,244 +721,974 -> 721,911 +887,135 -> 696,135 +865,641 -> 865,359 +194,19 -> 920,745 +520,227 -> 704,227 +644,755 -> 830,755 +737,799 -> 56,118 +259,79 -> 249,79 +970,152 -> 970,545 +396,389 -> 396,971 +383,904 -> 510,777 +199,960 -> 989,170 +376,55 -> 376,427 +615,566 -> 272,223 +266,343 -> 334,275 +842,295 -> 935,295 +450,175 -> 240,175 +179,842 -> 977,842 +170,719 -> 708,181 +172,745 -> 128,701 +180,329 -> 180,336 +471,762 -> 989,762 +524,889 -> 807,606 +255,806 -> 255,937 +819,869 -> 819,714 +695,339 -> 528,339 +65,925 -> 786,204 +814,227 -> 159,882 +799,73 -> 959,73 +163,177 -> 163,468 +167,600 -> 167,347 +742,24 -> 64,24 +448,91 -> 499,91 +134,602 -> 426,310 +468,314 -> 107,314 +175,712 -> 872,15 +398,225 -> 398,502 +960,64 -> 960,406 +54,514 -> 54,914 +626,836 -> 626,398 +599,544 -> 344,289 +746,635 -> 547,834 +107,747 -> 824,30 +347,15 -> 178,15 +204,532 -> 621,115 +850,523 -> 850,235 +986,932 -> 986,600 +891,150 -> 891,182 +769,783 -> 769,540 +148,269 -> 805,269 +127,67 -> 957,897 +851,411 -> 396,411 +619,913 -> 435,913 +210,808 -> 763,255 +548,140 -> 896,140 +495,420 -> 495,510 +332,967 -> 332,412 +539,613 -> 317,613 +426,765 -> 426,123 +980,18 -> 14,984 +921,551 -> 921,923 +764,88 -> 41,811 +959,702 -> 959,229 +171,473 -> 171,401 +588,769 -> 373,769 +599,695 -> 18,695 +878,126 -> 108,896 +852,141 -> 592,141 +401,268 -> 213,268 +227,988 -> 88,988 +794,124 -> 704,124 +276,914 -> 429,914 +330,884 -> 330,816 +841,591 -> 628,591 +356,325 -> 356,149 +718,478 -> 722,478 +570,802 -> 303,802 +697,782 -> 148,233 +279,662 -> 279,608 +460,752 -> 988,752 +108,951 -> 837,222 +509,371 -> 509,952 +35,190 -> 90,135 +684,391 -> 460,391 +493,153 -> 296,153 +989,744 -> 989,811 +962,22 -> 214,770 +122,511 -> 44,511 +761,860 -> 378,860 +663,599 -> 30,599 +963,826 -> 177,40 +921,136 -> 745,136 +424,688 -> 131,688 +284,299 -> 284,853 +73,205 -> 73,864 +152,747 -> 141,736 +283,305 -> 283,19 +535,537 -> 483,537 +749,200 -> 749,395 +259,666 -> 199,606 +571,288 -> 872,589 +748,503 -> 254,503 +903,865 -> 501,463 +641,712 -> 807,712 +334,432 -> 334,388 +394,442 -> 936,984 +661,183 -> 275,183 +346,842 -> 88,842 +503,570 -> 503,745 +825,388 -> 763,326 +948,575 -> 948,927 +708,761 -> 708,15 +96,545 -> 851,545 +874,71 -> 874,986 +908,355 -> 552,355 +296,596 -> 487,596 +78,877 -> 918,37 +934,969 -> 15,50 +798,667 -> 333,667 +111,974 -> 391,974 +687,514 -> 255,514 +261,751 -> 261,774 +637,144 -> 637,212 +268,710 -> 268,705 +737,246 -> 682,246 +961,143 -> 140,964 +294,911 -> 187,911 +372,495 -> 764,495 +794,567 -> 120,567 +935,681 -> 479,681 +68,53 -> 989,974 +395,550 -> 664,550 +190,885 -> 291,885 +897,667 -> 897,789 +826,922 -> 47,143 +468,378 -> 793,378 +580,802 -> 164,802 +492,321 -> 39,774 +602,421 -> 252,71 +79,749 -> 721,749 +826,196 -> 826,728 +564,632 -> 564,137 +594,747 -> 594,412 +964,735 -> 987,758 +388,630 -> 815,203 +666,892 -> 666,279 +980,767 -> 980,370 +607,459 -> 110,956 +680,875 -> 680,65 +970,893 -> 133,56 +339,254 -> 339,893 +347,602 -> 888,61 +435,946 -> 379,946 +812,855 -> 812,415 +814,385 -> 814,661 +721,765 -> 721,181 +176,468 -> 176,379 +550,947 -> 456,947 +53,813 -> 838,28 +29,24 -> 973,968 +654,807 -> 380,807 +950,266 -> 950,339 +959,429 -> 959,54 +35,20 -> 35,922 +11,10 -> 988,987 +409,554 -> 390,554 +862,235 -> 116,981 +716,11 -> 617,11 +472,382 -> 472,441 +798,549 -> 402,549 +29,724 -> 29,35 +333,531 -> 488,531 +196,334 -> 196,166 +82,394 -> 706,394 +314,751 -> 314,748 +657,111 -> 657,900 +833,382 -> 833,813 +352,479 -> 352,46 +608,449 -> 608,853 +687,727 -> 641,681 +392,828 -> 307,828 +208,244 -> 775,244 +922,286 -> 89,286 +762,736 -> 83,736 +143,57 -> 913,827 +787,933 -> 787,42 +209,692 -> 447,692 +99,891 -> 765,225 +55,735 -> 55,909 +898,75 -> 81,892 +121,685 -> 158,722 +415,461 -> 415,374 +158,898 -> 730,326 +186,988 -> 186,609 +924,913 -> 924,646 +35,899 -> 124,899 +495,259 -> 201,259 +914,828 -> 914,716 +368,78 -> 734,444 +735,97 -> 42,790 +972,895 -> 447,895 +197,834 -> 320,834 +799,165 -> 14,950 +348,556 -> 562,556 +71,23 -> 984,936 +974,871 -> 729,871 +706,378 -> 817,378 +885,287 -> 467,287 +741,691 -> 61,11 +227,632 -> 531,328 +716,795 -> 160,239 +327,261 -> 855,789 +100,263 -> 582,745 +729,72 -> 73,72 +853,546 -> 853,802 +399,472 -> 106,765 +787,848 -> 619,848 +866,150 -> 127,889 +862,48 -> 34,876 +579,257 -> 579,601 +685,633 -> 227,175 +670,161 -> 396,161 +156,694 -> 785,65 +232,384 -> 232,327 +544,83 -> 307,83 +98,273 -> 442,273 +34,975 -> 988,21 +739,802 -> 739,264 +409,402 -> 466,402 +700,95 -> 677,95 +989,14 -> 16,987 +921,989 -> 152,220 +857,821 -> 78,42 +335,114 -> 467,114 +17,50 -> 904,937 +757,372 -> 698,372 +42,28 -> 600,586 +867,617 -> 516,617 +909,281 -> 909,178 +254,879 -> 685,879 +133,353 -> 696,353 +430,146 -> 441,135 +720,657 -> 720,909 +389,462 -> 780,71 +945,152 -> 657,440 +364,570 -> 364,336 +268,67 -> 254,67 +171,951 -> 895,227 +706,332 -> 706,380 +265,703 -> 517,703 +542,421 -> 542,534 +900,67 -> 752,215 +307,205 -> 307,321 +319,111 -> 319,793 +158,419 -> 499,78 +32,148 -> 372,148 +375,937 -> 375,241 +757,928 -> 757,724 +508,638 -> 508,747 +68,655 -> 68,24 +209,949 -> 209,782 +193,359 -> 193,258 +580,542 -> 799,542 +556,326 -> 556,533 +984,930 -> 98,44 +771,447 -> 158,447 +951,544 -> 951,469 +100,148 -> 880,928 +342,800 -> 688,800 +381,839 -> 381,662 +510,340 -> 499,340 +114,864 -> 958,20 +131,357 -> 131,913 +306,877 -> 336,877 +195,755 -> 892,58 +63,936 -> 878,121 +144,505 -> 144,945 +769,25 -> 314,25 +94,831 -> 198,831 +121,818 -> 127,818 +228,982 -> 228,788 +139,730 -> 770,99 +43,973 -> 953,63 +837,435 -> 498,774 +168,803 -> 918,53 +512,346 -> 512,255 +174,149 -> 986,961 +436,66 -> 436,639 +704,707 -> 704,259 +161,101 -> 161,415 +482,254 -> 42,694 +39,843 -> 811,71 +628,555 -> 541,555 +192,274 -> 196,274 +736,140 -> 606,270 +910,203 -> 598,515 +354,785 -> 354,294 +264,663 -> 155,663 +139,193 -> 139,792 +212,48 -> 948,784 +696,252 -> 68,880 +908,29 -> 114,823 +515,23 -> 515,504 +977,746 -> 977,691 +837,714 -> 773,714 +462,921 -> 462,294 +395,630 -> 931,94 +336,318 -> 45,609 +917,288 -> 917,534 +78,590 -> 543,590 +416,555 -> 416,461 +272,141 -> 441,141 +883,813 -> 892,822 +45,90 -> 892,937 +890,16 -> 146,760 +506,765 -> 555,716 +313,818 -> 313,649 +867,668 -> 777,668 +804,484 -> 804,821 +374,895 -> 374,50 +173,980 -> 173,796 +74,45 -> 336,307 +316,922 -> 866,922 +187,896 -> 265,974 +790,160 -> 790,290 +753,907 -> 753,445 +70,718 -> 168,620 +565,672 -> 599,672 +563,87 -> 790,87 +947,635 -> 843,739 +712,556 -> 712,313 +928,138 -> 928,781 +677,720 -> 677,982 +420,131 -> 804,515 +980,416 -> 314,416 +790,221 -> 790,866 +289,680 -> 289,343 +968,591 -> 973,591 +289,265 -> 289,985 +448,194 -> 448,185 +424,457 -> 372,405 +92,825 -> 355,825 +108,89 -> 434,89 +785,155 -> 785,769 +829,916 -> 829,879 +983,159 -> 983,799 +467,357 -> 467,13 +552,461 -> 60,461 +315,339 -> 490,164 +33,14 -> 978,959 +769,414 -> 879,414 +546,739 -> 200,739 +389,874 -> 389,456 +88,372 -> 779,372 +327,491 -> 801,491 +130,922 -> 586,466 +949,106 -> 113,942 +335,257 -> 338,257 +339,695 -> 621,977 +819,222 -> 819,963 +744,214 -> 744,158 +190,630 -> 866,630 +313,268 -> 313,485 +158,696 -> 696,696 +957,24 -> 460,521 +336,795 -> 336,161 +456,297 -> 619,297 +781,247 -> 781,980 +336,508 -> 962,508 +799,185 -> 799,593 +63,180 -> 508,180 +281,389 -> 320,389 +703,585 -> 816,698 +151,758 -> 151,399 +108,283 -> 156,331 +988,986 -> 18,16 +219,467 -> 704,467 +614,909 -> 614,22 +907,327 -> 410,824 +869,628 -> 791,628 +141,937 -> 161,937 +139,866 -> 139,448 +789,45 -> 78,45 +852,395 -> 187,395 +115,147 -> 956,988 +702,274 -> 702,741 +760,547 -> 760,324 +749,18 -> 749,726 +974,891 -> 108,25 +67,646 -> 67,432 +901,63 -> 61,903 +929,77 -> 36,970 +136,639 -> 382,639 +292,687 -> 642,687 +242,514 -> 698,58 +613,261 -> 226,261 +26,287 -> 430,287 +640,713 -> 327,713 +488,108 -> 488,484 +257,183 -> 257,514 +851,115 -> 139,115 +193,375 -> 673,855 diff --git a/2021/day05_part1.py b/src/2021/day05_part1.py similarity index 100% rename from 2021/day05_part1.py rename to src/2021/day05_part1.py diff --git a/2021/day05_part2.py b/src/2021/day05_part2.py similarity index 100% rename from 2021/day05_part2.py rename to src/2021/day05_part2.py diff --git a/src/2021/day06_input.txt b/src/2021/day06_input.txt new file mode 100644 index 0000000..2892462 --- /dev/null +++ b/src/2021/day06_input.txt @@ -0,0 +1 @@ +1,3,3,4,5,1,1,1,1,1,1,2,1,4,1,1,1,5,2,2,4,3,1,1,2,5,4,2,2,3,1,2,3,2,1,1,4,4,2,4,4,1,2,4,3,3,3,1,1,3,4,5,2,5,1,2,5,1,1,1,3,2,3,3,1,4,1,1,4,1,4,1,1,1,1,5,4,2,1,2,2,5,5,1,1,1,1,2,1,1,1,1,3,2,3,1,4,3,1,1,3,1,1,1,1,3,3,4,5,1,1,5,4,4,4,4,2,5,1,1,2,5,1,3,4,4,1,4,1,5,5,2,4,5,1,1,3,1,3,1,4,1,3,1,2,2,1,5,1,5,1,3,1,3,1,4,1,4,5,1,4,5,1,1,5,2,2,4,5,1,3,2,4,2,1,1,1,2,1,2,1,3,4,4,2,2,4,2,1,4,1,3,1,3,5,3,1,1,2,2,1,5,2,1,1,1,1,1,5,4,3,5,3,3,1,5,5,4,4,2,1,1,1,2,5,3,3,2,1,1,1,5,5,3,1,4,4,2,4,2,1,1,1,5,1,2,4,1,3,4,4,2,1,4,2,1,3,4,3,3,2,3,1,5,3,1,1,5,1,2,2,4,4,1,2,3,1,2,1,1,2,1,1,1,2,3,5,5,1,2,3,1,3,5,4,2,1,3,3,4 diff --git a/2021/day06_part1.py b/src/2021/day06_part1.py similarity index 100% rename from 2021/day06_part1.py rename to src/2021/day06_part1.py diff --git a/2021/day06_part2.py b/src/2021/day06_part2.py similarity index 100% rename from 2021/day06_part2.py rename to src/2021/day06_part2.py diff --git a/src/2021/day07_input.txt b/src/2021/day07_input.txt new file mode 100644 index 0000000..4101e63 --- /dev/null +++ b/src/2021/day07_input.txt @@ -0,0 +1 @@ +1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,88,86,21,110,697,179,570,202,519,715,1358,89,1133,31,22,244,1539,1133,675,944,427,811,129,35,19,862,680,142,148,672,925,73,549,229,1391,291,234,1422,70,1028,401,571,134,340,1164,19,61,940,498,395,136,1424,436,1001,579,382,775,688,7,771,263,1230,3,39,684,156,7,728,201,1228,1323,560,1697,65,62,424,753,527,98,61,396,566,236,330,1059,1038,362,363,709,95,70,5,211,374,76,1514,390,700,155,760,537,500,282,280,267,507,28,261,537,55,382,551,1011,1150,92,7,746,224,425,118,1621,1030,493,417,95,333,57,260,374,188,63,24,18,693,138,1136,62,6,358,242,999,75,1865,1467,463,100,1069,438,1215,244,245,485,90,317,793,66,709,104,78,354,529,422,318,742,908,1124,453,23,94,552,661,94,106,1200,227,653,19,1547,374,77,231,388,403,0,223,465,726,202,352,34,1059,524,531,163,1221,1215,967,192,64,1027,187,364,478,240,17,684,417,1037,1205,491,521,803,1811,363,261,511,50,613,836,3,815,302,137,17,1235,377,158,426,1208,1137,1276,728,27,133,263,116,109,163,1041,606,200,1939,272,240,806,469,923,1108,65,181,604,266,1527,323,410,15,238,539,40,515,93,296,204,1645,131,233,550,27,378,945,7,376,1621,219,692,1077,220,155,1321,269,396,127,291,206,387,1510,66,28,507,525,1331,235,471,643,1958,179,190,217,206,315,255,591,586,898,857,487,114,65,482,297,325,1234,495,175,712,1401,532,31,303,1543,820,850,1026,1364,434,1187,116,712,301,142,755,156,371,655,512,341,691,598,314,191,94,39,103,302,145,1297,236,947,288,6,107,325,505,334,1113,1430,837,289,552,140,585,68,242,953,561,1283,1148,783,11,33,126,361,700,1350,1101,87,286,19,859,376,5,349,95,1097,333,450,586,76,1088,35,674,575,372,173,360,349,230,1856,762,1263,57,894,314,45,147,372,581,739,26,346,421,821,785,720,33,367,39,198,1389,578,338,267,1397,737,2,465,22,362,223,276,571,406,1471,391,232,2,4,624,299,49,871,789,1143,33,656,49,34,467,301,737,42,398,1326,316,164,598,842,224,275,223,977,49,24,115,68,588,770,930,624,122,468,173,1308,1327,11,30,246,171,1774,18,361,1594,292,33,5,788,556,573,740,751,1282,4,1003,888,399,243,687,688,31,1136,474,6,138,640,174,1041,195,1148,564,471,1327,147,184,1226,466,419,446,59,67,457,1508,272,643,713,64,241,96,171,34,270,1274,1015,11,669,94,110,495,127,735,11,807,1238,257,286,529,302,554,375,366,4,105,318,781,280,39,315,499,27,254,349,324,90,161,632,413,192,242,1454,755,338,170,39,12,329,680,690,573,495,6,68,308,509,275,523,182,1443,340,289,1339,982,970,502,163,563,454,423,1513,633,835,1027,1017,1359,873,162,1334,710,412,319,35,190,24,155,189,633,422,109,1212,53,156,703,643,12,808,755,946,318,899,1672,191,85,149,33,650,1604,512,640,322,456,862,225,857,281,832,110,1399,1250,144,812,117,231,1433,647,293,845,501,516,1611,700,609,1649,1084,908,31,84,525,815,668,1331,19,830,733,276,545,1436,5,343,341,184,917,24,65,1604,0,21,54,302,732,34,5,1265,82,821,828,789,431,208,1024,810,1287,598,893,1858,410,385,71,186,553,480,87,160,185,88,19,231,452,351,22,37,993,608,54,276,594,885,128,218,123,350,214,216,939,74,892,129,965,492,111,391,236,153,389,1544,622,1229,751,1752,74,77,833,374,271,284,532,89,55,112,105,517,783,558,269,61,128,78,252,1208,982,1010,846,246,703,413,703,83,1128,499,501,1633,1088,506,281,106,186,62,860,855,1003,358,831,136,1239,426,327,341,1286,520,1281,27,1061,854,605,437,80,663,1229,803,49,363,1476,1299,60,97,681,421,1196,134,50,373,994,950,1115,335,13,330,105,188,873,500,1599,178,1392,1284,150,673,290,1064,545,272,650,561,602,31,305,1000,202,1306,990,701,949,289,190,145,110,143,906,778,392,609,697,533,390,162,715,425,1249,154,1260,3,801,205,1163,169,11,935,0,217,4,579,1,98,646,472,969,213,58,970,202,777,1177,648,801,31,51,91,192,396,783,65,371,51,520,144,633,136,10,681,126,49,50,438,501,814,80,19,665,104,258,421,274,588,73,433,79,797,608,307,841,595,1022,48,274,72,628,1119,195 diff --git a/2021/day07_part1.py b/src/2021/day07_part1.py similarity index 100% rename from 2021/day07_part1.py rename to src/2021/day07_part1.py diff --git a/2021/day07_part2.py b/src/2021/day07_part2.py similarity index 100% rename from 2021/day07_part2.py rename to src/2021/day07_part2.py diff --git a/src/2021/day08_input.txt b/src/2021/day08_input.txt new file mode 100644 index 0000000..59b6c17 --- /dev/null +++ b/src/2021/day08_input.txt @@ -0,0 +1,200 @@ +gfbd geadcb gaefc agdcf cdgfba dcf abdefc cadbg agfecbd df | acgbd dafcg fd df +fdcbge dgfeca eagcd cdb bfcag acdebg dcagb ebgdfca abde db | bd dcb agdcb fbegdc +gdabcf gcfdae dagecb acfdgbe fabge fcbd cb adfgc acfgb bca | dagbcef fedgac fcadegb bca +febag gefbc acfegbd fdega ba adbe fecdga ebagfd gcbfad gba | ebda gabfced baed bfgec +afebg bgaedfc degfa bga fdgbea deafcg ab gcbfe dgcbae bfad | dfgae ba faged agefcdb +dfgebc cfdgbea adc ad fdcba acgbf fdae degcba efcabd decbf | feda ad decbga cdgefb +afce aegdbfc bdgeca def ef ecafgd gedca cdegf cbfgd afegbd | dcaegbf ef acfebgd bedgfa +fcgeb gabefdc cgda fdc gdfbae deacfb fcaegd fedga dc gecdf | fdc cdafbe dc cd +be acgfdbe bceaf facedg dafebg acfegb cegaf bfe bceg fbdac | fbe abfcdeg cadbf ebacf +egbfd da bdca edgab gcbea dga eabcgf dcgbea afgcde dfabegc | ad ceafdg da gad +cfdabge bfdac dacfeb gcedbf fbdgac gbd gd acdg dgafb bgafe | dbg dbg fdacb cbdaf +fbdeacg faegcd cdfgba geafc bga afebg ab acfbeg baec ebfgd | ba agb baec ab +gafd bcaef fg gaefb gcadbe agdbe egdbfc gebfad bfg gfdecba | fdaebg abdcfeg fgb faebcgd +efgdc caefg fga gecba cadgbe facgbd aebf fcaegdb fa agcbfe | af gbdfac bgdecaf af +gdfe afdec fd edfacgb agcbef cefga adcbgf fda acdeb edcfag | bcdfga agcfed cfdgba fdecag +cfgbdea dcaebf cdg ebdfgc gd ecdfga bcefd agfbc gbde fgdbc | cefdb cfagde gd dfceag +ecfad cdafg ced febad ebgacdf dfebcg badfeg ec abce beacfd | gefbdc bgfaecd abgcdfe degacfb +deg agcd dg cfead febgc cbfgaed ebfacd faegdc gfdce fdgbea | dg gde fbcge aecdgf +aed ae gdcae efbadc fcebgd gdcbfea cgbeda abeg dgacf cgbed | ae ae agbe gcbed +ebaf cbged ae bgadf efagdb edgab ade bgdfaec dgbfac gefadc | dbgce adbegcf abfgcd ae +bgfca dfgcbe bgdeca gfdbea efdgbca fd cfbdg fced fdb egbcd | ebgcda dbf gcbaf dcgfb +fgeacb dae dcegab debfac gabdf fecd ebadf fgbeacd de baecf | cbgaedf faecdgb cgdafeb ade +gafdcbe fce defagc caeg adbegf cfbgd gfdec fedga decabf ec | ec acfbgde acgbdfe befadgc +acdgfb cafgd dgcba cb cab gfdcbea bcfg fgcdae bgade fdabec | bc deacgf bac cfgb +dafcg dcbega gdbcfe dgfcb bf gfcabe fbed gbf begdcaf gdcbe | bdeagc fb dbfe fbg +gaedfc cdfbg efbcd fed acbed dgbcae bfae ef befcdag abcdfe | fgebdca fecdb fed fedbgac +df cedf gfcdb badgfe ecbadfg fdb ebdcgf gbdca cbfage febcg | fcebg gbacd fd fd +dbfce faebd dgefba cfgbe dcab acbdfge adfceg dc cfd fadbce | bacd cedfagb acdb fdabe +fedbcg adcegb dgbec gabfc dafgecb eadbfc bfd fedg gbfdc df | fged fbdcae dcbfg efdg +eafcdb acgf ecgfd dfgbe gec bdeacg dfegcab cg dfcaeg eadcf | dbfeg gc fdeac ecg +agbcedf cafbeg gdabf fagcd afegc cdeg dfc dc cefadg dfebca | dc cd dfc afbcedg +cfadbge ag bdfea cegdbf cefgda afcegb fag afdeg gcdfe gcad | ga dfgcae dagcef agcd +cdf abfdc afcgbd fd ecbgafd gfda cbfage adecb gcdbfe gafcb | cafgb aecdfgb dfgbcea gafd +bcgeadf bacgde dca da fedgac dfgec cfgdeb fedca gfda cfbea | fegcbd bgdface dca geacbdf +bedcg ageb gde dacegb acgfed bcedf agbdc cfgdba ge begdfac | efbdcga dbacge acbgd egba +de ced gcabdfe dgacef egdf gaecf cgbeda dbcaf facde gbface | gfed cbedag abefdcg gecbafd +gfbc ecbfdga dbcae cafegd cfa cf fbadg bgadef dfbac fcgadb | eagbdf dafcbg cf fgdab +bcedaf cgbdfa dgafeb ca bfacged bagdf egdcf agcb gdfca cda | debgfa cad agfedb acd +fe eagdcb efcdab bef fcabe agcbf cbefadg gbfced cbdae aefd | fe dacbfge bgfac fe +adfgb eagbfc gbdea fbgead abced egfd dcgfeab dfgcba eg eag | gdefabc aebcd ge cdfgabe +gbfad abecdg bedafc cfa ecfd dbcaf cafebg ecdab fc cdbfage | acgfbed cedf gabced cf +cgfda eafdb dcgaeb bgef egd ge bcaefd adgcfeb defag bafdge | edbcafg ebgf eg afdge +fdb fbegcd bgfad abfgdc efadcgb fbac fdecga agedb gfcda bf | afdbcg abged egbad bfca +edbagf eg debgf agdecfb gaed gdcfb fadeb gfe deafbc fgabce | afcedbg eg degbcfa fcbdea +bce badcg gedcbaf begacf agdcbe egdfb edgcb deca gfcdba ec | gcfebad ec cbadg ec +fbagcd ebdcf caebdf bdeacfg aecf fc dabegc cbead fcd edgfb | ebfgadc bgacdfe gdafbc cdbgea +bgfac gdac dg cfebdg becgfad bdg bdfcag edfab fadbg ebcfga | cdbfeg dcgbafe bdg badfecg +gde bcgda cagefd ge agdebcf dfgbae gebda defbca bfade febg | befg fgeb baedf edgfab +gab fedba agfcebd dcafg egafcd bg fdcabg bfdag cedgba cfgb | dfbgca acfbgde adgbf bag +af afg cbfa abgec cdgeba bfedcga faegcb gdfcae gebfd bgaef | gfbea egafb fa egcfab +dgcfe ca bcdafg adecg dac bgdecf fdceag cfea faecgbd aedbg | ca acd debgafc ca +egadcfb ea eac eagcfb bgdcaf cfedg baed becgad eacdg gdbca | abed ace edba aedb +aedbgf dfgcbe fcda fadbg agbec agcbdef fc gbfca fgdabc fcg | cf gbcafd gfc gbadcf +dfge adcebfg caebdg dg bfgcd bcegf dcg gaebfc adfcb cgedfb | gabced cgd bgfcdea dgbcf +baef gcabefd bge dgcabf agdce baged badfge dgbaf eb cdgbfe | abfe ebg fdbgaec aefdcbg +eagbcd gbd gbcedaf bacfd afbg fgcbd cafdeb bfcgda gcfde gb | gfdcb bg gdcfe afgb +baged bdaec eabcfd cbe efcbgd ce fbadcg cegdafb fdcba aefc | ceb aecdgbf bcdaf bdgea +bcaf becfd eac gdaeb caefbd cabde bedcfg fedgac ac dabfegc | ca fbac bcfdage bafc +efc ce deacf ecga acdfg gcbadf defab fdbecg eagdcf gbefcda | ce bgafdec cage aceg +cgf cebfgd bgced daegcb bgcef abfeg fc egfbacd dcbf dcgefa | agdecbf gcf abcedfg dcgbe +cgfde bgdeaf ebcd cfe efgbd ce afgebc cgafd efdcbg edgabfc | dcgef fgcabe fgbdeca abfegc +gecad be gadbf fdbgea dgcfba ebcgfa geb febd gcadbfe gedab | fedb fbdga eb eb +gebafcd ea aced badfc bafde cdgbfa geacfb egbdf fea fbaecd | aedc gcadbef bgacfe fae +cdaeb bgafed bacegd adc daebg efbca dbcg fgadce dc cdgafeb | dca gfdeac gbcd bdeafcg +aefgd ce dfcaeb cgdfbae gebcfa gcbdaf fce bdec ceadf acdfb | cfeda ce gbafecd aegfd +bedfa fce ecfba ebcfag bedcag fc cagf geabc febdgc adcgefb | cagbef cef gcdebf fec +cdegba fe bacdfe bfgdae cdgebfa edbac fed fecb fagcd fedca | def cabdef cfeda bgfaecd +edfcb dcbg ecadfb agcdef afegb gfd gd dfgbe ecdfgab cfbgde | bgcd cdeabf dgf fgd +daceg fecdag dfbca gb bfcegd bgc afbgdec adbgc geab gcaebd | gdacb agbe cfebdg bg +agfbec deagbfc cbgda adbce deag dfacbe fdgcb dcgbea bga ag | adbgcef decabf cgbfd cabed +bgdf df bgceda aedbgf abgedfc cgafe adbge gfade bdcfae fde | gbdf geacf baedg cbfead +beacdf egfa afecd ga gca gbdec cagfde cdfabg aegcd cdfbgae | bgcde egbcd cdega dcbeg +fbc abfedc bagce fb fcgdea cdgabfe bdgacf bdfg cfbga cdfag | acfbg egacb dfacg fcb +dgbafe efdgbc gdc deafc bfgcad cg bdefg defgacb ebcg egfcd | bcfgda gfbead cdg dfgebac +aceb bdfega bdfgc bdage ec dcfgeab cdagfe bagcde ecg ebdgc | ebac bgaed gec ec +cfbega ab dgebca fgacbed bcgedf fgab abcef fcade fcebg acb | fadcebg cab abefc dcfgeba +deacbf fgeab ecdbgf bad fdbgcea eagdb cebagd dagc dbgec ad | gbcdae agdeb dcabef gacd +gefcda dga aedbc afbegd edgab fgab gedbfc cfebadg gdefb ga | ag afbg becda dag +dbfcge baedc ebg efag dgbaef agfbd fagcbde fdagbc ge geadb | eg adefgb bfdgce gdfceab +ebcfgda cg cgfe dfgeac fdcabg agedc agfed dgc adcbe bgafde | aebfcdg agdef gefadbc dagefc +dagef gedafcb ecafd cgfabe dg efgadb dbga dge efagb cgdfeb | dbfgce fdaec eabcfg dgba +acbdf dbfagc dabgc bgedca bcdfeg cf bfc efbgacd gcfa debaf | ecdabgf cbf fcbaged fcbgde +bdfega aecbf cadf gecbf cae dfabe ac gdacbe febcgda dbecfa | fgbade ca adbef dcfa +cbdaef ebadf gdbefa eafg aefcgdb gab bacged fdgab ga bgdfc | ga cfgadeb dabgce bag +gd aedcfg cadfe dgfbec adegf eafbg gdac bfcaedg ecadbf fdg | fdacge gd gefad egadbcf +dfaeg bafged fdgec adefgc ebcgf edc bdeacg cd cfdgeba afdc | bcgdefa caegbd cd adegf +cfd cadbf gcadbf cbgd defgba dcegaf egbfacd dc badfg fbace | afcgde afbgdce adbfc dc +fgbed fcaeg fbgcda cb cbg efabgd bdfceg debc cabedgf egfcb | gbdcfe edcb aefcbgd edcfgab +efgabdc fcdba gbcaf fgdbae ag dgac ebfcg edbacf agb dgcabf | bag ag ga cdga +dcbfa bfcaegd fda fabg acdbe gcfedb faecgd gfbadc fa bcfgd | dbcgfa dfa afd fdbca +aec bgdaec gbdca efdgbac ecgad ecfdg eabfcd cbgadf ea bega | ace ae efbadc eagbcdf +fgca dgfeb bacedf beadfcg adf cbgad gabfd gdfcba af agdcbe | daf facg facg fcga +becgfda fgae geafdc dagcfb aecdf ecf fe befgcd ebcad cadgf | gfea geaf fgbdcae adbgcf +dcebag agdce cafbedg eda adebfc cfedg dgcab cdagbf ea abeg | ead gdcbae ea dae +gaebfd abgefcd fgeadc bgedca cbdgf ceaf gdcef efd ef dgace | geadbcf edf aecf afec +afd beadfc facgeb da dgcfba dabefgc ebfdg gdabf dcag fbgca | ad cdga afd efdgb +abdge agfcebd feabcg dgbef bgacdf bdcfeg fe bfdgc bfe cefd | fcde efb gbdcf ef +gdbcf cafbd ad gbad aebcf cbfegd gdcafeb fegdca adc bgdfac | efbdgac abdg gafedbc acd +gdea fdaecb cda fgdec gcbfa eacgfd gcefdb da gaebcfd adcgf | da ad aebcdf ebadfcg +faebdcg bagfc debcag acgef fgbace abc dfacge bgdfa bc cbef | cgefa cab bcef cb +fgaceb ea afe gcaefd dfbecg bage dbfca fbeac gebcf daecfgb | aef efa cgebfad efcbgad +cfgde aegcbf fce fabdcg edfb cgebdfa dcgfeb ef gdeca fdcbg | fe ef ef ecagbfd +agebcd fecgabd facg dcbfe agefb cebgfa aec badefg ac cbaef | ac cgaf ac begfa +cfebag bea aedcf eb ecfbad adfgec cgbad dfeb dfbaceg adceb | dbef eb efdcgab eb +gdfcba efadcg fdcga bdfae cgbd gb afbgd gebdcaf agfbec bfg | fgb bcgeaf bg gfb +eafbd ceafbg dgb caebfgd cgbfe fgcd acbedg ebdfgc dg ebfgd | fcdg cfgd gbd dbg +gbfce fag aedg ag gafec bcgfda efdca gfdaceb fdegac cedfba | bgdafce cbdefga aefcg fagec +cedfa fgcbe acfedb ag cegfa dacfge dgaebc acg afbecgd gafd | gadf cga gdfeca degcab +cegfb gf dgefbc cbfade dfcg fbg cedbf bfgdae fcdgabe aecgb | gbf bfg efdbc efgabd +acdeg fdbae gcebdfa efgcba cdgb ebg gdabe acgebd gb fcdgea | bg geb beg afgdce +bd cbgedf ceafgb agecb bdac daefg befcdag ebd cdaegb dbage | aebcgf bde bed gceab +ad adbg beafc dbcgf gfebacd fbdac dgacfb gecdfb adf cedafg | gdab beacgdf daf da +adcbge febadg dbgcf bace eb edcga ebg gfcdabe egafcd gbdce | gbe defacg cdfbg geb +dfgea fgceb ac egcadf aegfc deac cag bfeagd bfdgca ebafgcd | dgbaef gcfae bdefag gcafe +fagce dga feadg fgcdbe acdbegf bafd da gbfed bgcdae bfagde | da dga dag fdab +dafbe fdcabe cafbd cfde dc cabgf edagcb acd bcgfade gbeafd | adc dfaecgb bgcaf cad +acdgf adgcfe bg fgb gbdcaf fbagc dgbeaf gcbd faedbcg efbca | bg gb cdgb abdgcef +adbecf gcfdeba acdge dfab befdc bagfce af dcfae fca bedfgc | acf fa cfa cfa +eabgcf agc cafgdb adgbf dcfa edcgb ac bdegaf abgcd gedfcab | ca fcegab bgcdfa acebdgf +gcbfde bg gdba bafeg bafde cfaeg cfbead gbe fgebad abecgfd | beg fdgaebc bge cebgfd +ad fadcb fbdce acd faed dbfegc cbdafe ecbdafg decbga cbafg | da gadecb bcfdae cad +dcfgea defbg becgdaf eadb edafgb be gafde feb fdbcg gfebca | eb afdegbc bef eb +egcdb ae fbdeac bgace fabgc edgbcf eac bacfegd eadcgb geda | fcdeba gdea ace ea +befd dcgeaf cbdage bgfceda fbcag be daegf agbfe febadg bea | eb edafgbc acbged ebfga +dbfgcea abfecg bga dgca ecabd ebcfda gdbef ag bedga gadbec | agcd befdg bga cfedba +da agfde fbega fda bgdeafc cgad cdfgbe efgcad afedbc decgf | cdgbfea dagc ad daf +bfcadg aecgfb fgade cbafg fdcgaeb db bdg agfbd adbc bfdgce | dfage bd bacd gafbd +bcdfge eadfg fcda dfegcab fdbgea cfg egfca fdgace baegc fc | fcebadg edafcgb fgc fc +fbdac gadbfc fedbca bfage feabd ed eda aebgdc feadcbg ecfd | ed efdc dcef fecadbg +abdge abgdce fg efdga dgeafb dgfb fge ceafd bdefgca fagebc | aebdg feg dbfg cedaf +dgcf caefb fceadgb fd cdbfe fgbced begdfa cdgbe agbedc dbf | dbf bface edcbag dbacgef +bgafe bf gbfcad gadef egfdba baegdfc bedf fgb becag defcga | dfbe dfagec cegdfab bf +ed cgfaebd edbgca dgabe dcbagf dbgcef agfbe dacgb egd aced | dge egd degab abcgfd +bfgeca edcbg deabgf afdge adebcgf fb fgbde fgb adfb fcaged | bafd afcgbe gbf bf +bg afcdb gedfc afecbg cdbeagf dgeb cegafd gbfdc gfb cfedbg | gb gb gfdcea cfbgd +gf fbgc gbcea gef abgecd efcag fdcea gfcaeb gebfdac fgbeda | gebcda degfbca gef cfgea +fadebcg dfecag dcbaf cgdfb bg cfgbde fcged bgc gefb dgcbae | acgbde cgb fbge becgadf +gdba fbcgea dcaegb abecg eadbcf ad afcedgb agcde fcedg acd | cageb dac adgce adc +ebdca fd dcfbe efbcad afdb ecbgda aecdfg fdc cbgef efdcbag | dbaf df cbadgfe bdaf +dgcbafe ef gaefcb bfgead ecfag gadec gcabf gfbdca fceb afe | afbcg ef dagec cgeaf +abegc badgce gecfdb gb dagec gdab dcgafe dgfabce ceabf geb | gb dcagbe cbaegfd acefdg +adec cbgde cdg egbdaf edabgfc adegb cd cegfb gdceab cfbdga | dc cd cd dcae +fbadcg abc ba cfbge abed afgecd aecbg adcegb gaecd fgbdeac | acdbgf afdbegc bgafdce acb +fa febgc cgfead ebgcdaf abged beafcg begaf aef ecgdfb bafc | fgbea acbf gbfeac afcgdbe +bcadg baced gbfcde ec aegc cgedfab dec aedbf dbacgf abcedg | adbcg ce fagdcb adbcfg +fdgcba acdg befacd bcg bgdef gbceaf gedafbc dfcba dgcfb gc | facdb gbc bdfeac gdfcbae +cd gdce aedcfb fabecgd gdacfe cad adgcf gfbac gbafde deafg | dac cdbgefa cd dfcgeab +aebdfg fgcadbe gcafbd eadfb ea abfgd bedagc eba fecbd eafg | cebfd dcbgeaf becgad ae +edagfc cagdbef eadbfc ga fagec gdae efbgc cag gdcabf feacd | acg cga cgfdea ga +agebdc bagde efg ecfadgb gbfeac fdage fg bfdg geabdf efacd | afgedb cbegfa adbegc fg +dgcfb gacbed bgaefcd eb defac bfae bdecaf cbedf fgdeac cbe | eb ecb gbdcf egdcba +bg dcegbaf bcafeg aecdgf gbf gfecdb gaeb eacgf fdcba cafbg | bfgdec gbf aebg bg +aeg abfdcg gefcdba bgfe bcgaf edafc aecgf ecabgd cbafge ge | age acgbdf eag egabdc +bafgde gefbcd caegfdb cdb fbcad gbfad cb dfcae fbacgd cbag | gcab afcdb bc cdbgaf +cbgdf fda ad acgd agbdf dfaceb bcdfge agfcbd efgbacd gafbe | dfa dfgbec ad fad +gfdca edafgc ge fbedcag ebfgad dbacgf beadc gfce eag gecda | gacde cegf acgbdf cbgadf +cdb dfgec dacefb cfdeb cbaefg ecbadg bafd afceb bd abdcefg | ecbadf bcd bd afceb +gbed be cdfbga bef ecbdfa gdbaf bdfage bgefa fcgae gefabdc | fbagecd gdfab gbdfa gdbe +dafeb gfedb bcegf dg edagbf dagcfe fdg gebdacf dcfbea gdba | gfd bgad gd febgad +gbcdaf aedfcbg dcge dcagf gecfda fde fgdbae fabce eadfc de | decg ecdg gdec de +bfcga cfeg begdca ebcfag bdacef aecbg fac fc fbgda febcagd | efcg cf abdgec gfabcde +cgfb fca dfceag bcfae gcabdfe begaf cf befacg acedb afdegb | egdbfa acf acbed fc +bedgfc ab fabe acfgd cgbdea fdacb fdeabcg bac fbcde edacfb | bfae efcadb dfgca cba +bcgeadf cfadg fge bdacfg eacfg bcedfg ef edfa cbgea cdefga | ef ebafgdc efcgbad adef +dfgec fcdgaeb befc fb afdegc bgcdf dgbaef gbf cgbad cebgfd | bfg fb cbfedag ebacdgf +ceabfdg dfe dfcg gedaf afgce ebdga egcbfa edafbc df gdaefc | abcedf ecfagbd gaecfbd gcfd +degfb fa fdeab acfb deacbf gdcbea fad bacde efacdg bfdcega | adf dbace gfedcba gcebda +badegfc fcebg fd fbd fdeg afcdeb gfeabc fgcedb bdagc cdbgf | dbf dbf fdb fedg +eabcfg cefbdag cgebfd cafge deac gde adbgf decgfa de edafg | fdage adce de de +acbdeg cdfgba gac dbega adfbge cdeg acbgdef gaebc cg afebc | dcgfba acg ebagfd bdecagf +bfadcg bgcda ega gdcef gdbecaf ea edba egadc gebcfa gadbec | ae bade gdcaebf eadb +fe efcagbd cfgbd efdb gef gfced decga gbcedf gdfbca aebfgc | ceadfgb dgbacf cgbdefa egf +gd fbcgda gad gbdfa dfcg ceadbf acgbdef ecgbad faegb bdfac | gfcdeba dg abfcd fbgae +becgad egc ce edfgabc caef bgfdea cebgf faebgc fdgcb gbafe | ceg febag abgfe ec +abdef acdfbe gbdcea egbcf abefg gedacfb ga adgf gae aebdfg | gfad ga agdf gea +befdcg adcf fcdegab debcf aegfb dae cadbef da bfdae bdecag | gbfeacd gdbefc ad ad +dabgcf fgbdeca gecfbd fcdge gfbe bdgfc dcefa eg bagdec egd | edg dge dge dge +afd dagbc ceagdf fa cadbgf fbga badgec fdeacgb fcebd dfcab | bcdgea fad fbecgda af +dfecga cagbde fcdaeb dfgc afegc cf fec bgaef edacg fcegdba | aebgf gceadbf ebgdac cbfeda +gceaf gcbe bfecga beagfd cabgfed gfcba fcadb fgb gdcaef bg | abcfd egcb begc cegabf +gcf adfebcg dcbeg fdgacb gfceab fg gafe acbef bcadef cgefb | bcegdfa cebdg fgc fgc +dgbafec caf af gfcea cbgea efcgd aefbcd gecfba bgfa aegcdb | caf cegdf af agbced +cgfd gd fedbc dbfaec fedbg adbgce bgefcd bgfae gbedafc gbd | ecabdfg cdgf gdcf bdacge +bgc bcdfa becgaf gc dbegf fdcabe dgbfc cagfbd cadg fdabgec | fdcgb cdag gc cdfba +fbgcda gdce bcg acdefb aebcfdg fegba cg cbefd bcfge fgbecd | becgf cgb bgc bgc +afebg dceab aefbdg edgba agcdbf gd adg edfcgab fged fbgeac | cbagfd cgadebf agecfb deacb +bagcdf bcafde gabe fdabe dbegaf ag dgeaf agd facdbge fedgc | dbface gad baeg agbe +df gabfc afgcbed edgf gcbdea bdf ebdfcg fbcdae cgdbf bgecd | ebgacd dgfe adbfgec gdbfc +gadcb cgfd fadbce gbd bfcda fcbagde cabeg cdagbf dg faebgd | gadcbef dfgc fgdc dbg +dcagb cdfeba feacd fgdeac cge ge dgfe bafcge agced gceabfd | deafcb fedg gdef gacbd +dc befgda dcgf gceba edc cbdge daecbf daefbcg ebgfd ebcgfd | edc baefcgd ceafbd dce +cfdab edag afdcebg gba ecdgb ag fecgba bgdca egdbcf aebdgc | bagdc bafdcge gcdafbe aedg +dgfecb bdfage abe defbc ae fabgecd efac fdbcea gbcad dcaeb | abe cefa gfedcb adecgfb +dcegba fd adfgce caefb adgfeb fagdecb gfdc dfeca gdeca fed | fd dfe efacd gdcbea +dafbec gbefd gcdfba edagcbf fegcba abfed efa fdcba dcea ae | fea afe fdaeb adce +af bacf gcaebd dfgeb ecfdga bdaef aebdc decabf afe cegabdf | af bafc fea af +cdefbg ce acef gce cbgad afdbge fedacg dceag efagd bgadcef | ec cfea dcgfbe feac +gfbcd afbgd fgbaed abg ba geadf gdcbaef dbceag afbe feagdc | ab bdacfeg ab bga +cfgea defcga feacbg cfabe gcbafd fbc gfbe baedfcg deabc fb | agcdfe bfge fdgabc ecgbfa +gbdcea gbdf fgecb fbcdage agefc bge fedbca efgbcd bg debcf | dcgfeb cgaef bcdfe gabfdec diff --git a/2021/day08_part1.py b/src/2021/day08_part1.py similarity index 100% rename from 2021/day08_part1.py rename to src/2021/day08_part1.py diff --git a/2021/day08_part2.py b/src/2021/day08_part2.py similarity index 100% rename from 2021/day08_part2.py rename to src/2021/day08_part2.py diff --git a/src/2021/day09_input.txt b/src/2021/day09_input.txt new file mode 100644 index 0000000..c064a7b --- /dev/null +++ b/src/2021/day09_input.txt @@ -0,0 +1,100 @@ +5796798621237995498765434567987542999765679987545679109878999877899789876532123456998999876887899921 +4645976434456789349654321298997679898654698987635678998767897656789698765432012347897899865676798799 +3234987545978993298795410989998989789543256897646789498756789546896579877842123456976789954345985678 +4356798679989999019987329878999798679765345689856991296545890134789467998956899967895698643239874579 +6467999789999898934976598967987676568996457999967999987636789345691346789769987898934987651098763456 +7598997999987796899989987959876543456789569898998998765125678956910298899898776799123998862987652345 +8789876789865685578999876645987665567998689656789876554034899999891989998987564679099789879876543456 +9898765498974324456799865534598786788998798645889985432126954987789878987654323567988698989987664678 +9989997987543212367987654323459897899549895434569876556437899876599967996543212459876587898998798789 +9877989997662101456798765434567998967932987624778989787548999989679459987687301349875456967899899893 +8765678998983232367899896765788939346891295434999999899659879699894349899796532656954344756910923964 +9874789019894343456789949878999321235799987545678945998778964578942139769898543769843212345891949765 +7965678998765764567893433989876542346987898656789236799889653989943298652999678989754523456789898976 +6598789109976975698921012398999763457896559867997647989998799899874569541098799798765676579896687897 +5439898929989989789962123457899894568989435998998799878999989798765798432149898649987787899965456989 +5212987898999999899854336568999989879979326569109989567898879689878987544234995434599898999874345679 +4309875987999876998765687679989878998765412458929875467987854599989698955679989323459979899993214589 +5996954676799984329877788989878969899874324567899765359876743489996549877789878912398767789984323456 +9875432545789743212989899998967659789985595678998868249965312679865435998898767899598954698765467567 +2994321036897654101996936987654543679999989789997854198764301569979423459999954678997643789978578978 +0987432128998763219875424698763212478998978999876543298773212458998901267898767889598732345988789989 +9876544346789979329876512349998401569897569234987994987654343457897892478999878993349891234899998695 +9989875679899898939984701459886212398786456946799889998795464567896789989896999321234989345678987544 +9997987889998797998743212598765323987654397899989778999989978679945698999765678930349878956999898433 +8986798999987676789655329679876439876541289998878656899867898791239956799954345959499867897899765321 +7845679219878565678976598999987556998732378997667545798656789892398745999765237898987656789998654310 +6434798998765454567897987898798677899543467896553234987545878989499636878992156987975345899219964324 +0123987999874343456789876799549789987654598998421056989434767879976521767989249876543234998909878434 +4339876798955102367898985678939891099967899876542159875323854568965410156978956997684456797899989545 +5498765986543234488987894799012999129878999987653249986210123467894321249769767898795867956789199656 +6599754397654545589996789899993998949999998799767998975351237998995432398758998989986788946999098789 +7988732198765657678975698999879876898946999544979877989876456789987643459647899876097899534878999899 +9876546019878767889984567899968765667939896532989966592987887893298754598756789965198997323456799989 +0998757898989899992099789988754543457898789540199854301298998984129866789998999954249986412345899878 +1299898987699954954299999876543212348987698921598763212349999873234977995679439765356897601234988767 +2989999876569999895989986987654103467896567892349854334568989964345698934678921976897996532349875756 +9879899988698988789878995498976215989995456789498999965689879899456789323567890197998987656756994345 +8765677899987677697667896329865423499989997995987878897798768778968895438678991298969398967899873201 +8654546789766563459548994219876534578977789104986567789949654567899976657899789349543219988932965412 +8643437899854312998435689101987645689665679323975345678959868778957987798934679959654301299549876723 +6532126778969409876424578912498756796553568939863203456899979989646799899012567898976432358956987894 +8544434567998912998535689843569867989432459949954212568999989594535798989123467987976563567969799985 +9655566789897893479697897654567979879421267898767343467898795443123497679935679876899674789997659876 +9776789998656799567989998765678998967992349929876556578987654321012989567896798765678985999876642989 +9988899875434678979878999879889987657889458919997967689798865452199867456987987654567896798765431096 +8799943989545789999868799989999876545678967898789898797659979874987654347899999753459987979876532145 +7679969998656789987657678994323965432789979987679789896535989995998321234568939894567899764987687236 +7567898959767893976543467995909876645678989996545678965423599989899754359679421986789968973199875345 +3467987644978912987784989879899987856789999987434569653213679876789866468789439898993459792012989466 +6569999533989999798896797867789898987897999876424678962102398765898977578996598769322375679933496578 +8678998921296789679987896545698769399986789764312398993923499654567897689398999954201234567894987689 +9799867890145679542998987896789954234995698765101256789894987543458999791249899895312347899995798789 +2988656891237789869879998998996895999876789864212345996789987652377899910299756789436556799989999890 +3977545789347899998767899989434999879989898987423467895678993210466789321987645679987867989767899921 +9865437896556789999946799876545998767999987976534789954589997621245679459876437898798979876545978943 +9976545789697899987834689989699767656899876989675678932679876432556789598943218997659989765434567894 +9989867899989999986545678995987654545998965498797889321996997543457898797654323789943596986546789965 +8896978999879878997668789213986543234987894349898996549875698665678909998965534567892345697656798987 +7645989898765655689779898901987662129876789234989998698954539987899919879877645689931257898767967899 +9869998789964334578995937892397654398945689345678979987643012398967898767998776798890234999898957898 +6998789679892123457894325943498765987834568956889467898952134579656899656549887897789656799999546457 +5987654597651012349975434799579989865423567897992378999763245678947999743435998996549767987989432347 +4398753299843123457896545678992099654512455789209989398754356789439879842124999987638989876678954456 +1239854987653238768998956999989298743101234678998994298765768899598765431029892196547898965466795567 +0123995799768545678969869878979349543213455789997899109976779998789987532139789987656987654345789979 +3235986999879656789756999867668956975434696899986987912987899999894697643298678999987898543234567898 +9945799876998798897645987654456899876595989989765976899998999886989987659987567998998999864365788977 +8799895995439899986534598732367968988989878979954695678919998785468998798766456997899898765479899766 +5678923994323999876545987543478957999976556767893254589101987674378789899854349876799649876678987645 +4567919876214899987689998954989546898765432356789123678919986543245679998765467965678999987789298756 +3467898765436789998998999879995434999896521237895019789998997532135998899977569876789988798992109867 +2369929876545699999987899999876545689943210235994298999997989949239876789989778989899976569993298989 +3458910997676789899876989212987676899656432346789987889886979898949965679999899998998665478989987897 +4567899998787895798765678923598789998789545497899996779765765787898764567878921987999543289567976546 +6878978999898934989894569654589890249899876569999884568954654656989843458967899876998992123458997997 +7989569899919129878989678979678931239964998978998763477943212349879932123458998765876789012567919989 +8991356779909019767678989989899842498643239989987542356799302345965431014568919954345692139898929879 +9410124567898998654567891294998753679654134699876521245678913459876432323589109765457789256799598767 +4321267898987549876899910123987654598763245698776410234569865567997943434578999988767899767895349654 +6532356789876434987898943235698765679854659987654321345678976778999894565689989999878949878943298765 +7656467893987545998967896545699887998767998998765432456889988999998789689789878989999432989752129976 +8767589954899756899459987756989998919879897899876548668994599989987678999898769878997643496543234988 +9879678975798967987598999899878959102998766999988767899123678978986567894987653967898765789759449999 +2989789996987898998987899954969643213459945789799878943239989865454478923986542656949896899898998931 +1299899989776999129976899769878965425678996999656989965398798754342349435965421248956997899987687899 +0467999876545789098865689879989876566789987898768997897987659983210456949878543367899898999876546797 +2378988965434678987674778998999998987893598999879876798965434975672569898987665456789789998695435896 +4499877994323569876523467897988999999912459999989965689896323497883479767999787578995679876564326345 +9987656789212489986313568966767897899106598989999984878789212598965998956799898989664868975432101234 +8798878994323478965423459954456986798919987678999873165678943679879876545689939996543459876875212345 +9659989765434568976796567893299765987898765569898762054567894578998765434696549987654667998994323476 +8934599879876899997898879954987654496987654346789943123489965679539854323589998998767898989889456567 +7895678998987899998999998769876543345798765767898894344567896789329875434567897689998999878778967678 +6796989987698969799998789878998632134899878998946799465679987898919987645679976578999098767669898799 +5789995799549347689987678999986721023999999769434878987989998967898998767989787459989298653456789910 +4567894698432134567988566789875432335698798653212967999997859456987679878998643212578987832345679891 +3779992976553235679977455698998765487987689864343458999876543237897569989797652101459876543456789789 +9889689987664346798765323456789887569876598765454569986987652145789698795698768892368987956567895678 +4994567899865457999974313345699998798765439879875678955698767234999987654229878765456799767878934589 +2123456999876567899875101256789109999984321989989899543249878945678996542101989877667899878989123699 diff --git a/2021/day09_part1.py b/src/2021/day09_part1.py similarity index 100% rename from 2021/day09_part1.py rename to src/2021/day09_part1.py diff --git a/2021/day09_part2.py b/src/2021/day09_part2.py similarity index 100% rename from 2021/day09_part2.py rename to src/2021/day09_part2.py diff --git a/src/2021/day10_input.txt b/src/2021/day10_input.txt new file mode 100644 index 0000000..8914aed --- /dev/null +++ b/src/2021/day10_input.txt @@ -0,0 +1,102 @@ +([({<(({<[(<([{}<>])<(()<>){<>[]}>>[[{<>{}}[<>{}]][(<>[])<{}<>>]]){[{{[][]}[[]{}]}({{}[]}[{}<>])]({({}{}) +([{{[(<{[{{<[{{}[]}{(){}}]{[{}{})([]())}>}(({{{}}{<>{}}}{(()[])(()<>)}){<<{}()><[][]>>})}(<<<(< +((<[[<([[({{[([]{})([][])]{({}())(()}}}({[[][]](()<>)}(<[]{}>[[]{}]))}<[[{()<>}<[][]>]]{{{ +{{[{{<[{[[(<((<>())(<><>))<<()[]>>>)<<<(<><>)[()()]><([])<[]>>>{{({}()){[][]}}<[[]]>}>]]<[ +[<{(<{<<[[[[(<{}()>{{}()})[[()()]<{}()>]]{{<<><>>({}<>)}(([]{})[{}<>]}}]{{({[]<>}{[][]})<[<>[]]<{}()>>}[{ +<<{<{<<{<<[(([<>()][<>{}])[<()<>>{()[]}])[<({})<<>[]>><<[][]>[[]<>]>]]>>((<<<(<>[])[{}{}]>[<[]{}>({})]>>)< +<[[[(<{[{((<{(()[])[{}<>]}([[][]][()<>])>[(<[]())<<><>>){({}{}){<>[]}}]))}]}>{<([<<[<(()<>) +({{{<<<{({[{[<()[]>({}())]{<{}()>({}{})}}]{([(<>)<[]<>>]{([]<>)(()())})(<<<><>>{{}{}}>[({}{})<() +{{<<[<[{<(({{({}<>)<<>()>}{{{}<>}}}{<({}())({}<>)>([<><>]{()[]})}))<[<{<[]{}>([][])}((<>())({}[] +[[<([({<<<<{<{<><>}{()<>}>}>{(([[]{}>[{}()])[[[][]]])(<[[]<>](())>(<()[]>({}<>)))}>{<[<{{}{}} +<<<[[(<[<<<{([{}[]]<[][]>){{(){}}[<>{}]}}><([{<><>}<[]()>]<[[]()]<{}{}>>)>>{(<[[(){}]](<<>()>[<><>] +<<[<[<{[<[(<[<()[]>]{[{}[]][[]<>]}>)[{{[()()]{{}()}}{{<>}{{}<>}}}<{(()[]]{[]<>}}([<>()]<[]()>)>]]><{{< +([([(<([((<{<[[][]](()[])}{<[]()>[<>[]]}}{({(){}}[{}[]]){{<>[]}[()[]]}}>[<({[]()}<()<>>)(<[]{}>([]) +<<{{([<<[{({[<{}[]>{()()}](<<>()>)}[[<()<>>{{}{}}]((<>[]){[][]})])([{((){}){[]{}}>{[{}{}]<()<>>} +[(<[[<{({{{{{{<>()}([]{})}([()()])}([[()()]([])](<<>()>({}[])))}[{[[()[]][()()]]{[{}<>]}}<{({}())<[]{}>}<<<>[ +[({{{[(<{[[(<[<>[]]<[]()>>{{[]<>}})]<{([[]<>]([][])){{()()}{{}{}}}}>]}{{{[<({}())>(([]()){ +<({([<[([<<(<<<>{}>>[{<>[]}])>><<<(((){})[<>{}])<(()[])<{}<>>>>>([[[()][()]]])>]{<([<{[]<>}[{}<>]>]<{[() +[([[{<({(([[{{{}<>)[[]()]}(({}<>)[{}{}])]]<<{({}<>)(()())}>{[[(){}]({}[])]<{{}{}}>}>)<{([[ +<(<<[{<<((<(<{<>[]}>[([]{}){<><>}])[{([]<>)(<>[])}(<()[]><[]<>>)]>))><[(<[([<>[]]<<>[]>){<()()}<{}>} +<{{<([<{[{({({<><>}({}()))<({}<>)<(){}>>}[(<(){}>[{}<>])<(<>[])([]())>])}[[{({()<>}({}<>)){(<>())<{} +[[(<({{<(({[{<()[]>{()[]}}]<[<()[]>{<>[]}]{{()[]}[{}{}]}>}(({({}<>)[[]{}]}[[[]()](()<>}])({{{}{}}} +({<<[[[<<[(<([()()]{(){}})>)]((([<()><(){}>]<{[]<>}[[]]>)<(<[]<>>(<>[]))>)({[(<><>)[<>]]{<() +{[((<{{{<(<<{{()()}}<({}<>)<[]<>>>}{{<(){}><<>[]>}{[<>{}]<()<>>}}>{<[([])<(){}>]><{[()<>](<>{}) +({([{<<(<{[[{[{}()][()[]]}([()[]]((){}))]<([<><>}{{}<>}){<[]<>>(<>[])}>]}[<[({(){}}(<>()))]>]><<({({<>{} +[<{([<{({{<[<<()[]>[(){}]>{{{}()}(<>[])}]>[{((<>{})<{}{}>){<{}[]>}}[(([]<>)(<>[])){({}())[{}<>]}]]}<[[[{{}()} +([{{({{{[(<(({<>{}}<[]<>>))((<<><>>){<{}>{<><>}})><<[([][]){{}()}]([[]<>])><({()<>}[[]{}])<({ +(([[<[[[([<<(<<>()>{(){}})<([]())<<>[]>>>{[<<><>>[[]]]}>])({({[<[]{}>]<[(){}][[]()]>}([<[]()>[() +(<[[<[({(({[{[[]()][[]()]}]}(<[(()<>)[<>]]{(()())[<>{}]}><{([]{}){{}()}}>)))})({[[<[[<<>()>(()())]{<()[] +[[([<<[[<<<((((){}){{}[]}){<{}<>><{}{}>}){{<{}[]>[<>[]]}(<{}>(()()))}>[(<(<>{}){{}()}>(([])<()>)}<(<<>()>)<{[ +{({{[[({{{{<({[]()}<[][]>)>}{(({[][]}[()<>])<<[]{}><[]()>>)<([[]](()()))[{[]<>}(()[])]>}}}}(( +{[(([({[[(<{([[]][[]<>])<<<><>>[{}{}]>}{<({}{}>{{}()}>{(<>{})[[]<>]}}>)((([{{}()}({}[])])[[{<>{}}]([()()])] +[[{(((<(<<<((((){})[()()])<[()()]{[]<>}>)>><<{([[]{}])}>[{({<>{}})((<>{})<[][]>)}({([][])[< +{({{<[<{(([[<<<>{}><()<>>>{(()())([][])}]{{{(){}}[()<>]}(<<><>>{[][]})}]{[<[[]{}]<{}()>>((<><>)(()()))]<(<()< +<[({(<[{(<([<<<><>>>{{()[]}<[]>}]<[(<>{})({}<>)]((()[]){[]{}})>)<<[[()()]]{<[]<>>(()())}>>}<[{([<>()]<( +<([<{[(((<((<{[]<>}<[]<>>>{<(){}>}))([[{<><>}{<>{}}]])>)(([[[({}())<<><>>][<<>[]>(<>())]]<<<<>{})[[] +<{<{[(<<[<<{{{()<>}(()[])}((()[]){(){}})}>[{({<>()}[[]<>])[{{}()}<()[]>]}{([()<>][[]{}]][[{}<>][(){}] +{([[{<({{[[{<<{}{}>{[]}}[(()<>){{}<>}]}(({[][]}{[]<>})[(<>)[()()]])]](<(<{()()}[<>]><[<>()]> +({<[[([{[{({[<()()>[<>{}]]{[<>[]]<{}<>>}})}[([<{[]}<<>{}>>[([]<>)]][[([]())<<><>>]])]]}])]{<([({[( +{{{{[[[{[[{(({[]()})){{(()[])<[]<>>}{<()[]>(<>())}}}]<{{<[<><>][{}()]>}[<{[][]}(<>[])>({[]()} +[<{{([(<<{[<[[{}()]]<{{}<>}<[]()>>>[<<()<>>[<>[]]>]][[{<<>()>[(){}]}[<{}>{{}{}}]](((()>{{}}){[[]<>][ +[(<((({(<{<(({[]{}}(<><>))({{}()}{{}<>}))[<[<>()][[]()]><{{}[]}([][])>]>((<[[][]]>({{}()}<[] +<[{{<[({{<(<<<{}<>>{(){}}>{{<><>}{{}()}}){([{}[]](()[]))[{{}<>}[<><>]]})(<[[{}<>]{(){}}]<{()[]}[<><>] +<<({{[(({<{{{((){})<()()>}{[<>{}]{{}<>>}}{({()<>})[([][])<{}[]>]}}[{{{()<>}<[]()>}[<[]{}>{[]{}}]}[[[()[]]][({ +{{[[([([[{<<{[[][]]}>{<<<><>>{()[]}>{[{}()][{}{}]}}>}][[<([{<>[]}{<>()}]{{()<>}({}[])>)(<<[]{}>{[]<>} +[[(<<{<[<[[<({<>[]}([]<>)}{<()()>}>]]{{<([(){}]{<>()})<[[]()][(){}]>><{<[]()>[<><>]}{(<>[])(()[])}>}}>[{ +<([{{<<{<({[<[{}<>][{}()]>[[()[]]{{}{}}]]<({[]<>}([][]))([(){}](()<>))>}<<({<><>}<<>()>)>>){[[([()<>]<{} +{<<[[[[{<(<[[(()())<(){}>](<()[]><[]<>>)]<(<()[]>[<>[]])(<{}[]>({}{}))>><{(([]{})[<>()])<<{}[]>>}>)<({<{{}{}} +<(({{([{{<([({()()}{{}{}})({[]<>}{<>[]})][(({}()){[]{}})({[]{}})]){<([<>]{<><>})[{{}[]}]><[ +[[{<<<<[<(<<<<[][]>(<>()]>{[<>()]{(){}}}>>{[<<{}()><<>()>><{[]()}{{}[]}>]<(<{}[]><<>()>)({[][]}([]{ +{[([(([[{{{[{{<>[]}}(<[]{}>)]>(((<{}{}><(){}>)([[]{}]))(<[{}{}]{{}()}>{[[][]][(){}]}))}}]](<(((<{<< +<{{([[((({{[[[[]<>]<<>{}>][{()<>}{(){}}]]}[<<<[]<>><<>[]>>>]}<{[(<<>[]>(<>{}))[<{}()>(<><>)]]([{{}[]}{{}[ +[<[[{{([<<<{{[(){}](<>[])]<<(){}>{{}[]}>}<[{()<>}{<>[]}][<{}>[[]]]>>{[[({}())]<<<><>>>][({{}[]} +[[(<[{[(({{[<<<><>><{}()>>{({}[])<<>{}>}}}}[[[<[()()]<{}()>><((){})(()[])>]]{[{{<><>}<()[]>}[({}<>)<[][]> +({{[[<([<[{<[([]<>){[][]}]<((){})<<>[]>>><<<{}<>>[()<>]><{<>{}}{<>[]}>>]](([[(()<>){(){}}]<[<><>][{}{ +{([([<{([{[[[{[][]}<()[]>]](<<<><>>>{<<>()>({})})]}[(<<[{}[]][[]()]>[<[]<>>([]<>)]>)<{[<()( +<(({[[<{{{[({(<>){{}[]}}[({}()){[][]}])[[{()()}<[][]>][<()<>>([]<>)]])}{[<[(<>{}){()}][(()()){[]<>}]>(([ +[<<[[<([([[[([[]<>]<<>{}}){<[]{}>[{}<>]}]((({}{})){{[]<>}([][])})](([((){}){{}{}}]){({{}[]}<{ +[[{{<{[<<[({<<()()>[[]<>]>[(()<>){()()}]}[<<{}<>>([]())>{<()[]>[{}<>]}])]><[{{{{[]<>}(<>())}[(()())([ +{<([{{(<<{([{<()()>{<>[]}}]{((()[])([]()))})}>{(<({<{}<>>}{[[][]](<>[])})><{<[<>]>[{()[]}{()[]}]}{{ +({(<{<{[{<{{([()[]]([]{}))[(()){[]{}}]}({{[][]}([][])})}<<<(<>[])[[]{}]>{[<>()](()())}><<[ +{[[<[<<[[{({{{[][]}<[]()>}}([{[][]}(()<>)][[<>()](()[])]))}([[({{}<>}(()[])){{[]()}(<>{})}][{ +<{[({{[{[[[<<({}[])<()>>(({}{})[[]()])>]<({(()<>)]<[()[]]>)[(((){})){((){}){<>[]}}]>]]}][{[[[(< +(<(<{(<{{[{{{[<><>][[]]}}{(((){})[<>{}])}}{{{<[]()><(){}>}(<[]>{()()})}[<([]<>)>]}]}[<((({(){}}< +{<(((([[{{[<{[()[]]{<>[]}}[<{}<>>{()()}]>](([<[]{}>[{}{}]]{{()[]}{(){}}})<{({}[])[{}<>]}({<>[]}({}()))> +[<<(<({[[<{([[<>{}]<{}<>>]{{<>{}}[[][]]})<(<(){}>{[]{}}){([]())[()()]}>}[<({<><>}[<>{}])[(<>())[<>{}]] +(<{<{[[<(((<[{<>()}<{}()>]><[[[]{}]]({(){}}{<>()})>){<<[[]()]{<>[]}>>[[<<>[]><{}[]>][{[]{}} +({[{(([[([[[[{()[]}]][{[()]}({[][]}([][]))]](<{<{}[]>((){})}{[()<>]<{}[]>}>[(([][]){[]<>})[(<>() +{[{((<{<{[<[{[<><>](()())}]>(<(<()()>)>{(([])<[]()>)<<()<>>[<>[]]>})]([<([<>[]](<><>))((<><>))>])} +<[<[[<<<{[[{((<>{})[<>()]){[<>[]]<{}<>>}}(<[(){}]{{}()}>{({}{}){{}{}}})]]([[[[()()](()[])][{(){}}(()() +([{<[{<{<{<<<(())[<>()]>[<<><>>]>(<[<><>]<{}<>>><{{}{}}[()[]>>)>[<[[<>()][[]{}]]<[()()][<>[]]>>(<({}[])<{ +{[[{<{<<<(<[<(()())[<>[]]><[()[]]>>[<[(){}]<<>[]>>{<{}{}>[()<>]}]>)>>><<<[(<[<{}()>[<>()]] +(<[[(({<<[((<(<>())>[[[]()]([])])<{[<>()]{<>[]}}[<<>[]>]>)(<<[<>{}]<[]()>>>[{{[]{}}<()<>>}{( +{{<<[<<<[[{{{<<>()>(<>())}[<<>()><[]<>>]}<(<<>()>{(){}}){<<>()>}>}[<{(<>[]){{}<>}}[{(){}}[(){}]]>{ +([{<(<[{[([(<{{}[]}((){})>[<<>()>[()[]]])]({<([][]){{}<>}>})){[{({[]{}}([]<>))<[[]<>]>}]}]}[<[{[<[<> +(<{{([<<<{([[<()>([]<>)]<[[]{}]>]){({<<>()><<>()>}[[[]<>><[]>])<{([])[[]<>]}<<<>{}>{[]()}>>}}><[(({{{}()} +<{<<[[([(<(({[<>{}]<<>[]>}[([][])[[]()]])[{<<>[]}{[]()}}{[()()]([][])}])>[(<({<>[]}<(){}>)<<()<>>[[][]] +((<([[[<<{{[<(()())>]}}[{<<{{}{}}{()[]}>{{<>{}}}>{([[]{}][()<>])({(){}}<<>[]>)]}{<<<<>()>><<(){}>{{}[]} +[<<<{<{[[{{<<[[]](()[])>{({}{})[{}()]}>[([{}]([]())){(()[])<{}<>>}]){[{{[]}[[]]}<{[]{}}<()()>>]} +[[(<((<{[<<[[[(){}]<()()>]{(<><>)[<>[]]}]>((<{()<>}[<>[]]>((()())<{}[]>)))>[([<<{}<>>({}[])>((()<>){[][ +[<(<(({[{<<<[({}[])[[]()]]>{<<<><>>[()()]><[[]()]{<><>})}>[[<([])(<>)>{[(){}](<>{})}][{[[]()][{}<>]}< +([<{[{((<[([({{}[]}[{}[]])<{[]{}}<<><>>>]{<(<>{})[<><>]>({[][]}<()<>>)})[<(<{}[]>({}{})){{[]()}}>( +[<[<({<({((<[{[]<>}({}{})](<{}()>{[]()})>{{[[][]][()()]}([[]()]([]{}))}){[<[[]()]>[<[]()>{()<>}]]})}<[[{{<[] +<{[[[[[{(<((<{[]{}}({}[]]>(<()[]>))){[({<>[]}{{}()})<[[][]]<[]<>>>][{{()[]}(()<>)}{(<>{})<[]<>>}]}>({[([ +[(([[<[{<[[<{{()<>}[<>()]}(({}()){()<>})>]]<[{{{()[]}{<><>})[{[][]}]}]>>[[[{[{()<>}[<>()]]({ +([[([([<{{((([<><>]){[<>{}](()[])}){<<<>()>[{}()]>})[[<[{}()]([]{})>]]}{[{{([]()){(){}}}(<{}{}>)}{[< +{{{{(<[(<(<[{([][])[<>()]}<{{}()}>][<(<><>)<[]<>>>{{<><>}[()()]>]>([({[]()}(()[]))[({}[])((){} +<[<<<<({<[[{(<{}()>[[]])}]{<([{}()]>{<{}<>>[[]<>]}><(([]()){[][]})[(<>()){<>[]}]>}]({{<<()<>>(<>())>[({} +[{(<<([[{(<{<[()[]][<>]>[{<>[]}<()[]>]}>[([{[]<>}{()<>}])({(<>())}{<{}[]>{[]()}})]){([[<[]<>>{{}{}}]([[]{}][[ +<[(<<<<<<{{([[<>()]{{}()}]<({}[])({}<>)>){{[[]<>]({}[])}}}({<(<>())(<>())><([]){[]<>}>})}{{(<({}{} +[[<[{{<<<([[<{<><>}<()<>>>{{()}({}{})}]{[<{}[]>{[]{}}][{<><>}(<><>)]}](({<<>()>})[<<[][]>[<>() +[[{<{((<((<([<[]<>>(<>())])(<[{}[]][()<>}>(((){}){[]()}))>[{(<<>[]>{<><>}){<(){}>}}[<(()[]){()}>]]){(({{{}[]} +(({{{[{([<[<[{()()}][(()[])(<>())]>{{<[]<>>{[]()}}{[<>[]]<{}()>}}]<([{()()}<(){}>]{[<>[]}<()<>>})>>([<<{{}[] +{<<({<[({{{(<({}{})<[]()>><({}[]){()[]}>)(((()<>)<{}{}>)({<>()}({}[])>)}{({<{}{}>{(){}}}(<[]{}>{< +<<[<{<<[<{([([{}[]][(){}]){([]())[{}()]}])}>{{([{[()()]<[][]>}[({}[])((){})]]{({[]{}}[[]<>]){(()())({}[] +[[({<{[(({<({<<>{}><[]{}>}[({}()){<>[]}])>})[[<([<[]>[{}<>]][([]{}){[]}])>(<[[<>()}{<>{}}][{()[] +{[<[[[{[<[{{<{{}<>}{<>[]}>{([]<>){{}{}}]}}<{((<>{})[()()]){{<>()}<{}[]>}}<<<<>[]>>{[()[]][{}{}]}>>]{[({{<>()} +[([[<<[([[<[{[<><>][()<>]}[[[]<>]<{}>]](([[]<>]<<>{}>))>(<{<[][]>{{}()}}{[[]()]{<>[]}}>[[<()<>>({}<>)]] +[{<(({<[<[[[[{<>[]}]]([{()<>}<()[]>]([[]<>]<<><>>))][{<{[]}{[][]}>[[<>{}]<[][]]]}<[(<><>)[< +<[[<{<<<(([([[{}{}](()<>)][([]<>)[<>()]])][<<({}())[[][]]>>])<<<[({}<>){()<>}]>[[[(){}][[]]]<<()<>>}]>[<(<<>{ +(({{((<{[{({(([]{})<()>>{{{}()}([]<>)}}){<((<>())(())){<()()>([]())}>}}[{(<<<>{}>>[<(){}>{()<>}])} +<[<[(([{<[{(<<<>()>[{}<>]><<<>()>[{}{}]>)<({[]{}}[{}[]])[[()<>]({}<>)]>}<[<{[][]}<[][]>>[<<><>>]][{({}[]) +{[{<[([[[[({{[{}{}]{[]()}}<([][])[[][]]>}{({<>()}(<>[]))[({}<>)[<>{}]]})]]]{{{{[[[{}[]](()<>)][ diff --git a/2021/day10_part1.py b/src/2021/day10_part1.py similarity index 100% rename from 2021/day10_part1.py rename to src/2021/day10_part1.py diff --git a/2021/day10_part2.py b/src/2021/day10_part2.py similarity index 100% rename from 2021/day10_part2.py rename to src/2021/day10_part2.py diff --git a/src/2021/day11_input.txt b/src/2021/day11_input.txt new file mode 100644 index 0000000..f150f94 --- /dev/null +++ b/src/2021/day11_input.txt @@ -0,0 +1,10 @@ +2344671212 +6611742681 +5575575573 +3167848536 +1353827311 +4416463266 +2624761615 +1786561263 +3622643215 +4143284653 diff --git a/2021/day11_part1.py b/src/2021/day11_part1.py similarity index 100% rename from 2021/day11_part1.py rename to src/2021/day11_part1.py diff --git a/2021/day11_part2.py b/src/2021/day11_part2.py similarity index 100% rename from 2021/day11_part2.py rename to src/2021/day11_part2.py diff --git a/src/2021/day12_input.txt b/src/2021/day12_input.txt new file mode 100644 index 0000000..a1434b7 --- /dev/null +++ b/src/2021/day12_input.txt @@ -0,0 +1,24 @@ +mj-TZ +start-LY +TX-ez +uw-ez +ez-TZ +TH-vn +sb-uw +uw-LY +LY-mj +sb-TX +TH-end +end-LY +mj-start +TZ-sb +uw-RR +start-TZ +mj-TH +ez-TH +sb-end +LY-ez +TX-mt +vn-sb +uw-vn +uw-TZ diff --git a/2021/day12_part1.py b/src/2021/day12_part1.py similarity index 100% rename from 2021/day12_part1.py rename to src/2021/day12_part1.py diff --git a/2021/day12_part2.py b/src/2021/day12_part2.py similarity index 100% rename from 2021/day12_part2.py rename to src/2021/day12_part2.py diff --git a/src/2021/day13_input.txt b/src/2021/day13_input.txt new file mode 100644 index 0000000..a21f49a --- /dev/null +++ b/src/2021/day13_input.txt @@ -0,0 +1,995 @@ +1160,528 +1273,516 +149,893 +147,582 +363,746 +955,819 +373,782 +464,80 +1228,283 +879,630 +995,108 +664,212 +119,700 +518,803 +87,828 +572,176 +1151,119 +179,822 +408,273 +314,640 +1071,142 +1043,311 +179,72 +845,112 +624,347 +758,492 +50,255 +276,116 +512,50 +557,70 +63,95 +105,665 +1111,326 +127,138 +87,60 +430,354 +740,238 +969,786 +961,367 +1016,145 +792,803 +730,614 +1039,164 +877,10 +464,744 +440,675 +98,842 +738,176 +0,361 +256,299 +915,488 +807,800 +669,694 +1303,278 +425,359 +855,326 +833,199 +1190,337 +974,235 +455,229 +937,779 +597,747 +1131,134 +735,506 +236,199 +1,192 +219,506 +271,70 +333,381 +1197,189 +1305,137 +1029,779 +1138,155 +8,682 +1183,215 +35,364 +1049,294 +1131,822 +246,721 +875,675 +50,703 +694,842 +264,84 +363,889 +661,343 +238,838 +299,523 +50,472 +288,724 +60,31 +527,166 +209,556 +0,757 +326,89 +1228,494 +768,226 +1066,42 +190,304 +708,124 +947,777 +1076,50 +127,677 +10,711 +721,824 +759,488 +281,186 +728,491 +527,215 +291,777 +629,612 +1077,738 +575,388 +1302,513 +594,393 +664,173 +589,824 +1022,724 +1154,499 +807,562 +1191,194 +1218,760 +1121,525 +743,702 +1011,523 +127,217 +1068,712 +1079,627 +803,760 +1115,68 +410,873 +120,417 +552,613 +1111,443 +706,143 +989,533 +1275,364 +166,352 +373,145 +1089,677 +338,274 +875,616 +945,810 +423,667 +927,268 +591,95 +753,436 +649,151 +152,648 +730,280 +1066,387 +972,764 +835,143 +1131,72 +644,130 +932,79 +219,219 +1297,749 +894,541 +1101,746 +488,749 +599,612 +889,206 +208,812 +1102,82 +907,620 +82,64 +981,19 +1302,660 +1265,418 +536,588 +923,712 +172,739 +701,114 +415,484 +1257,847 +1131,751 +1077,114 +447,331 +922,726 +969,108 +822,800 +947,82 +1053,156 +393,373 +353,614 +1169,751 +152,798 +49,250 +315,108 +646,397 +619,364 +1071,858 +363,82 +1102,812 +1036,733 +1129,708 +562,743 +88,166 +748,760 +1111,774 +127,698 +1228,21 +716,203 +8,513 +1,702 +1212,842 +17,820 +120,865 +920,84 +632,404 +166,145 +410,387 +1238,436 +739,348 +127,215 +179,570 +1297,593 +907,519 +1253,523 +445,186 +187,635 +1183,614 +874,96 +584,620 +743,569 +575,506 +1154,395 +765,80 +1011,819 +1120,528 +162,145 +37,826 +711,502 +189,369 +885,495 +1250,415 +518,203 +507,655 +100,889 +336,884 +646,800 +863,252 +589,73 +754,842 +455,28 +661,813 +567,708 +622,77 +447,252 +1102,364 +890,844 +1223,452 +977,212 +855,810 +572,512 +8,459 +959,893 +711,612 +403,519 +1076,848 +869,145 +666,130 +1039,602 +574,667 +1010,80 +1034,591 +1153,553 +364,227 +328,137 +654,809 +403,71 +808,346 +311,319 +1111,532 +730,54 +969,555 +465,112 +333,327 +646,65 +97,879 +875,170 +1226,238 +84,14 +251,71 +420,844 +37,84 +649,757 +875,618 +251,738 +810,871 +258,548 +94,142 +1076,400 +378,890 +723,40 +947,746 +1081,767 +646,883 +1133,221 +1158,684 +572,283 +1237,513 +74,219 +1235,345 +79,882 +281,782 +913,738 +93,108 +73,513 +944,618 +224,56 +922,168 +166,677 +273,142 +749,492 +889,338 +335,633 +900,387 +922,863 +53,304 +1190,29 +82,42 +60,243 +349,367 +387,712 +808,42 +1120,142 +716,66 +1223,186 +281,779 +1,416 +545,814 +132,554 +1235,508 +333,682 +383,730 +234,400 +1041,595 +855,84 +917,735 +965,522 +604,666 +455,820 +102,19 +149,108 +266,168 +1273,84 +1190,477 +1235,763 +8,660 +754,500 +1111,28 +1293,634 +1138,576 +13,22 +179,431 +1190,865 +1230,59 +855,372 +985,875 +580,54 +927,25 +1260,422 +731,743 +975,633 +758,402 +738,425 +1153,809 +300,814 +999,575 +387,311 +455,74 +960,42 +423,227 +1195,396 +571,366 +1297,22 +236,695 +961,527 +828,603 +846,366 +758,281 +0,137 +862,753 +1019,777 +562,610 +480,682 +484,577 +900,675 +431,712 +398,508 +793,593 +141,143 +415,833 +637,372 +982,137 +1293,74 +1226,686 +3,292 +701,820 +269,595 +1120,150 +1131,143 +1059,738 +1159,94 +318,235 +339,556 +758,613 +190,142 +599,392 +397,156 +1136,711 +781,308 +661,668 +895,833 +1235,549 +1034,564 +664,621 +1255,840 +475,591 +661,809 +1096,450 +1216,794 +1093,192 +766,98 +1131,772 +350,359 +1091,52 +1213,376 +92,760 +321,533 +894,56 +373,186 +94,794 +785,533 +70,732 +641,77 +378,778 +1161,445 +835,570 +149,445 +488,665 +8,883 +129,256 +932,4 +889,604 +937,560 +299,371 +150,528 +271,164 +721,821 +393,872 +644,764 +947,677 +977,813 +572,201 +912,508 +459,826 +874,768 +822,229 +238,168 +763,52 +62,413 +554,889 +326,1 +1173,242 +960,852 +1257,142 +464,546 +1171,893 +828,471 +890,599 +1019,140 +502,346 +649,343 +1273,68 +82,649 +92,535 +1047,541 +504,752 +137,801 +1174,348 +199,774 +735,58 +55,518 +649,674 +360,145 +792,348 +1109,138 +428,698 +646,173 +400,772 +1089,884 +271,54 +455,231 +294,145 +982,89 +233,492 +826,577 +1305,585 +769,61 +503,562 +400,665 +1190,417 +485,519 +1261,250 +880,540 +1037,752 +820,585 +174,631 +1245,73 +671,99 +52,770 +82,21 +281,444 +669,749 +421,380 +1111,550 +517,652 +464,91 +1129,634 +7,840 +291,565 +1136,417 +109,814 +174,477 +480,604 +127,374 +84,40 +358,554 +1203,233 +646,721 +199,810 +373,36 +1181,809 +1144,217 +127,614 +233,688 +597,595 +1213,682 +172,576 +855,229 +1019,820 +256,826 +219,276 +792,651 +239,142 +1034,778 +1104,753 +694,52 +440,219 +455,138 +147,207 +397,738 +1103,642 +828,211 +1086,614 +1227,766 +82,494 +435,219 +1092,798 +673,746 +35,217 +333,501 +1218,535 +579,151 +326,406 +544,572 +753,682 +1223,484 +1305,81 +120,557 +422,682 +0,805 +282,796 +1297,872 +571,128 +304,199 +172,347 +783,614 +1057,605 +1297,145 +1205,705 +113,705 +972,274 +656,137 +72,228 +1138,659 +518,546 +1059,620 +267,583 +743,708 +251,823 +500,871 +594,828 +518,348 +1236,675 +783,728 +136,691 +132,890 +544,98 +196,525 +1153,789 +1260,367 +338,354 +908,331 +1123,691 +440,450 +1039,70 +869,189 +437,735 +878,494 +321,381 +490,585 +393,70 +855,820 +664,829 +55,376 +653,30 +1212,52 +336,10 +917,22 +475,303 +142,858 +845,641 +1223,442 +821,467 +410,219 +433,10 +552,281 +233,556 +181,837 +654,309 +1054,826 +1183,698 +761,257 +798,858 +1183,553 +1217,786 +582,666 +1066,245 +209,194 +244,404 +333,81 +1238,228 +502,96 +681,282 +783,3 +669,200 +239,254 +937,476 +977,327 +783,196 +1019,746 +1223,702 +654,757 +276,527 +127,108 +846,406 +1228,718 +242,712 +974,10 +743,325 +748,610 +1044,393 +1300,183 +855,822 +105,481 +851,245 +646,845 +1091,618 +127,341 +798,50 +972,183 +388,863 +768,675 +216,887 +552,467 +319,185 +10,183 +403,738 +1039,840 +855,891 +711,294 +846,744 +641,200 +1111,344 +242,854 +316,544 +208,364 +668,254 +822,749 +656,309 +989,361 +15,99 +37,378 +1280,788 +1183,810 +813,809 +923,759 +1123,651 +436,798 +549,257 +560,100 +1153,85 +937,334 +1195,844 +313,339 +421,688 +385,561 +805,449 +226,698 +738,400 +1091,716 +57,561 +557,212 +87,410 +488,229 +748,743 +1183,341 +218,96 +769,189 +338,540 +952,340 +333,533 +1228,220 +157,743 +44,348 +783,84 +1171,635 +1086,354 +187,259 +195,649 +354,651 +792,546 +435,518 +1213,175 +218,798 +1266,348 +599,740 +688,817 +1223,834 +1029,186 +338,350 +972,711 +335,502 +179,751 +917,521 +11,780 +1174,91 +0,89 +1190,141 +1303,840 +846,752 +589,600 +1077,654 +644,578 +1213,518 +432,494 +815,567 +281,82 +830,855 +927,164 +678,852 +97,175 +415,142 +1091,388 +992,659 +373,418 +1014,106 +1111,120 +956,651 +1071,640 +1236,840 +10,826 +835,463 +828,347 +748,732 +219,675 +229,207 +437,334 +8,65 +900,731 +291,117 +567,274 +874,798 +441,145 +125,308 +136,203 +30,788 +214,450 +969,787 +87,66 +1307,292 +1086,56 +38,170 +179,374 +738,873 +224,354 +711,54 +547,661 +435,618 +567,702 +37,68 +975,709 +771,172 +1288,695 +1044,168 +328,893 +482,423 +669,77 +239,590 +1068,40 +557,824 +358,340 +562,400 +55,282 +713,10 +1120,744 +172,603 +402,563 +1041,299 +792,796 +525,256 +335,261 +97,470 +599,502 +114,712 +994,544 +1217,850 +1043,583 +5,2 +436,96 +1208,467 +1006,535 +494,800 +72,491 +783,810 +97,87 +649,668 +170,577 +1213,87 +388,168 +889,402 +828,123 +922,501 +207,642 +566,166 +25,361 +574,835 +929,304 +1111,665 +1295,99 +846,80 +769,369 +6,723 +1302,65 +664,682 +1228,674 +291,820 +177,669 +398,68 +805,225 +664,65 +880,165 +333,234 +365,810 +221,217 +1029,82 +1258,124 +1072,838 +889,380 +1046,84 +1163,207 +1019,754 +1153,697 +750,10 +890,880 +560,794 +435,376 +557,518 +350,199 +373,444 +686,547 +1163,134 +1072,541 +1136,183 +341,694 +977,660 +271,716 +557,807 +721,878 +560,10 +544,796 +1161,1 +748,494 +957,280 +661,137 +1072,278 +1310,805 +1101,260 +1174,203 +53,528 +556,500 +45,53 +244,21 +68,122 +1029,782 +1185,586 +753,376 +400,229 +567,569 +35,530 +574,227 +634,186 +1091,892 +1201,814 +1161,108 +902,273 +557,458 +997,787 +776,337 +549,637 +900,873 +1133,673 +572,606 +691,777 +725,352 +49,26 +856,667 +467,691 +885,543 +393,824 +793,301 +408,621 +464,150 +60,844 +1226,488 +139,635 +1284,752 +726,582 +505,449 +1158,648 +373,708 +1261,868 +687,161 +889,688 +693,68 +1072,56 +100,5 +465,446 +994,798 +1089,217 +912,855 +1043,854 +269,189 +189,716 +1121,448 +219,618 +1111,72 +986,70 +196,301 +169,71 +589,294 +82,830 +763,178 +992,435 +420,880 +482,211 +783,679 +1309,192 +912,39 +1066,693 +26,142 +1086,44 +912,595 +656,805 +763,716 +151,94 +1091,518 +1114,749 +8,800 + +fold along x=655 +fold along y=447 +fold along x=327 +fold along y=223 +fold along x=163 +fold along y=111 +fold along x=81 +fold along y=55 +fold along x=40 +fold along y=27 +fold along y=13 +fold along y=6 diff --git a/2021/day13_part1.py b/src/2021/day13_part1.py similarity index 100% rename from 2021/day13_part1.py rename to src/2021/day13_part1.py diff --git a/2021/day13_part2.py b/src/2021/day13_part2.py similarity index 100% rename from 2021/day13_part2.py rename to src/2021/day13_part2.py diff --git a/src/2021/day14_input.txt b/src/2021/day14_input.txt new file mode 100644 index 0000000..b0bcae6 --- /dev/null +++ b/src/2021/day14_input.txt @@ -0,0 +1,102 @@ +FNFPPNKPPHSOKFFHOFOC + +VS -> B +SV -> C +PP -> N +NS -> N +BC -> N +PB -> F +BK -> P +NV -> V +KF -> C +KS -> C +PV -> N +NF -> S +PK -> F +SC -> F +KN -> K +PN -> K +OH -> F +PS -> P +FN -> O +OP -> B +FO -> C +HS -> F +VO -> C +OS -> B +PF -> V +SB -> V +KO -> O +SK -> N +KB -> F +KH -> C +CC -> B +CS -> C +OF -> C +FS -> B +FP -> H +VN -> O +NB -> N +BS -> H +PC -> H +OO -> F +BF -> O +HC -> P +BH -> S +NP -> P +FB -> C +CB -> H +BO -> C +NN -> V +SF -> N +FC -> F +KK -> C +CN -> N +BV -> F +FK -> C +CF -> F +VV -> B +VF -> S +CK -> C +OV -> P +NC -> N +SS -> F +NK -> V +HN -> O +ON -> P +FH -> O +OB -> H +SH -> H +NH -> V +FF -> B +HP -> B +PO -> P +HB -> H +CH -> N +SN -> P +HK -> P +FV -> H +SO -> O +VH -> V +BP -> V +CV -> P +KP -> K +VB -> N +HV -> K +SP -> N +HO -> P +CP -> H +VC -> N +CO -> S +BN -> H +NO -> B +HF -> O +VP -> K +KV -> H +KC -> F +HH -> C +BB -> K +VK -> P +OK -> C +OC -> C +PH -> H diff --git a/2021/day14_part1.py b/src/2021/day14_part1.py similarity index 100% rename from 2021/day14_part1.py rename to src/2021/day14_part1.py diff --git a/2021/day14_part2.py b/src/2021/day14_part2.py similarity index 100% rename from 2021/day14_part2.py rename to src/2021/day14_part2.py diff --git a/src/2021/day15_input.txt b/src/2021/day15_input.txt new file mode 100644 index 0000000..bca5a6a --- /dev/null +++ b/src/2021/day15_input.txt @@ -0,0 +1,100 @@ +1553369139819281195963299289279249287228261229874627955159845635912934148958697118389116976773991141 +9292864279739861973394996392399482385639161781713948569919934925915994267292687635425848414898662891 +8984516767399919686159711981517295998244199358589514969127392995155179316966192911316344999828194948 +1961841162399797369999495729498611977732592684686144381661917955137597444884519641489211991966891996 +4925864759769821471182939927815555689815289679496195399185239319895981781934589478814926183646665891 +9568998284499875171643226927595919849831182941847415199853128424932979499859745259419813188191625867 +3917999871999558116791938149135967129559618711897575355692864344981918546238879172788161239959229773 +4549995929397861922181272962917153759294974661599299699127479249268537297911781928986467769189952291 +8939269939384965753979949271918149659128771846693188111995361233581933797496776999298984189911991338 +6895589291188512655781983273445259258884935544288933277834934721931249715897719983664387197944146444 +6139919584949779786782819426113258992849176881479771216991948266461734825165191446852959519612953957 +9489181798814857433388798598661959626629454847677716195182968598571159614573152348257964562848276629 +6831759629996599917954513911719799788388973599265115899953591369412919134789947918539299218259561938 +4718998529528181941467197499761232211379912938598719729521928472977654381129167141199296997931171211 +1329132994592752776183382611919769644988919189199717888923619139124798917791536899692312994986951129 +9179991399838443832269349411489213342791119921982131294997712636147111152188869276169159332985452299 +9239845945833699559929318999655628994587218288955495781111841471911261366411362258149519389745974729 +9138123464564159793961198252998498574695467261957194961679762215594291969548298217264317892768769985 +1722975394781339912937157619766732492817121831519139919641845418578711617396399933134168187765496698 +7877922117218369213113272671248842865939371467617411825957229227993782677584591914119929652693413118 +5923951581694278834858559787566328923113793811653137937393293289559719731975566289167786973182263996 +1482998311663789979156993816882997499771182616174673128219227992222186939811488172191154525193112592 +7921545155782169121698269931336317185157468951395284865915979111857417298288741859245219637419293413 +2175617798169787915114123773879617899939229185957518762822679452699894797319271811932325389399254153 +5666952923289989585659259419921641197616799492271789999121355193237271392215961123988117953178127921 +6514357436999373112681828595571563952997896858297295892998939272997559271573187782455298397979615185 +9167799621779474998218175497261658985257292475651936999819283993979459935356229397631368884146937951 +3121926985887554321997591769138518977998399747935872236549949735921351951771669787955894195198872131 +2422173925461478818969584737952489531995998813797165584692849111194931987761875991896681148187733983 +9987969687789221681726849529598922996831341159972761113983523829691833992747579636981899926698989237 +6171354563334242319989717794896817688372823666348939297261192278894139484522284951235818827684989359 +8891515991173293413343349494137119393261997195348888676699956182341781517918183993169151931819949156 +8823194896356791363997494869781812537959872949676997552115564979894184428189911891731326877553112136 +9299958168649372924692192886927991881779215282592911998999327715579599943291189742919311158969147798 +1999396423898863195222128296917211963576111159963179729967222993818336324391296926947919849899511638 +7835221281216931345738821376472611857776328213369962934118919835861675329942772374965411713684957972 +9912259114599884633169991727372988842437328956911987968671161697449294691531121691628885771371438348 +9961652484486486548329997391587199353813996679379179832723222488916948619566193982219945883129931798 +5899544949494989789968779954546932194237933997969959829124131974487931265941228993163285757192522754 +3479678496576291493914879898641691119282859415276999861267337254261711996767999739369928844271442737 +1481784131758816716945157354859985139283182891929671348998299167679994475796519178926971157832999262 +2579579992523471249895228396942519996233918849526498189426642699639921111152745991897429591999549397 +2378693953687729245142175141669992799322975161681993719869964742494154569341349991199969418981928655 +1344911524382492387259679197199773526361181112285962968918818589392526954341129566999918985719963564 +9311179452367417321597319976898578322761116271959135699812647326719916811951966838814717688787581613 +1269965327637848726381211585119682192914299671949719299885591164672928813952851621585857246291919378 +3666918925563366388498936973892125949938198719949997148393568932321484731299797993748183458988143546 +7961479381894625918379988547729262288819489992254987559193811984914198799851717766751818236549316596 +9181194822691182482865527991248994929949895892511132137195899655311119232349459547992671688469784981 +7895396943816859115127364741724178349854916139495594824798397929878577377189539319145319889592136748 +4133739221428399291898549992272932953197121169591921196739571238379412986922938839829741713938911131 +6988635588898761841539799169332153599667988919113984115311374346347587725952169454377453669955622969 +9888192352369316847851984798955576792464856529258588619562533595932881258815747285829218186291691628 +8911449552199239198392573838815981357891613919988475642958368241565414798196717499889442941499941959 +4297158966878949929632891956129338487932767213538199727433339983599199317871999181211175939719141145 +3387721313739845241971989147822531979132288378898919921742999368471928951485481969199827919974186949 +9892211523471633929646942127892939281819169266948298899667838517844579141612759324961885139119714261 +9482439993911868494669559819231639712748793897621618717995867682282218186937994345561519344191926769 +8369681282333199713679994855936899321763458895758289995459614818391919899779888556993195159611323518 +4996197176972121287771218855191719955298166113773111192111121917278142191893993145989523568856192571 +1357779736344432944913376169439156817637675147356825761165269118691127596126429917114689282958538828 +1858142999698847529591656874319626329436999932777129639819114922311233661976294893495416228985991383 +1969894159521516638897474399689391719514775291996367461813199628293441598625151987194566976892681869 +3987862511151398597252489133518218431923671229973332154342788462897293857399799384971284894496689236 +9854779953262796879895158126928953688331815231386397725958911114918972855957198189611255837158997793 +9126186712893992728219117299861327857895488369946916139156142321919727916267899299961876799511977348 +2971481288458198738526916335939869662921399799929391647481711153139398289736256288912897966869837859 +8197731317886499328849772529639111742928687138937175597191647599828188472223229264741499589229978999 +1984355172417479335659919151749179619719974295199321849996293616836119479434895762471671439595392444 +7512861928974482865998945877494759911916978915813571219468271636293417785921521944976919293885978989 +1494159826471488241965364182146948684142785894572841335974773936911622349534724119489374611197275486 +8195599236199953696295599897277219277688787271189387541291481581759964281862289692811882959467835171 +4985187713445997395266826296277942895664915921991179311912739479984114724145661697159431389988688938 +1749529221387993199551362649819192589618736546811975996192768855499498838921191981137867138989929897 +2321395614449721318999457738893285991357991937749967169819379166112844719494141783116984947999997171 +1239282511991298431921162499927179871829941813989782998396139391854921999889416856452475822812779818 +1987898484191177987199986815342837183185138821796981991249714839388383983614974644359691979496951598 +8195693913588195321251985218492832162788217451817157966865816919479587191599893161626969527911998196 +8616391986912313328592959849419758719529117391793962281569659321178313848139279987253594296391435222 +7199892962573817799345191496147813884599192968847818169296898467728113731184927611793298926397585931 +1948645414511382938885937269871812359486289679616351897115349742968371991394992322374394448599979919 +1899967948921374159621318118467599569819989613392866971211715646264269412659494967959337373254971698 +9759739948918617275163494659917948181922321691153498564618993575529623799992989173561364955696121386 +8291929948387639192113983497868276177195515723926197129569197892875494169171675941829271948586299817 +6916243987198539179486681576516139941519194322198687787339159665811127242911879414856479919178893229 +6794896349285898429219358917397244949569129368958969911292919699848889166159182779318214988915878714 +1831623258794878676986929792829198396714498577929446376692884118198159927913296892158987967972983938 +8389841184357579116498345799418453825489231171224192688996117389469988916841995654994881297252721989 +6816366883433998399991186841639594153863387489916419458977318969919645917126284781379616117199998812 +3975339899972969842444565961128829896198898551859152218611611799878191696116111643295711343147586989 +2199115111911736194332299624976188996923148114211398176679924614296689298361511479942149959984313376 +5817197881291887482638262999917359428823549229138797746789956711789111382939961981744199431797485521 +5533397199864281598498169721588459491573978165989199988919354766982929192296473895798668818714348957 +9111387995292996614528133926791651223588397936711767839899269691993966591874918318879949912614799986 +9956999992358992893174398917139976171612156192284799689177134618211771997793191476929439667299482763 +3894441798164996681111947398944623826888384881731622418147877158627316928115517527994498941619259887 +9989496699773646922999882466996731439456984839818616892916584592143588489872939137941695316137682541 +1886968145524384741199214965897925165966691123172988412916511423648941351797911916372816387844452587 +9981772947881292992712666867428936656281191316889944875771351781191611278697159129215845818198991927 +9839986799867698714191282948188186975654994931268526968113472187114622215116928992953762299971268646 diff --git a/2021/day15_part1.py b/src/2021/day15_part1.py similarity index 100% rename from 2021/day15_part1.py rename to src/2021/day15_part1.py diff --git a/2021/day15_part2.py b/src/2021/day15_part2.py similarity index 100% rename from 2021/day15_part2.py rename to src/2021/day15_part2.py diff --git a/src/2021/day16_input.txt b/src/2021/day16_input.txt new file mode 100644 index 0000000..0faf919 --- /dev/null +++ b/src/2021/day16_input.txt @@ -0,0 +1 @@ +420D4900B8F31EFE7BD9DA455401AB80021504A2745E1007A21C1C862801F54AD0765BE833D8B9F4CE8564B9BE6C5CC011E00D5C001098F11A232080391521E4799FC5BB3EE1A8C010A00AE256F4963B33391DEE57DA748F5DCC011D00461A4FDC823C900659387DA00A49F5226A54EC378615002A47B364921C201236803349B856119B34C76BD8FB50B6C266EACE400424883880513B62687F38A13BCBEF127782A600B7002A923D4F959A0C94F740A969D0B4C016D00540010B8B70E226080331961C411950F3004F001579BA884DD45A59B40005D8362011C7198C4D0A4B8F73F3348AE40183CC7C86C017997F9BC6A35C220001BD367D08080287914B984D9A46932699675006A702E4E3BCF9EA5EE32600ACBEADC1CD00466446644A6FBC82F9002B734331D261F08020192459B24937D9664200B427963801A094A41CE529075200D5F4013988529EF82CEFED3699F469C8717E6675466007FE67BE815C9E84E2F300257224B256139A9E73637700B6334C63719E71D689B5F91F7BFF9F6EE33D5D72BE210013BCC01882111E31980391423FC4920042E39C7282E4028480021111E1BC6310066374638B200085C2C8DB05540119D229323700924BE0F3F1B527D89E4DB14AD253BFC30C01391F815002A539BA9C4BADB80152692A012CDCF20F35FDF635A9CCC71F261A080356B00565674FBE4ACE9F7C95EC19080371A009025B59BE05E5B59BE04E69322310020724FD3832401D14B4A34D1FE80233578CD224B9181F4C729E97508C017E005F2569D1D92D894BFE76FAC4C5FDDBA990097B2FBF704B40111006A1FC43898200E419859079C00C7003900B8D1002100A49700340090A40216CC00F1002900688201775400A3002C8040B50035802CC60087CC00E1002A4F35815900903285B401AA880391E61144C0004363445583A200CC2C939D3D1A41C66EC40 diff --git a/2021/day16_part1.py b/src/2021/day16_part1.py similarity index 100% rename from 2021/day16_part1.py rename to src/2021/day16_part1.py diff --git a/src/2022/day01_input.txt b/src/2022/day01_input.txt new file mode 100644 index 0000000..f42822f --- /dev/null +++ b/src/2022/day01_input.txt @@ -0,0 +1,2251 @@ +18313 +2404 +10479 + +7011 +10279 +1496 +10342 +8918 +3162 +4525 +4368 + +17242 + +10920 +14072 +9754 +4435 +9396 + +5915 +2602 +4032 +3303 +2685 +1856 +1334 +4865 +6385 +1733 +5328 + +8899 +5482 +3195 +7837 +8986 +13794 + +25121 +22211 +21257 + +6360 +4007 +5124 +2266 +6943 +6966 +3887 +3427 +1255 +5266 +6119 +2841 + +6167 +3883 +2776 +5894 +2013 +6930 +6613 +4637 +5259 +2347 +3550 +5639 +5117 + +4530 +5961 +5956 +2503 +5060 +4770 +5240 +4123 +4089 +6794 +3333 +5244 +4415 + +1733 +1209 +4458 +1223 +3859 +7728 +9793 +8350 + +2278 +3241 +4668 +1836 +3669 +2996 +1772 +5016 +6294 +6367 +1080 +5964 +5547 + +4793 +13744 +9478 +7979 +1490 +12490 + +6770 +7282 +2059 +5242 +13237 +9365 + +2230 +6498 +1352 +3846 +3863 +6205 +5803 +2646 +4188 +4431 +6380 +1526 +2620 +4438 + +24331 +23578 + +4199 +5126 +5725 +1123 +2415 +5427 +5789 +4856 +2610 +4833 +3398 +4239 +1432 +5122 + +5013 +4939 +11760 +8419 +5706 +3765 +10182 + +11795 +9688 +1712 +2091 +9651 +13022 + +10393 +11862 +1672 +5431 +6812 +1866 +5599 + +2036 +6561 +4097 +3467 +4739 +7656 +3252 +4322 +5068 +2345 +4155 + +3090 +1228 +1270 +8407 +8118 +4996 +7157 +3944 +6230 +2728 + +5669 +2113 +3076 +1290 +7673 +1022 +5805 +5128 +7912 +7862 +4955 + +20640 + +4131 +4874 +5220 +9947 +9739 +1662 +9418 +9684 + +4875 +3073 +1151 +11911 +10310 +10793 +10307 + +6979 +4265 +8322 +3518 +1855 +4912 +5481 +7124 +4664 + +19975 +16112 +19450 +7231 + +3909 +4743 +3794 +4448 +3200 +3447 +3331 +7011 +3345 +3935 +6750 + +3900 +14850 +4890 +9625 +4832 + +23682 +1375 + +7463 +8112 +10624 +1105 +6625 +5157 +5839 +1019 + +19089 +36719 + +5372 +7085 +8536 +8717 +6255 +5961 +3198 +7729 +3055 + +4406 +2263 +6686 +1458 +2377 +2740 +1284 +3045 +7121 +3070 + +19161 +10515 +1027 + +7782 +1703 +1864 +3611 +1039 +2394 +3472 +6964 +5824 +8011 +3341 + +56690 + +5107 +1876 +4973 +5485 +4325 +6079 +3187 +3565 +2875 +7137 +3887 +6763 + +2633 +2151 +1105 +2400 +5338 +3382 +1330 +3945 +6556 +1670 +5526 +4281 +2168 + +5382 +2347 +4225 +1905 +4672 +6706 +5747 +5808 +1159 +4878 +5923 + +11148 +8722 +3896 +15697 +3499 + +46749 + +13315 +20966 + +1625 +6338 +7882 +1505 +4226 +9948 +6438 +6012 + +1003 +10033 +5066 +7756 +10151 +10719 +5299 +5629 + +4466 +6290 +7220 +3657 +8261 +7348 +8525 +4531 +4892 +7833 + +24723 +7817 + +4234 +4428 +5810 +2091 +4301 +1378 +2342 +3872 +1167 +2073 +6867 +7026 + +7005 +10018 +3954 +4497 +4951 +1283 +5383 + +4152 +4390 +8731 +8521 +5415 +1029 +8200 +3769 + +7224 +12281 +8337 +8969 +13938 +9651 + +10923 +14358 +8896 +8401 +7073 + +3934 +4424 +4538 +4371 +2335 +6363 +1264 +4331 +5107 +2270 +3109 +2547 +2304 +5911 + +4600 +5674 +2620 +1846 +3804 +2387 +4094 +3648 +4241 +5593 +2974 +2101 +1621 +3939 + +7429 +9425 +9653 +5835 + +13414 +4517 +15783 +3867 + +2287 +1019 +11604 +11910 +2591 +2468 +10543 + +13050 +1396 +13959 +6883 + +6303 +2889 +4047 +3954 +2245 +6672 +4574 +5731 +5879 +2837 +5859 +4812 +6785 + +10290 +10131 +5605 +3321 +2122 +6331 +9107 +7937 + +1786 +1362 +7409 +2093 +3901 +1306 +2089 +1558 +4163 +6118 +6270 +1929 + +4224 +3864 +3922 +3609 +2496 +2246 +5397 +1535 +5499 +4932 +3684 +1348 +3437 +3665 + +2973 +4506 +3971 +2511 +4563 +3168 +2687 +6249 +2593 +6470 +4100 +6309 +1316 +4362 + +14966 +2940 +11485 + +6675 +16873 +5695 +14706 + +3953 + +5620 +1678 +3630 +5015 +3277 +4957 +5288 +5555 +2860 +1750 +2795 +6170 +6308 + +3671 +1354 +4018 +4730 +4070 +1685 +4478 +1918 +5532 +3970 +3751 +4890 +4277 +2737 +5535 + +14799 +8129 + +5254 +2065 +1282 +2407 +5174 +4549 +4326 +1201 +3372 +3906 +6234 +4937 +4234 +2149 + +5194 +2519 +3555 +6929 +4367 +4547 + +1024 +37240 + +3693 +6526 +2679 +5434 +7924 +2974 +1754 +4287 +4744 +4187 +1348 + +6598 +5963 +6035 +5404 +3270 +1250 +5947 +3037 +3927 +3702 +5255 +1640 +6476 + +4499 +5207 +1991 +4613 +3088 +5024 +4737 +5160 +2450 +3582 +2605 +2573 +1100 +3732 + +1633 +5663 +2415 +4039 +4957 +2697 +5428 +5050 +3979 +3428 +4563 +3770 +3635 +4012 +4773 + +7377 +6189 +10812 +6905 +11196 +5394 +10135 + +10008 +2868 +2630 +8542 +8897 +2718 +5831 +4460 + +1303 +4771 +1574 +2960 +5070 +1596 +5530 +4177 +4210 +6465 +4179 +1000 +4460 +6173 + +6654 +1378 +2148 +8704 +6875 +4511 +7540 +6078 +5585 +4030 + +4333 +5953 +5095 +4782 +3651 +4673 +3267 +6389 +2358 +2120 +3684 +3034 +3420 +1322 + +8922 +9535 +16357 +16552 + +1378 +1039 +1262 +2067 +6491 +2776 +1352 +4914 +5832 +1369 +6105 +1384 +2474 +1704 + +6256 +2538 +4701 +4090 +4077 +5333 +2777 +4082 +4640 +2542 +6356 +3065 +4855 +2535 + +6510 +3709 +4197 +4344 +5906 +6852 +7398 +3578 +3308 +1239 +3817 +5676 + +5441 +3368 +1752 +2629 +1923 +4711 +1667 +3701 +1350 +4764 +6439 +2341 +4052 + +6407 +5327 +1229 +4834 +6008 +1302 +5595 +5260 +3680 +3220 +3154 +3353 +1942 +1740 + +2356 +1908 +3058 +4668 +3641 +1663 +4199 +2190 +6067 +3923 +3288 +1978 +6110 +5330 + +7020 +2487 +6521 +1084 +6582 +1784 +7861 +2759 +8077 +2961 + +68314 + +2160 +15170 +2267 +3867 +6851 + +8543 +4118 +22260 + +5313 +3525 +1483 +3613 +5798 +1472 +4020 +5607 +4391 +2502 +5512 +5535 +3755 +5590 +3668 + +25502 +7623 +15508 + +2138 +1227 +11355 +1288 +7062 +5391 +3994 + +7738 +3667 +5000 +1691 +7322 +8054 +4540 +2353 +6870 +8475 + +4289 +6415 +1251 +4933 +7224 +2608 +2320 +4432 +4637 +1395 +6575 +5581 + +6841 +1161 +5617 +12505 +6274 +9171 + +13548 +20154 +20682 + +2843 +7363 +5967 +15256 +16032 + +7940 +6992 +3940 +3100 +1334 +1389 +5182 +6666 +4030 +6116 +3036 + +35234 +19273 + +7268 +10689 + +1846 +4211 +1504 +3780 +3789 +2017 +6279 +5001 +2341 +6350 +5169 +1966 +2640 +5574 + +2125 +8432 +8339 +8130 +3506 +6115 +4684 +9548 +3300 + +6848 +1274 +6463 +12007 +10719 +10590 +5616 + +4471 +1304 +1635 +5960 +3702 +1747 +3658 +2446 +4724 +5675 +1739 +3170 +3556 + +9134 +12963 +6987 + +5728 +7877 +6499 +5909 +1119 +3090 +5033 +4884 +3151 + +10675 +8053 +9237 +14206 +11710 + +49154 + +5999 +3861 +1836 +3451 +3673 +5193 +2680 +6068 +1743 +5600 +4793 +6211 +2967 +1021 + +24720 + +8749 +11674 +4039 +5341 +14256 + +4553 +3893 +1528 +5490 +2417 +2392 +4023 +2430 +4649 +3163 +3673 +1378 +1957 +1055 + +10777 +4742 +16291 +16430 +12295 + +6502 +6052 +2944 +8166 +7567 +3580 +5957 +4691 +1623 +3269 + +1013 +5809 +16958 +4994 + +36633 + +8535 +13662 +24448 + +6651 +7911 + +19793 +2436 + +4671 +4420 +5322 +1215 +4952 +1193 +2387 +2799 +2748 +1343 +4123 +1715 +2978 +2148 +6050 + +2036 +4670 +5444 +4584 +4220 +6061 +2834 +2319 +1370 +4572 +4249 +4144 +3236 +3812 +3487 + +55521 + +3845 +1473 +6794 +4597 +5566 +2735 +2660 +6402 +2515 +3439 + +3772 +12809 +5790 +10817 +9729 + +1788 +2476 +4333 +2940 +7232 +3582 +8604 +3742 +7644 +4823 + +6128 +6737 +5712 +4168 +4465 +2183 +1217 +2257 +6326 +5966 +5699 +2985 +2290 + +5190 +4155 +10754 +9830 +4507 +2165 +7208 +4409 + +4256 +4158 +1941 +3124 +5852 +3376 +6411 +5508 +5072 +2374 +4189 +4032 +4957 +2050 + +2737 +6772 +4468 +2072 +1214 +6231 +7077 +6100 +6990 +5676 + +7474 +4524 +8778 +7129 +8151 +7975 +7277 +8672 +8097 +3847 + +29172 +7125 + +50466 + +14169 +22037 + +4483 +1801 +4863 +1920 +2776 +1407 +3998 +1142 +2664 +3920 +5708 +5481 +5701 +5159 +3654 + +1960 +4419 +5933 +4941 +4511 +1120 +5179 +3447 +5285 +3675 +1333 +1418 +4595 +4140 +2353 + +1995 +5588 +1443 +5681 +3439 +6178 +5795 +5144 +2788 +6232 +2620 +4665 +5624 + +37076 +7362 + +3885 +8268 +10947 +9084 +3016 +10383 +9594 + +16223 +16281 +5352 +11764 +10192 + +5248 +3151 +7341 +8125 +10671 +13510 + +1759 +7635 +7021 +3620 +7640 +4967 +3662 +3840 +7613 +3948 +1820 + +4010 +3936 +7375 +8060 +12396 +8236 + +5033 +2739 +4296 +5564 +6502 +3501 +5637 +5826 +5862 +5579 +6416 +2277 +2471 + +4325 +2621 +1600 +4290 +15494 + +6834 +15459 +10418 +12560 +6382 + +8598 +1089 +11386 +9538 +6933 +3943 + +14268 +7172 +7680 +15936 + +5695 + +69893 + +7293 +4968 +7862 +3210 +1924 +4742 +3519 +1095 +5922 +6335 +2405 + +4233 +3819 +7282 +10018 +3820 +5380 +9377 +8889 + +13183 +9964 +4473 +12469 +9862 +6567 + +4903 +1198 +5238 +1582 +1820 +6080 +10178 + +4554 +6315 +2818 +5956 +2491 +5291 +5056 +3699 +2843 +1243 +5430 +2175 + +31126 + +5392 +1590 +3738 +2507 +2817 +6963 +6140 +4606 +2814 +7044 +1282 + +12230 +1430 +4283 +11385 +2557 +6868 + +3871 +2558 +1957 +4058 +1935 +5738 +1513 +5744 +4130 +3321 +3760 +4155 +1063 +3694 + +67474 + +2215 +8962 +5442 +7390 +6223 +3648 +2390 +5464 + +5125 +3842 +2131 +3414 +6085 +3353 +3660 +1593 +4395 +2664 +4987 +2352 +5693 +1391 +1661 + +6017 +5013 +5243 +3734 +3116 +1541 +6456 +2806 +6143 +1344 +5977 +5422 +2326 +2164 + +33377 + +5950 +5168 +1348 +3144 +5760 +6974 +8537 +6664 +1248 + +9040 +4510 +5642 +8547 +9407 +5058 +6158 +7726 +6731 + +4182 +5246 +2686 +4196 +3809 +3253 +3260 +3162 +2703 +6373 +6136 +2904 +6356 +5038 + +3368 +11040 +5793 +13747 +10478 +5166 + +11697 +10072 +8434 +5732 + +5244 +6374 +1877 +2902 +4263 +4835 +2283 +2086 +6044 +6343 +6232 +2849 +3694 +6392 + +13062 +12405 +12869 +16366 +1652 + +8036 +1720 +7759 +13661 +1370 +3505 + +5885 +1708 +10440 +7438 +11480 +4904 +8387 + +4788 +10326 +6143 +11063 +9649 +9384 + +5849 +1935 +7411 +4694 +4435 +1321 +5301 +2096 +2422 +5484 +6560 +3070 + +5008 +5405 +9444 +6355 +13150 +12686 + +1618 +5831 +1957 +1288 +1382 +2946 +1926 +1828 +1646 +4823 +3637 +1309 +5727 +4450 + +66234 + +4016 +4075 +4551 +5869 +2866 +2461 +1055 +4712 +7220 +1973 +4650 + +2387 +1102 +4558 +2290 +1969 +3624 +2383 +4059 +4877 +3439 +6891 +3819 +5824 + +3440 +11447 +5522 +16700 + +8373 +1356 +7249 +8484 +6767 +7990 +8778 +2235 +5995 +8511 + +5466 +6088 +2583 +5235 +6093 +3089 +1570 +6112 +3668 +2187 +5582 +1380 +4800 +5529 +2987 + +12323 +4775 +11105 +3805 +7671 +6737 + +3197 +1256 +4539 +6383 +1476 +2134 +6785 +7337 +1229 +4965 +5055 + +13128 +8149 +4426 +8087 +2873 + +1695 +8214 +7147 +7216 +1070 +2801 +5033 +8103 +7750 +5749 + +4082 +1630 +1958 +6113 +4486 +2111 +1486 +6451 +5630 +5682 +4558 + +10475 +30751 + +5397 +5067 +1178 +2106 +5557 +4847 +1661 +3469 +4908 +2590 +4686 +2118 +4495 +2994 + +12590 +12902 +8742 +15433 +2777 + +7451 +8722 +7302 +2269 +9592 +6162 + +1907 +6741 +4442 +6526 +8289 +7479 +9481 +1642 +4982 + +2001 +12803 +7255 +13545 +10713 + +14621 +25826 +20771 + +1055 +8331 +7422 +8400 +2208 +6688 +8425 +6883 +4192 +4725 + +9970 +10127 +2777 +3933 +9274 +3791 +9906 + +2779 +1118 +2823 +1563 +9917 +6065 +1863 +1885 + +5053 +1922 +5356 +8266 +7335 +4260 +8730 +7307 +3140 + +4340 +1080 +2120 +5498 +6769 +6170 +2944 +4677 +1155 +4676 +2420 +4945 +5941 + +14838 +3844 +19712 +16283 + +1906 +3672 +4274 +6550 +6072 +5299 +4493 +3348 +2804 +3747 +3208 +5359 + +59156 + +6128 +5959 +12262 +12166 +4945 +9635 + +8095 +1757 +13656 +7215 +2545 +6298 + +7873 +6515 +6407 +4182 +4911 +3966 +1942 +7281 +5082 +7446 +5545 + +3876 +5618 +4226 +4445 +3915 +1250 +5469 +3872 +5157 +5539 +2894 +1357 +1419 +4214 +3009 + +3364 +6618 +1432 +7583 +6192 +2529 +2076 +6231 +7333 + +5028 +2989 +3801 +1895 +2367 +5747 +2724 +1304 +3085 +2524 +1295 +1022 +2613 +4239 +4413 + +3418 +23885 + +3895 +3302 +1097 +3150 +1379 +1815 +1484 +2074 +2616 +3395 +6100 +5488 +1006 +3046 + +1951 +8238 +6010 +3652 +6640 +7990 +3900 +8191 + +6978 +3025 +1966 +7152 +5963 +7326 +1866 +2507 +4764 +1434 +3194 +3326 + +3081 +6828 +6495 +3257 +4236 +4938 +7090 +2826 +6614 +1341 +7098 +6771 + +18885 +3826 +13103 +1193 + +16653 +13676 +19294 +13878 + +7460 +4327 +7335 +4898 +6259 +7941 +5940 +5603 +3095 +5674 +2886 + +8680 +4662 +8044 +8210 +5886 +9057 +7917 +3258 +5995 + +2800 + +31568 + +5423 +33845 + +8988 +13780 +9059 +14650 +9824 + +10327 +13747 +10937 +4594 +6882 + +2696 +2860 +1070 +1662 +6098 +2369 +2821 +3603 +3593 +5347 +4871 +4967 +2211 +3330 +5226 + +8520 +1896 +1906 +5172 +6845 +1565 +6366 +5509 +5068 + +4047 +4661 +2384 +1904 +4705 +5402 +6650 +6120 +4834 +5897 +6492 +6200 +5868 + +4130 +1530 +9654 +9306 +8529 +2508 +8918 +4040 +3717 + +3245 +4195 +11698 +10053 +6635 +4749 + +12283 +11894 +8168 + +6418 +7151 +4827 +2391 +8643 +2315 +8664 +3547 +6900 +4418 + +65083 + +5164 +1748 +8739 +4945 +2604 +5493 +5310 +3763 +6011 +4091 + +4342 +2566 +6021 +4067 +1385 +2486 +4444 +1713 +3380 +4253 +4720 +1602 +4814 +3234 +1739 + +13603 +22634 + +7845 + +4139 +8832 +7441 +1967 +6707 +7981 +3416 +10633 + +4808 +9206 +6975 +4257 +6024 +5176 + +10639 +9329 +5010 +7215 +4522 +8168 +9936 +9792 + +4326 +4601 +6508 +2501 +3866 +3060 +2188 +6429 +1014 +1383 +6937 +5313 +4392 + +8977 +2420 +1013 +4267 +9689 +2955 +5583 +2947 +5570 + +5067 +1139 +4531 +3001 +7698 +2028 +8025 +1424 +6837 +1357 +2186 + +5433 +19739 +5321 + +5019 +4714 +2688 +5290 +1593 +1320 +1703 +2978 +1476 +3034 +3538 +2825 +5819 +5547 + +6441 +1104 +3128 +7940 +5977 +8434 +4493 +2139 +1617 +4933 + +3219 +3273 +12383 +6076 +11222 +5523 + +8875 +1005 +4958 +3234 +3196 +5527 +9875 +7306 + +1591 +6031 +2124 +1224 +7008 +2559 +4540 +7670 + +5927 +4323 +5630 +1067 +5482 +1939 +5428 +3416 +3494 +2469 +4287 +5538 +1190 +4234 +1734 + +10808 +15234 +14069 +10497 +7697 diff --git a/2022/day01_part1.py b/src/2022/day01_part1.py similarity index 100% rename from 2022/day01_part1.py rename to src/2022/day01_part1.py diff --git a/2022/day01_part2.py b/src/2022/day01_part2.py similarity index 100% rename from 2022/day01_part2.py rename to src/2022/day01_part2.py diff --git a/src/2022/day02_input.txt b/src/2022/day02_input.txt new file mode 100644 index 0000000..4473a9d --- /dev/null +++ b/src/2022/day02_input.txt @@ -0,0 +1,2500 @@ +C X +C X +C X +A Z +C X +C X +A Y +B X +B Y +B Z +C Y +C X +C X +C Y +B Y +C X +C Y +B Z +C Y +B Z +B Z +A Z +C X +C X +C X +B Z +C Y +C X +C X +B Y +C X +B Z +C X +C X +A Y +C X +A Z +B Z +B Z +B Z +B Y +B Z +C X +B Y +C Y +C Y +B Z +C X +C Y +C X +C X +C X +C Y +A X +A X +C Z +C X +B Z +A Z +C X +B Y +C Y +B X +B Z +C Z +A X +C X +B X +C Y +C Y +B Z +B Z +B Z +C Z +A Z +A Z +C X +C X +C Z +B Z +B Y +C X +A Z +C X +B Y +C Y +B Z +C X +A Y +C Y +A X +B Z +C Y +C Y +C X +C Y +C X +B X +C Y +C X +B Y +A Z +B X +B Y +C Z +C X +C X +C X +B Z +B X +B Z +C X +B Y +B Z +C X +C Y +B Y +C Y +C X +B Z +B Y +B X +A Z +A Z +C X +C X +B Z +B Y +C X +C Y +C Y +A X +C X +C Y +A Y +C X +A Z +C Y +B X +B X +B X +B Y +B Y +C Z +C X +A Y +A Z +C X +B Z +C Y +C Y +A Y +B Z +B Z +C X +C Y +B X +C Y +B X +A Y +C X +B Z +A Z +C Y +A Z +A Y +C Z +B Y +A Z +A Y +C X +B Y +B X +C X +A Y +B Z +B Z +B Y +B Z +C X +C Z +B Y +B Y +A Y +B Z +B X +B Z +A X +C Y +B Z +A X +A X +B Y +C Z +C Z +B Z +B X +B X +A Z +A Y +A Y +C Z +C X +C X +C X +B Z +C Y +C Y +C Y +B X +B Y +A Y +B Z +B X +B Z +C X +B X +C X +C X +B Z +C Z +C Y +C X +C X +B Z +A Y +C X +C X +A Z +B Y +B X +B Y +B Z +C Y +A X +B Y +C X +A Z +B Z +A Y +C X +B Y +B Z +A Z +B Z +C Y +B Z +A X +A Y +B X +A X +B Y +C X +A X +B X +A X +A Z +B Z +C X +C X +A Y +B Z +C X +A Z +B Z +C X +C X +A Z +C Y +B Z +C X +B Y +B Y +A Z +C X +B Z +B Y +A Z +B Y +C X +C Y +A Y +B Y +C Z +A Y +C Z +A Z +B Z +C X +A X +B Z +C X +C Y +A X +C X +A Z +C Z +C X +C Z +B Z +C Y +B Y +B Z +C X +C X +B Y +C X +B Z +C Y +A X +A Z +B X +A Z +C Z +C Y +C Y +B Z +C Y +C X +C Y +B Y +C X +C X +C X +B Z +C X +C X +B Y +C Y +A Z +B Z +C Z +B Z +A Y +B Z +C X +C Z +B X +A Z +C X +C X +C Y +B Z +C Z +B Z +A Y +B Z +C Z +B Z +A Z +C X +A Z +A X +C X +B X +C X +C X +C Y +C X +C X +B Z +C X +A Z +B Z +B Y +C X +A Y +C Y +B Z +B Z +C X +A X +C X +B Z +C X +B X +B X +B Y +B Z +B X +B Y +C X +C X +B Y +C X +C X +A X +B Y +A Y +B Z +B Z +A X +C X +C X +C X +A Z +C X +B Y +A Z +A Y +B Z +B Y +B Z +C X +A Y +C X +C X +B Y +A X +A X +B X +C Y +C X +C X +B Y +B X +B Z +C Y +B X +C X +B Z +B Z +B Z +C X +C Z +A X +C X +C Z +A Y +B X +C Y +C Y +B Z +B Z +C Y +C X +A Z +A Z +C X +C Z +C X +C X +C X +C Y +B Z +B Y +B Z +C Y +A Y +A Z +C Y +C Z +C Z +B Z +B X +C X +C X +C X +B Y +C X +C X +C Z +A Z +C X +B X +B X +C X +C X +C X +C Y +B Z +B X +C Y +C X +B Y +A Y +A Z +C X +C Y +A Y +B Z +C X +B X +C X +C X +B X +B Z +B Y +C X +C Y +A Y +C X +C X +B Z +C Y +B Z +C Y +B Y +C Y +B Z +B Y +B Z +B Z +C X +B Z +A X +C Y +C X +C X +C X +C X +C Z +B Z +C X +C Y +C Z +C X +C Y +B Z +B Z +A Z +B X +A Z +B Y +A Y +C X +C X +C X +C X +C X +C X +A X +C X +C Y +B Z +C Y +C Y +C Y +B Y +C X +B Z +B Z +A X +C Z +C Z +B Y +B Z +C X +A X +C Z +B Z +B Z +C Z +B X +C X +B Z +A Z +B Z +C X +A X +B Y +B X +B Y +B Z +B Z +C Y +B X +B Y +C X +B Z +B Z +B Y +B Z +A Y +A X +C Z +C Y +B Z +B Z +A Y +A X +B Y +C X +B X +A Y +B Y +A Z +A X +B Y +B Z +A Z +C X +C X +C Y +C Y +B Y +C X +A Z +B Z +A X +C X +C X +B X +C Z +B Y +C Z +C Y +C X +B X +C Y +C Z +C X +B Z +C Y +C Y +B X +B Y +C X +B X +B X +A X +A Z +A X +A Y +C Z +B Z +C Y +C X +B X +A X +C Y +C X +C X +B X +B Y +A X +B Y +A Z +C X +B Z +C Y +B Z +B Z +B Z +C X +B Z +B X +C Y +C Y +C Y +B Z +B X +C Y +C Z +A Z +C Y +B Z +B X +B Z +B Y +A X +B Y +B Y +A Z +A X +B Z +C X +C Y +C X +C X +C X +A X +A Z +C Y +B Z +B X +C Z +C Y +C X +A X +C X +B X +C X +A X +B Y +C Y +B Z +C X +B Z +A Y +C X +C Y +A Z +B Z +B Z +C X +A Z +A X +C Y +C Y +A Z +C X +C Z +C Y +C X +C X +A Y +C X +C Y +A Y +C Y +C X +C Z +C X +A Y +C X +B Z +C X +C X +C X +B Y +A Y +A Y +C X +C X +B Z +B Z +C X +B Z +C X +A Y +B Y +C Y +B Z +C X +A X +C X +C X +C X +B X +B Y +A X +A X +B Z +C X +B Z +C X +C X +A Y +A Z +B Z +C X +B Z +B X +C X +B Y +B Z +B Z +C X +B Z +B Z +B Z +C X +B Y +B Z +A Z +C X +C X +B Z +A Y +B Y +C X +B Z +B Z +A Y +B X +B X +A X +A X +B Y +C X +A Z +B Y +B X +C X +B Z +B Y +A Z +C X +C X +B Z +C Y +B Z +C X +C Y +C X +C Z +C X +B Z +B Z +B Z +C X +C X +C X +B Z +C Y +B Y +B Z +C Z +C X +B Y +C X +A X +C Z +C X +C X +B Z +A Z +C X +C Y +C X +B Y +C Y +B X +C Z +C X +C Z +C X +B Z +B Y +B Y +A Z +B Y +C X +A X +C X +C Y +B Z +C X +C Z +C Z +B Y +C Y +B Z +C Y +C Y +C X +C X +A Y +B Y +B Y +C Y +B X +B Z +C X +C X +C Y +C X +B X +B Y +A Z +B Z +B Z +C X +C X +B Y +C X +B X +B Z +B Y +B Y +B Z +B Z +A Y +B Y +B Y +B X +A Y +C X +C Y +A Z +B Z +C X +B Y +C X +A Z +B Y +C X +C X +B Y +B Y +C Y +C X +B Y +C X +C X +B Z +C X +C X +C Y +B Z +C Y +C Y +A Z +C Y +B Y +C X +C Z +A X +C X +B Y +B Z +C Y +A Z +B Y +C Y +C Z +B Y +B Y +C X +C Z +B Z +C Z +C X +C X +C X +B Y +B Y +B Y +A Z +B Y +B Y +B Z +A Y +B Z +C X +C Z +B Z +C Z +B Y +B Z +C X +C X +C Y +C X +B Y +A Z +C Z +B Z +C X +B Y +A X +C X +A X +A Z +C X +B Y +B Z +B Z +A Z +C Z +C Y +C X +C Z +B X +C Y +C Z +B X +B X +A X +A Z +B Z +A Z +A X +C X +C X +A X +B Z +C Z +C Z +A X +B X +C X +B Z +B Y +A Z +A X +B Y +B Z +C X +B X +B Y +C X +C X +B Z +C Z +C X +C X +B Z +C X +B Z +C Y +C Y +C Y +B Z +C X +A X +B Y +B Y +A Y +C X +C X +C X +B Y +A Z +C X +C Y +C X +C X +B X +B Z +C X +C Z +A Z +B Z +C X +A Z +B Z +A X +C X +C Y +B Z +B X +B Y +B Z +C X +C X +C X +C X +B Y +C X +B Y +C X +C Y +B Z +C Y +C X +A X +C Z +C Y +A X +C X +B Z +B Y +B Y +C Y +C X +C Y +C X +B Z +B Z +C Y +B Z +B Z +B Z +B Z +C X +B Z +C X +A Z +B Z +B Y +A X +B Z +C Y +B Y +C Z +C X +A X +C X +A Y +B Z +B Y +B Z +C X +C Y +A Y +C X +C X +B Z +B Z +A Z +C X +A Z +C X +A X +B Y +C X +A Z +B Z +B Z +C X +C X +C Z +B Z +C X +A X +B X +B Y +C X +C X +C X +C Y +B Z +C Y +C X +C X +B Y +C X +A Z +A Z +C Y +B Y +B X +B Z +B Y +C Y +C Y +C X +A Z +B Z +B X +C X +C X +A X +C Z +A Y +C X +C Y +A Z +C Z +B Z +B Z +C X +B X +A Z +B Y +C X +A Z +C X +C Y +B Y +B Y +B X +B Z +C Y +B X +C X +B Y +C X +B Y +C X +B Y +A Y +A Z +C Y +A X +C X +C Z +B X +C Z +C Y +C Y +C X +C X +C X +C Y +C Z +A Z +B Z +C X +A X +A Z +B Y +C X +C X +C Z +C X +B Z +C X +B Y +B Z +B Y +C X +C Y +B Z +C Y +A X +C X +A Z +B Y +B Z +C X +B Z +C X +C Z +B Y +A X +C X +C X +C X +C X +B X +B Z +A Y +B Y +C X +B Z +C Z +C Y +A Z +C Y +A Y +B Z +C X +B Z +B Y +C Y +C Y +C Y +B Z +B Z +C X +C Z +C Z +B Y +B Y +C Z +B Y +C X +C Y +B Z +A Z +C Y +A Y +A X +B Z +B Y +C X +B Z +C X +A Z +C X +B Z +A X +C Y +C X +A Z +B Z +C Y +A Z +C Z +C X +A Y +B Z +C X +C X +B Y +A X +C Y +C X +C X +C Z +C X +A Y +C X +C X +A Y +B Z +B X +C X +B Z +C Z +C X +C Y +C Y +C X +B Z +A Y +C Y +C Y +B X +C X +B Z +B Y +B X +C X +C Z +B Z +B Z +B Z +C X +B Z +A Z +C X +C Y +C X +C Z +A Y +C Y +C Y +B Z +B Z +A Z +C Y +C Y +C X +B X +C X +C X +B X +C Z +A Z +A Y +C X +A Y +B Y +A X +C X +C X +B Z +B Y +C X +A Y +B Z +C Y +C X +C X +C X +B Z +B Y +B Y +C Z +B X +C X +C Z +C Z +C X +C X +C Z +C Z +B Z +C X +B Z +B Z +A X +A Z +B Y +B Y +A Y +A Z +B Z +C X +C Y +C X +A X +C X +A Y +A Z +A X +C Z +B Y +B Y +B X +C Z +B Y +C Y +B Y +C X +C Y +B X +A Y +C X +C X +B Z +C Z +A Z +C X +C Z +C X +A Z +B Z +B Y +C X +C X +B Y +B Y +C X +C Y +C Y +B Z +A Y +A Z +A Z +C Y +C X +C X +C X +C X +A X +A Z +A Z +B Y +B X +C Z +C Y +B Y +B Z +C X +B Y +B Z +B X +A Y +C Y +B Z +B X +C X +B Z +C Y +A X +C Z +C X +C Y +B Y +C X +C Y +C X +C X +B Y +B Y +B Z +C X +B Z +A X +C Y +B Y +C X +C X +B Z +B Y +B Y +C X +C Y +B Y +C Y +C X +C X +A Z +C Z +C Y +B X +B Z +B Z +B Z +A Y +B Y +C X +B Y +B X +C X +C X +A Y +C Z +A X +B Z +C X +C X +B Z +A Z +A Z +B Z +C X +C Y +A Z +B Z +C Z +C Z +C X +C X +C Y +C X +C X +B Z +A X +C Y +C Y +B Z +C Y +B Y +C Y +C X +C Y +B Y +C X +C Z +C X +C Z +C Y +C X +C X +A Z +B Y +C X +C X +B Z +C Z +B Z +C X +C X +C Z +C X +C X +B X +C X +B Z +B X +B Z +B Z +B Z +C X +B Y +B Z +C Y +C X +B Z +B Z +A Z +C X +B Z +A Z +B Z +B Z +B Z +C X +C X +C Y +C X +C X +B Z +B Y +B X +B X +C X +C X +B Z +B Y +C X +C X +B Z +C X +A Y +C X +C X +C X +B Z +C Y +C Y +B Y +B Y +B Y +A Y +B X +B Z +B Y +A Z +B X +C X +B Z +B Z +C Y +B Z +A X +B Z +C Y +A X +B X +A Z +B Y +B Z +C X +B Y +C X +B Z +B Z +A Z +B Y +C Y +C Y +C X +C Z +B Z +C X +C Y +A Z +B X +C X +A Z +C Y +C X +C Y +C X +B Z +B Z +C X +B Y +B Z +C X +C X +B Y +A Y +C X +C Z +C X +C X +C Y +C X +C X +C X +B Z +C X +B Y +C X +C Y +C X +C Y +A Z +B Z +A Z +C Y +C X +C X +B Y +A Z +C X +B X +C X +C Z +A Z +B Z +B Z +C Y +C Y +B Z +C X +C Z +A X +C X +B Y +B Z +B Y +B Y +C Z +A X +C Z +A X +B Z +B X +C X +B Z +B Z +A X +B Y +B Z +A X +C X +B Z +B Y +C X +C X +B Y +C Y +A Y +C Y +B X +B X +C X +C X +C Y +B Z +B Y +B Z +C X +B Y +B Y +B Z +B Y +B Y +C Y +C Z +C X +B Z +C X +B X +A Z +C X +C X +A Y +C Z +B X +C Y +B Y +C Z +B Z +C X +B Z +C X +C X +C Y +C Y +B Z +C X +C Z +C X +B Z +B Z +C X +B Z +C Y +C X +C X +A X +C X +B X +A Y +C Z +C Y +B Y +B X +C X +C Z +B Z +C Y +C Z +C X +C X +B X +A Z +B Y +C Z +A X +C X +C X +A Y +C Z +B X +B Z +C X +B Z +C Y +C Z +B Y +B X +C X +A Y +A X +C X +C X +B Z +C X +C X +C X +B Z +C X +A Z +B Y +C Z +C X +A Z +C X +C Z +B Z +B X +B X +B Y +C Y +A X +A X +A Z +C Z +C Y +A X +C X +A Z +B X +B Z +C X +B Y +B Y +B X +B X +B Y +B Y +B Z +C X +C Z +C Y +B Y +B Z +A Y +A Y +C X +B Z +C X +C X +B X +C X +B Z +B X +C Y +C X +C X +B Z +C Y +B X +A Z +C Y +C Y +C X +C X +B X +B Y +C X +B Z +C Y +B Y +B Z +A Z +C X +B Z +C X +B Z +C X +C X +C X +A Y +B X +A Z +C Y +C Z +B Y +B Y +A Y +B Y +B Z +B X +C X +B Y +B Y +B Z +A X +C Y +B Z +C Y +A Y +C X +B Z +A Z +B Z +B Y +B Y +B Y +B Z +B X +B Z +A Y +C Y +B Y +C X +C Y +B Y +B Z +C Y +C X +B Y +B Z +B Y +C Y +B Y +A X +C X +C X +B Z +B Z +B Y +B X +A X +B Y +A Z +A X +C Z +B Z +C X +C X +A Z +B Z +B Z +A Z +B Y +C X +C X +B X +C X +C Y +C X +B Z +A X +C X +B Y +C Z +A Y +B Z +C Y +A Y +B Y +B Y +B Z +B Z +C X +B Z +A X +C X +B Z +C X +C X +C X +A X +B X +A Z +B Z +A X +B X +C X +B Z +A Z +B Z +A Z +C X +C X +C X +C Y +B X +B Z +B Z +B Y +A Y +C Z +A X +B Y +C Y +B Z +B Z +B Z +B Z +C Y +B Y +B Z +B Z +C X +A Z +B Y +A Y +B Y +C Z +B X +C Y +B Z +C Y +C X +B Y +B Z +C Z +A Z +C Y +B Z +A X +C X +B Y +B Z +B X +C X +B Z +C Y +C X +C Z +B Y +C X +B Y +B Y +A X +C X +B Y +B X +C Z +C X +B Z +B Y +C Y +B Z +C Y +C Y +C Z +B Z +C Z +A Y +B X +B Z +C X +B Z +B X +B X +C Z +C Y +C Z +C X +B Y +C X +A X +B Y +B Y +C Y +C X +A Z +B Z +B Z +A Y +B Z +A X +C X +A Z +C X +B Y +C X +C X +A Y +A Z +B Z +A X +A X +B X +C X +C Z +B Y +A Y +B Y +A Z +B Z +A Y +B Z +C X +B Z +C X +C X +A Y +C X +C X +B Y +A Z +B Y +B Z +B Z +B Z +B Z +B Y +B Z +B Z +C X +B Z +C X +C Y +C Y +B Y +C Y +C X +A Z +B Y +A Z +B Y +C X +B Y +B X +B Z +B Y +B Y +B Z +C Z +B Z +B X +C X +B Z +C X +C X +A X +C X +B Y +B X +C Y +C Y +C Z +B Z +A Z +C X +B Z +B X +A Z +C X +C Y +C X +C X +A X +B Z +B Z +A Y +C X +B Y +B X +A Y +B Y +C X +C Y +C X +B Y +B Z +C X +B Y +C X +C X +C X +C Y +B Z +B Z +A Y +B Y +A Z +B Z +C X +B X +A Y +C Y +C Z +A Z +C Y +C X +B X +A Z +A Z +B Y +C X +B Z +B Z +C Y +B Z +B Z +C X +B Z +C X +A Z +C Y +B X +C Y +A X +B Y +B Z +A X +C Y +C X +C Y +C X +B Z +C X +C X +A Y +B Z +B Y +B Z +C Y +A Z +B Z +C X +B Y +C X +C X +C Y +C Z +B Z +B X +C X +C X +B Y +C X +C Y +A X +C Y +C X +C X +A Y +B Y +B Y +A X +C Y +B Z +B Z +C Z +B Z +B X +B Y +B X +B X +C X +C Y +A Z +C Z +C Y +B Z +B Y +A Y +C X +B Z +A X +C Y +A Z +C X +B Y +C Y +A X +A Z +A Z +B X +B Y +B Y +C X +B X +B Z +B Z +B Y +B X +B X +C Y +C Y +B Y +C Y +C X +B Y +B X +A Z +C Z +C X +B X +B Y +C Y +C Y +A X +C X +A Z +C X +A Y +B Y +C Y +A Z +B Y +B Y +A X +B Z +B Y +B X +A Y +B Z +C Z +C X +A Z +C Y +A X +A Z +C X +C Y +B Z +C X +B X +C Y +C X +B Z +C X +C X +B Y +B Y +C X +C X +B Y +C X +C Y +B Y +B X +C X +B Y +C Y +A Y +B Y +B Y +B Z +B Y +B X +A Y +C Y +C X +C Z +A Z +C X +A Z +C X +A Y +B Z +C Z +C Y +B Z +B Z +A Z +A X +C X +C Y +C X +C Z +B Z +A X +A Y +B Z +B Z +A X +C X +C Y +B X +C X +C Z +A X +B Y +A X +C Z +B Z +C X +C X +C X +B X +C Y +B Z +A X +B Z +A X +C Y +C X +A Y +C X +A Z +B Y +C X +C Y +B Z +C X +B Y +B Z +B Y +B Y +C X +C X +B Y +C X +C Y +C X +C Y +A Z +C X +C Y +B X +A Z +B Y +C X +C X +C Z +B Z +B Z +B X +C Z +B Z +B Z +C X +C X +C X +B X +B Z +B Z +C X +C X +C X +A X +C X +C Y +A Y +B X +A X +A Z +A Y +C X +B X +C Y +C X +C Y +C X +A X +B Z +A X +A X +B Z +C X +B Y +C X +B Y +B Z +C X +C Y +C Z +C X +C X +C X +C X +B Y +C Z +A Z +B Z +B Z +C X +C Z +B X +B Z +A Z +B Z +C Z +C X +C Y +B X +C Y +C Y +C X +B X +B X +C Y +C X +B Y +C Y +C X +B Z +B Z +A Y +A Z +C X +B Z +C X +A Z +B Z +C X +C X +C X +B Z +C X +B Y +B Z +A X +B Y +B Z +B X +C Y +A Z +B Z +C Y +C Y +C X +B Z +C X +C X +C X +C Y +A Z +C Z +B X +B Y +B Y +B Z +C Y +B Z +B Z +C Y +C X +B X +C Y diff --git a/2022/day02_part1.py b/src/2022/day02_part1.py similarity index 100% rename from 2022/day02_part1.py rename to src/2022/day02_part1.py diff --git a/2022/day02_part2.py b/src/2022/day02_part2.py similarity index 100% rename from 2022/day02_part2.py rename to src/2022/day02_part2.py diff --git a/src/2022/day03_input.txt b/src/2022/day03_input.txt new file mode 100644 index 0000000..3039ac8 --- /dev/null +++ b/src/2022/day03_input.txt @@ -0,0 +1,300 @@ +MVWpzTTrTFNNLtssjV +hRJncnJCnhPCnBSbCQRhhQRPFHmsbHLzbLNHsjNNFmGGGsGF +lSBQJBBBBcnccnQvBnPQznfrgwlrTZfDwTfWqrrpgMpw +sRPgrzSgrSbfTrgspBPsDWWTmdnvdZWZwTmwvdmd +tVGpCGqCGjlHcNGVNHZDmnZMWdWMWCdZDvnZ +HqpQptLlclLGtlpcjHNhQqfRhrSBrrbfbrSRrsPfBSgg +JpjLbQbFPBjDBBJLWltglfBfhhlcctht +vNFmsdFsnmzGtWvgzhzc +rqwRCCqmCTqHCnqRNTNFsJVMQSjLRbbVVbjQVLbLSV +mLNNCNDwBwDnmCwnJwLRvdlqZclRccsgvcZndc +QWMtVWbpVlgHHcgMHs +VsTVWhThsVQWzjtQPpVWjWbpwJNCJDCzSNNCCCSfmfBCSGLL +NbSfHnwDvwwfHwwQsHbWPgrsZsZjRPLRgLWhWP +lmMlTGFzVmzqjGLLZWWGhrCh +qFclMprqmrvbcnwDQtNQ +tWQZFvvtWQWbqQQggZZLvpLrpzDrmGDmmDHPzPzHrfnHTG +NMlhlTMccTCVBlRNHzJnzDDmnJmnGGBf +NMMSSSSSlNVMdjdNSNNhFwTbvbLqjbtLwWQwZqgg +jPwcJwRmmhJpbhNJVgDbrHzzzQzzBQHg +tdZqlCnnnlvZCqlnlCSqZdFCHGDBgzsDzssBtHGLQtrHsssL +TZZFSdrdlZMFZRMwMPmNcwNmwm +nsdhzmDBGQWQPvJPjbbW +gCgBqCNpMHTwgwqMPRJJTtWjbFRJFJvP +ZlCwBrwgmzhGzDrd +sTBHfcnBTnqHRvqPgFFbLtrQTPLjjm +GWzpwSJSpbwbNNGJPQrrtrrrrgzLtjzm +NNSlCCdplWwplCwSndnssdZfqVbHvfqc +rrfHgqnlllRrDgrCbQfszMPtmzPQzFsFMQ +JJLGVGjcwVcPQNNNtRPmLM +WThVJJWJBdGwBpBTqDrSRCCggShqbSCb +TbCqzqzmbCffzDbHRddLbdRFRS +ZmvZJPjPwwWNZJGtWSDRRDFWSLhhhMVVWL +ZwplGwmptNjZnjvnGGPjJlZppTrTsCczfggBgfgfggCsBrqr +gMBBbfBbBMfnMsvRvWJhDsQW +ZZqHLzczjjsLzlpjqTprNJvhQpRvtRJJQrtQtJ +llZlzZZzPZZqsTZscHczfnSwSPSwwgSBwwSnPwnf +chMtcPPgQtthqgvczhMTcCSBLBlGpsFnBnnsGvLplSFG +bhRmJWDRmHSmFGBnGBps +jdDZWbrDdDbbdbDrRRWwRjZRVqztCzqtcThcTQtgqVMMVzjq +flNmNHgcZwTzRLzMLRPlzz +nntqBJtFbbCbBVCnBtFjJjhVhLzLvRLvgRRvPvpMpvpp +CgJWjJQDjgBtnGNGfcssNfcwNW +MrMpMrGBznjPMGCmCrrjdwndfJLQNfdLQNdNggdL +sJVcZqvhZtVqhDFFsDJslcdwgwvwQwwQNbbTbwfLLTgL +RDDRcsSsstJstVDDqctszzmRmGjpjBRHPmmGHGrj +tdplZtlrBGwTlLQQ +sfsPPvNhWLQBhGQG +zPVfzVbbMcscvVfzzNgcJHnJZgtrrndJqjJqndrL +nglLjRCCHLLCnNCLHQnFNQmmVMbVmwMwlMwMMMWwBTsT +cqtfcqZpzhSvvBfWwbvrbT +PPqpDSqcSJPdPhtPtqZcpPtGjFRFFFNLJFGRgjFbGRNbHn +gjtRSLMqLdSgLMCltTSDQcQQqhDcfcfrWDhWrr +GwFZCwNzFJsPmFFmZmPPNhvDDfDWWmpvQWWfVDQppW +swNGZbPBGwnCgBBlBljl +BsrDsnQGwFFQQtfNTBNSffBgBt +VJlhWVLlRppLQZTCbtZTttgJ +ppLqqRhQdRPhqPVhdPjhljqHFnGnzFrjFFDznHFHrmwwnH +CJMmmJLmlshCCdmzjHjPWztgdnjttt +GwZvGwrgTcFpzHWjnT +GbqrvrRwbrbGbwwZBbgfhmJMmsDJhNRfLChhCh +CfgfjCLCgfgFgBhBsccswQwtsQHvBBtc +SbSMGbnmDMGJWmRmDmvzwtcscWtQzsrPsvHc +DbJdNpJSnMSJmpSSNVqgqgTTFVQTFqdZLq +MBMCmlllPSSlmmPPjCMpPgggJcnZgntJsDvHsDZt +hrNzhrRNbrhbGRbfpVLRGNqqngvnttngJctgDZJGcZvHvZnc +LTTzVqppSmwdTmQW +mmlBQmLbsbmRnFnwlqqprF +dZScZSZSdHcNMDcJwLqRfppzpzfTpHfF +JLWJLJJJdMmGtgCWjQjt +PPMzpVDblwGVMMzDLLjrcrjdzjdTzLjd +RRcCJRcNQRBqtCFBRJJsZWBWrjLWLHZZWndBLWjh +qQQtttNqsqqtJRgqQfcpcgDcbggplGbfMp +QmmSTQPmLSmjpczMJtwPzg +BHHHdwdvDpllvctjZv +HdrDHNfrrBDGGBhBNfHNsLFqmbRQSwqmGTLnTbSF +gcMmgRQPqqPPsgjFSvctCHvHllSSHcvd +JTWfZwhTwzbWwTFTrZnTrDDlDSVtVHLVShtvSHvlHL +bWbWBfzTfwrWJNbTrnzfTwJFpmMQgqsFRsQGqRMggPmPBG +GqCWpGGLpmpWjbSDGjGGmwCzZlvMBTrCvsrlwwswCl +FPFHFVdJgQHJZnslrgvsTrwMlNgw +hQVchcdcZZpZqcDG +JbBRgBsRffgPPFQttQvQQMvG +dmNZgmZVtGTNtNGC +ZqqndLZnccqRbsrgpggsBc +DDvMVmTjwFWPBBTzBF +cqnggcbNNCqbQQqbZbpfQpqgRWlFhLRBhRzRPLFJhlJBfPLh +dpscpcncbbqcpMVSvSrPDMsrjr +hGCGZmVRRcMVsGMtmZWssmFLzbFblnnzfmqbfnzNNb +wjrSPBJdSjjDrggpSJpdrSnlFNlzLTnqNLqqpbqqfMln +dMwPBHPPJHDdvrBBhshWCGcsQRcHRZGV +vdHwhqdtLdVnHBZbFBFzbBPS +TmNCLNDpWfCNmpCgTWNTDMMZlzSggBMzlZlMBlBbZZ +NQfWcscDNQrhqvGLrdhVjh +lZLqzzqvgrCRcQcCLD +HSVVwNTJzwVNTDQrRrrdrBwdhd +TpNTzsfSTVsSpHVppzFpgvvlqZWZPMvMjPPGGsgP +BCMLshLdLDDCgwFRwHHqqRqRWd +QnSqQlGSfpQzTQJNTPNwNPFRFcccHc +mfJJmztnQpGpvnSzGrsqgrhrBBhqjBrthL +BSlmzmlvdNnlQlQQJnJHRVFVFVVqMtqRMfSfCw +WBPsDPBBjfssFHMRRq +DLWpGhbPjbhZrhZDnBQgdNZmQNgmvdzg +WWvgBFgHWChBzgBFbjbtPtnPrsHlsRMrwRrMRR +SGfNpfdGfVpVSGGppSDdwRwclMlfPMwccsntPqPw +TVdpQDSpQZJpVpDQQFBbthvmWzmgvhbjzJ +VVCCbzqdbzhFHvbdhZFPmhCPSNRNGSrPJfTNRSGJfGwPST +LngtBnlcnDvLcTTRfTTwRtGNTG +DpnBjMpLlLDQWDgvpLvbqzmbjzVjVHqbFFqbFq +SbzMbNQQSDdmvqqzdSlWFpwZnvpFWWllpFww +CjLPTPjjLCPtBCLJjBLPLBTFsFFgfwwpZgplpgFnWWRl +nPncrBHGnmrbdmdmNN +FnlblGlTTbNVLVtRvQQvgqRQBCvgNr +DPMDMpMHmnzjPqDhQWvvQvhghq +zMMcddznsjFTldVGlFGT +cLSNGLhmRRVmlVCq +HvzbQBzBMQMpQDpCSlSVZRSCqV +QwWznWnTbQSMMJQHnvwbWjrhNhLFgsGNNrFLNnFNhd +dBrWNQWWcTNqqnNN +bPlmgRgRghlCVlbhwZccCZjZqvmqvmTTvGqmJTvqnGTGvLLJ +DCDZhjllcpDMrSQS +ddtNNTFTwRzGRGCwqnBMjlqMHMfqnB +hDpPsQLLSprhnHVhqhVfHM +QWLWDQZpgpWbQgfspGGRdcGcCcCcztTGZC +GGHFdGwFlswcFtnvTfjMjBFfNBjNBZ +JWmSJLPSRprWWPWVMMVQpZfBvvfQtj +RzPSPDbDDhbhPDLRhCgGHHccsqGCqqtHzG +dbSdptWddDMNtdFvttFclqMTZJlJTlMZqJTJTqjC +BzfwRzrwPzfzLNGmZZCZBTGBqqlH +hVNVQPNQQQVLPwhRrQwgWWvFdDsFWSbdWgdFSFDb +hhSnmhtZSFSqZBJSSqqmJJRHPPLgHtPcGGGcWGtvvHwgvG +fCMpfTQjTrzrzCQMsQdHGHvPGPwLppPRvWPLLc +MdTzCsCMzNzDCTjlmNhRmRnZBllRVh +RrFglccgBVVvFNvCvWlgmDbbDfQDtCdjjDbDwmZD +STnMqSLHJhHHnqLqtnBndbBdfQQZDtZD +GHJPTBsTSsMMSpSBHJFNlWzcvFlzsVzvzgsv +lplNdrVrVrWMMVcJfcDDzbqCCpDL +SSSgvBRSjggPgzvTTRHTvFnfJLbcLsCDLnCLDCcJBsJq +GmHjjRwvHSjHTRjrlZrNMzVMhVrmVW +gdtFtgStSbHCbHMPZrFLPLrVlrVZrP +hQnjMGfDqTvzvpBjVVjPRLRRjJ +QmsQmhvvMtssHtWw +RNjTGSCLJCGdRqMRFvMrfzMvzz +ZpcWcVDpWBmWQMZZpZDpwBcznrshtntvfvhfFtzmvnzvhf +WHHHcVWgQVCbCllbgMLN +ZjjdJHSdSzvcZFMhhhDqDHtthw +rNTlNqVWTmRPlshsDPDlph +WbTNGNmQBRQbRNQgNGmCLdvvjzcCSBqLcLnScL +bZwpSpBvSHCBqNzpdFffqQft +nWRnGRnVnljmlDnzdPfQfdcQPWWfNq +dmRDGMMlDmnVjgMlhBSwCbCgwHbBHhvv +NwqLgLBLgnwNNBGpgsQsddhhpQQg +JcztcZnzVtZvnVcJMTvTJtWtppsQHGdQhhHHQsPhWdPS +fJTJnMmvZvMvRDqFblNBNNjlBf +drZVzZzzNWWzwwTWTZrjWcLCqnRqNnLNLqCqnsPPRL +JhlBgvHBBLnwMBqDwC +GmGFSHmhJSGJwgFJmwJhJhgQVWVdbSWZQzZTrWtZzjzjTz +wPGRPpnzgwwGgLddFBFrnrnJdc +jCsVclQWmCTrJJddrdFs +lWjlCqfmlWccpGPPSgcf +hCThCzTdPcPhzqTzMfVfHrhMMmhVHgVM +lJSJNqwJsZBSsSBFsMprDmFmFDfDDHgHDf +JNGQsSSNGsbZZZSBwZLPtdLjttnqPCbtPbjC +vnlWNpbrNrpShhQDLRLB +MzCjPgffVTVgCJSRQhBdRdJS +VPHcfcBfTzVMTttMzMfgzMfHvrllWvlnvNvlmGwWNwwNmw +BwwsqPJqwBssLlFqLRCDzWwzDGRGGWfSRG +vTtmmthvpphpnNgNvvpvRrDCddDQrCQCzCDrCfnf +pppccNpTVVlqssHHVzBH +HWHphZWVWvMZNvpMtfJZgssffsjJgBlslJ +RLmrFFnGFrFFrrFCRwCrLNPwqfjSJjqJSJBbsqjbbsblfq +LnFLPPGLrGNRQPmndLzPmPmpcDcMHhcMhVHvczcpHHchcV +zwqqvNDVggwqVfNQRlszFBsCCJFtFlFPsz +MSrrGTZPGSSMSjPbTmtlHBBFrFHFsHlsJsct +MnmMPMSZZGSZWmSjnWgfqdgVQDvnqvRDggDV +SQCSBShsQnSsSJswsNpVppPPMVpGpnDVgg +WWjHvmtWZrwvtzzjTTRPrRRrMVNVVGgVGpGR +lTvWjWLfWwbJCQqBSlbB +cjPChhswrNVtMZJjVM +pfvTFvTzLBFndGTlJmVJZmNlCMGtCJ +nfvFTfpbBFdSFpTLswsWDbchwHCWHrbw +lNdNPLJJLHHHlpPJcvtVcsBBrrBvBqrVrC +wDTbwTQRZTMWsVWtmWhhTr +nzRMbSZtMQDnpzzJHLHNflHP +HrwwmwcRbmwcbrrTbwwcrTJWLlPshllhLccqLhnnlljhZhjZ +GMFMSNSpCBSFSdGpNFpBznLlzzhzshlGhhqPhGGL +nFFSCCSSfttBdddDQNDBQpSSrbrmWJwrHfJHWJrbVwWHrgVr +SdddNNCmpNNDhMswhsmbhvHM +frtzqqqFjgrWfgfqtthsnvRHZRRvFlhnvRZb +rtrgqzzrbWtqLGLLtBWzfGcTNCCVGpSNDppTJJVddNpPSG +WWJvJvBgpHSHScQRQSVQLzqL +ddZTlZGZVfQhZRLLMqsR +rPfwrGGrFjjNTGNCCVBggDJHmNDvbmmpmNJJ +bbGrJPRVPtfsVfFlMjBV +WQzhQQQNZQCWNnQDhzWdNjFZggmlHjjmMmMFjFHpMs +CzQCSWDTWhNhzWhTGJwtRRqTblwcclvP +HLDvZgZldDTnLLsswMpVLn +FNVQzQSPznCMmpBwCF +SqfJPfttqffjJPVlhvhZZtvdVDRZ +jVsLvHvvdrSjpJFsGzmnmltnml +nTNTRCTBTmmmFPMJ +CQnCggWQDgBrrSqHjDDfSS +ZpNlrZNcmctZbcZlmcmZhhpPvPHvwBMHJPMTMHBTFJvJ +zmdCnGzGRnLDjQnzPvMFVHMVMLTVwMJv +GGjqssqgzCnCzQsshcffmrbNrrNZtW +DNpTwhpLlWMDWNMhbJjGttJFHgDcjtjG +wqQrdCdqbFtCtJtJ +vffdrwfPrsmqVBBWRVlRRlTSTWSTlR +ZqTCTQQTFvsDSsBDvWBd +hfBLzRLtHHLDDWRRWWDNbd +pHhhnPzLfJcJhzHLzZjcmwCTqTQgwBqqwg +WJHgqgFqrVrqgqCHwsJHHVFZzppZFGGfTtpcfbdpzzpd +RvNMQlMBhwMdMfcpbM +LLRQNBDSSNSwmDDBQRBRBCHsgrgHLVnJVqLsJsnCPJ +BFhGsDsDsBtsPGtQDrrMdbdrffrffbJbRt +cVVqScVSWWvVWgVZjnrHJgLfdrLrnrLLLQ +WmvqNZzzzZSvVzqvcccSzSmqFGCDTGBPQGDhwCDhNDCwPBQp +RqTlHHTTrQqHlTqsrVDqHbrZFZwhpBhphZBFhZpDpLLLfB +nSzGCGdvzdGNPBQQBfhLZfFwFN +WPPPCJMtJSQMJQCCWMJslRrrRgrMRbRqVqqTRR +BMtfLsLZfTPmCtGWZrZqJNJqvpZdWr +bRwgHhhRhbbSRbjSglcgwHHJWPcJdPrnNWrnqnWVVqpdnq +bgjlSgDljHhjgwMPCLPFDMFPGGBC +zJWjczcWjSWghZgzgSSSZflTqwlfqTTbnQwhdTnMdl +NrGVCmNpHFPsrJFbFQMJbJdQTn +JvrtpHHmrCGJCJmNvNpVCsHVgzWgWDDcjjgjDRStWWDLSgzz +HzdFsBBVsfnTfsPmPtDcZqtMhDDz +wrjjRQLlwwwrJQLQbCrbwlJDSlcSDtPZmPSDclWDtcDqWh +RwgprLbNLrLbCCpRCrJLRLFfsGTNNZHBZnnBvvfffnvd +MlqqlWZclnPtZtDSSvwQQjgQpNQSRM +rLJTsBrsJBhshTNNwSQBWNvNgNSg +JbbbChCHsJzHzbWdGHThlFnnPqlPlGPPGncPtFlD +WcMVvwNNvjRcwTQwVcpNRcspPCFtbPztbCTFmtPtCJtbCzmz +grrgDhrnDLnLrdfdLZlLZhmCqzlCbtJlSSStFmttqsJJ +GHHDdgnLDDhrrrgZrZgLNVVVVcRNvcwjWvpWGcRs +qhGhPSJtGhGtJtvNjnJjnvmNQQmj +sRBFlbZsrdBRRGbVGBDwDMDQwQwMNDjjjVNV +CzCflffbBszdBCbdbrtLcfhhgHLGgPccLSPh +zShhHFzgJWFVFFHFHhRPNjwqPLPtLbtrbwVjjr +ssnvTmvCDfpCZTnsfCqwNLNPwbJqNJPwrjZw +vDvpmcnmnBDnsnJTJmQWMHMWzScFggRFRFSW +nnVHHPLrnpssLnrpLRnHtHrjJcCdzCjcDzMzdqwRdjdDcJ +WWTGQQzSGWlTmBbDJJjwMJjcvvlDjw +TGTWBTWmTbgzghZhgzBgpVNrZPPfntfNrVLNNnZP +TqhQnqqLnnqddttNqQWdtqQmppSSFFClRmzmFZFLSmSlFF +BcHjGclVPPBrVrcjrGGDrMgcmmRJbRCFzpZmSDRpRZJJmRzz +ccGjMgvPvsHMgvBHWlhQdqwtllwNdThs +WjddwRGgHRRdMbrwHRwWjHDtDZplslnJnZrsDvCprJPJ +QSLLFqQBffCFststlFnn +CSSmSqzmVVjWMdMjVWgT +lTfQRhVpRzjThpRQTTTlvHrvBvHnPMHgHqHJvn +cGDctCwCdDCGSFcJsFJsFBvgnMBrHvvrqngHgmgssg +SCbSDSFScNpfbRVVJf +RrwmdwMVjMjMTghDWNTJDpWfWG +SbPvNbvbSsPbSvZsPJtJWhHpGGGgJWgJ +lSFvsLNcqzqLrwnFQMnVdmnn +FgCJFTWntWTFtPLmJmmQJmCMMpljWZBwlGMljjjlwvwBvZ +SDSbVbdScSDzbLZMBrjlZpVrZp +ccsSDhSDffzbLNscfcfDcgqhPgTntqmnQmCgtgQCTJ +VnCnrHnPPrCwHmVWtqfMQQqzCqffCZ +DDbDcJJJbpJDGppFpqGZRWfGfddzMWtfWM +tTTglDcgFjwNPHPPwHlH +bMGbqqgPqqVVMGnbVqSMmRfPcJmCTPDDLJDTCmDm +FFjjZvFRsFCctmtvtJWD +wwFhHjQjwQhZrFjQbngglGbRMnSzgbRH +GPTTJSgTPrPPmcTPpdJsGGGjqbRvqlztqlRqMzGjRv +LwnfWLNwwHHQwHnjbbMMjWttqtMmMj +mhwfBDhnQTpJBcBJps +HQQHwMfwlltzMlVljQhVjjHPPPFGPFcCGprPTPPfDrDcGf +pRLdvRvJgqLRBSJCcvFnCDTPTcTGnT +LBLSJbRSLSqbSdBdgJRRqRbwjHHblQttlwtwhzpjMlwhpw +NWLNSNSDtgSgghgdcwccmwGntwclnT +FRCQzJRsvfVVjvzFJfQnffwCcmdwmHmmHmTwmCmdGBcq +sjfJvjfzPRPzvPPVFMssvSLhSSWrMZnSDNrDDhSLZZ +FvLpSLtCfPCWhRSZZMZJSW +jbbjwbHjQmHjHsQrQFMnwTnJznwRzhJRnNTM +gVrjqGqjgrgsFGLDtDBLLfLB +cgTvRWWLVScRWflNJJDfVJmVlG +nPPnnmqjmZHCHBHFdfwNsDhzzfJznhsfhw +bddmQqQjpdFCQWtLQMMSvMMQRS +wjnmPwCgjPnRlwnmvmvvPnTwbSSLLvsLDWdbbWzvsLzWbzbz +NqrGqFHqJlfhhJGbszdWQzzLNtQDzz +FfHFpphrJqJrpGBffcTnBjCnVTMjMRCnVljT +SrfSJGJpSgMprMHdhBGhsdsshdGsmm +nRTRPvQllQlblwvCjTwLTnvBqdhmHDPVsmDmdqshDVhNsP +lbRFHvRwlnlLbnbjLbLjLCzggSpWfMFzSZpzZFJJWpJr +vNLlFldlvPtHFPHQRt +jcpRsScDgshzjqzfVStntBTPMTnmWttntMpp +fSssgVjDsbqSVbCJClLRJLCZRZZb +wnHmCJccDDcrNnrNMRDtTzpTlMpTzpBp +PjSPPGjWjLzTjjMtzzMj +hWvLLFWvHvczVcVn +jgtngnnhMthcnLjMgCZvChDsmdNCvNNZDN +bWqFPbFbLzRFfZBNDNNPZsNd +RbJzGpzVLLLWHHQgTMwcTptQ +sJBhsMWQnhhrFBsFhlQQMfrDCDpLlVCddjTdDDpqDLTLdj +tZHHSRmNHcgmNzpDPJtttqjLqdpL +HbNbZmcHQJbsFWvs +VgPNWGbgSjGjfhRRFfzThtmtzF +qLCQJBqqcPPmLHhHFz +CcJvplQswNgZlNPSbS diff --git a/2022/day03_part1.py b/src/2022/day03_part1.py similarity index 100% rename from 2022/day03_part1.py rename to src/2022/day03_part1.py diff --git a/2022/day03_part2.py b/src/2022/day03_part2.py similarity index 100% rename from 2022/day03_part2.py rename to src/2022/day03_part2.py diff --git a/src/2022/day04_input.txt b/src/2022/day04_input.txt new file mode 100644 index 0000000..c84044f --- /dev/null +++ b/src/2022/day04_input.txt @@ -0,0 +1,1000 @@ +7-96,6-95 +36-41,35-40 +35-84,83-91 +95-96,5-95 +3-3,4-99 +12-21,21-22 +10-28,10-28 +6-11,10-12 +12-91,76-98 +17-69,18-69 +26-81,7-27 +26-42,57-80 +32-38,33-38 +4-83,5-83 +33-85,34-86 +14-95,6-78 +79-84,78-87 +12-61,11-62 +56-92,55-92 +34-63,9-34 +33-44,33-85 +5-17,16-26 +21-43,21-32 +12-60,59-60 +10-48,10-49 +94-94,71-94 +45-46,24-46 +81-97,82-98 +5-27,27-57 +3-96,2-22 +5-92,2-97 +53-87,76-90 +68-83,82-82 +55-67,55-73 +39-79,78-78 +81-86,87-97 +3-25,2-67 +50-63,62-62 +5-96,5-97 +27-88,28-88 +19-53,20-53 +55-89,55-90 +43-46,43-99 +82-95,56-96 +8-57,8-8 +90-95,2-90 +56-78,34-81 +53-81,54-81 +20-30,9-62 +12-83,11-16 +64-65,63-69 +15-95,15-94 +6-94,4-93 +36-93,8-92 +67-74,68-74 +4-89,5-89 +23-24,22-23 +44-53,45-80 +43-60,43-83 +61-69,62-78 +77-77,25-77 +43-65,43-66 +12-65,13-84 +54-56,54-97 +13-34,33-60 +20-55,55-56 +34-93,35-92 +26-85,27-96 +51-97,9-97 +18-41,17-40 +3-14,14-80 +55-66,8-56 +4-89,64-98 +20-98,20-63 +1-16,15-22 +20-93,41-92 +9-86,8-10 +5-27,27-28 +29-51,30-48 +44-64,44-44 +29-96,2-96 +1-98,13-97 +6-84,18-84 +28-81,27-72 +7-95,6-95 +43-84,78-84 +2-62,35-98 +46-88,9-88 +11-19,10-18 +21-81,22-89 +98-99,78-98 +26-57,25-57 +12-31,10-30 +31-84,32-85 +93-93,91-93 +10-89,8-76 +6-36,7-36 +51-96,95-99 +14-32,5-17 +23-37,34-38 +14-15,22-82 +95-96,72-95 +38-52,53-53 +25-94,25-96 +38-74,37-74 +73-94,41-73 +72-85,35-84 +15-98,14-16 +81-94,82-94 +85-89,85-87 +3-87,3-83 +84-93,4-91 +42-57,42-50 +42-80,23-42 +18-26,18-27 +44-58,44-99 +35-68,3-67 +40-97,41-53 +11-99,12-12 +7-51,12-59 +13-71,68-71 +5-12,4-97 +8-20,20-79 +13-91,12-14 +33-62,18-32 +3-94,5-94 +26-98,26-93 +31-38,30-85 +13-83,14-82 +6-74,73-74 +73-73,45-62 +38-38,38-38 +9-21,4-20 +14-60,13-83 +83-90,83-89 +73-73,6-74 +1-3,3-94 +3-84,3-85 +61-90,81-97 +93-93,23-94 +31-81,81-81 +26-76,75-75 +95-96,94-94 +70-72,71-89 +95-95,4-95 +10-70,9-11 +3-99,4-98 +26-99,26-92 +77-95,78-90 +47-82,48-83 +4-83,82-88 +51-51,42-50 +10-86,11-96 +9-46,39-49 +20-78,20-79 +1-62,2-61 +57-59,58-75 +4-90,28-90 +4-4,4-52 +34-81,35-96 +32-68,67-83 +83-87,84-88 +71-96,71-71 +61-96,95-99 +3-99,1-4 +13-94,12-95 +13-86,14-95 +36-89,35-88 +8-12,12-96 +34-55,33-55 +43-55,56-95 +38-39,7-38 +3-48,47-98 +86-86,5-86 +4-64,4-4 +80-97,41-98 +16-16,30-54 +3-94,4-94 +16-90,15-91 +7-19,7-84 +64-79,8-79 +29-94,94-95 +25-86,24-85 +91-95,90-93 +3-54,3-96 +4-92,6-95 +14-14,14-70 +65-82,83-83 +5-80,18-35 +63-88,44-52 +3-65,1-21 +34-87,49-49 +92-94,48-93 +3-96,3-95 +52-70,51-75 +64-64,7-64 +20-53,21-63 +3-9,6-10 +49-93,50-94 +38-97,38-94 +91-95,92-96 +38-43,38-45 +73-74,19-73 +26-83,82-83 +71-72,71-71 +6-97,6-98 +67-93,90-94 +39-97,40-97 +10-33,33-40 +35-84,34-93 +5-72,73-73 +15-98,14-66 +24-66,25-84 +23-49,11-50 +35-79,34-36 +15-78,16-94 +87-89,6-88 +5-8,7-39 +13-82,2-5 +70-70,14-70 +47-86,87-94 +10-98,9-94 +2-63,1-62 +26-67,26-26 +67-68,66-68 +51-58,49-57 +29-44,41-45 +33-95,34-95 +4-18,4-17 +75-89,75-75 +12-87,11-87 +29-60,31-61 +35-37,36-44 +11-62,10-73 +12-36,12-30 +67-67,67-77 +9-96,10-98 +15-71,12-72 +87-90,15-86 +37-76,37-77 +74-75,73-74 +32-71,31-72 +14-29,29-60 +47-94,36-79 +19-89,16-84 +84-85,77-84 +38-80,7-80 +24-36,25-52 +47-48,47-48 +95-96,34-95 +72-80,72-76 +13-75,12-75 +6-89,5-88 +61-90,21-90 +98-98,1-99 +41-84,41-52 +11-44,11-43 +25-97,25-96 +36-99,35-89 +24-53,23-56 +12-12,12-91 +52-88,52-87 +5-10,5-9 +94-96,7-95 +10-94,9-93 +30-32,31-60 +83-83,9-83 +73-97,60-72 +60-81,38-81 +20-59,19-21 +1-93,74-93 +64-86,17-85 +37-40,37-70 +53-87,24-54 +21-81,20-81 +53-93,54-94 +35-73,39-74 +5-74,6-73 +13-97,24-98 +80-87,81-90 +13-41,42-42 +40-40,40-61 +30-53,31-52 +73-97,74-95 +77-93,78-94 +42-81,43-98 +29-49,18-57 +93-99,97-99 +12-64,12-99 +25-99,46-98 +5-70,11-88 +7-65,7-99 +32-89,31-88 +6-92,1-61 +1-9,10-56 +57-96,97-98 +51-97,98-99 +15-81,14-81 +9-28,10-51 +4-99,4-98 +49-55,49-49 +51-77,43-78 +18-55,19-54 +22-22,22-85 +38-83,37-82 +20-89,4-13 +58-89,1-90 +94-95,55-94 +38-83,69-93 +29-53,52-52 +9-99,10-99 +37-67,37-66 +39-97,19-49 +10-96,9-63 +23-98,75-98 +15-96,15-93 +5-10,9-56 +7-84,3-8 +84-86,73-85 +64-84,39-75 +23-41,22-23 +18-20,16-18 +69-82,69-97 +42-76,43-74 +27-29,16-29 +52-63,55-64 +22-91,96-99 +13-74,12-75 +76-81,76-80 +23-54,20-53 +85-87,47-86 +23-33,22-30 +3-19,19-19 +36-43,43-53 +2-89,1-99 +9-31,8-15 +92-94,64-94 +36-88,35-70 +70-73,68-72 +44-70,33-38 +40-91,40-99 +77-77,15-76 +21-37,30-77 +82-86,61-82 +3-77,3-92 +49-60,15-60 +9-85,65-86 +2-13,12-65 +39-48,47-49 +37-77,37-37 +53-54,54-81 +43-72,42-71 +4-4,5-85 +54-85,85-85 +39-79,40-80 +9-83,8-84 +12-79,3-80 +62-92,61-90 +4-64,62-63 +82-82,9-82 +31-85,43-86 +5-51,4-52 +95-98,98-99 +61-89,89-90 +5-57,30-69 +6-46,6-50 +6-43,12-42 +33-58,32-57 +55-55,56-91 +92-94,42-93 +3-98,98-98 +12-68,3-13 +77-77,78-78 +33-92,91-91 +12-13,13-44 +2-93,1-3 +42-49,41-47 +16-86,3-16 +13-26,26-32 +1-95,46-95 +36-58,37-38 +15-17,18-98 +57-83,70-84 +23-85,5-23 +50-99,8-96 +76-76,75-82 +4-97,98-98 +3-24,11-30 +27-27,13-28 +25-55,23-24 +26-48,26-86 +15-42,14-42 +50-61,50-62 +39-96,3-39 +28-52,43-56 +20-90,61-91 +79-99,99-99 +8-23,8-29 +12-78,12-77 +39-41,27-40 +8-90,5-7 +8-32,20-33 +21-89,22-90 +3-36,3-99 +37-60,36-63 +28-42,5-42 +44-57,40-56 +52-69,43-69 +9-10,8-9 +1-98,1-99 +8-21,3-12 +1-82,1-56 +16-16,5-15 +37-56,38-75 +20-53,19-31 +54-97,97-97 +11-93,10-38 +18-60,7-41 +96-99,8-97 +42-63,63-92 +12-51,50-51 +45-45,44-87 +62-63,16-63 +36-81,36-36 +4-45,1-4 +12-14,7-13 +64-64,60-64 +68-68,67-68 +9-95,94-98 +56-72,55-74 +34-57,34-46 +33-69,33-70 +65-78,64-66 +3-64,63-65 +6-79,6-69 +66-93,93-94 +55-56,36-55 +8-96,7-95 +33-83,33-93 +54-96,55-96 +1-73,5-90 +76-78,61-77 +10-90,9-94 +27-81,16-57 +85-96,86-96 +48-48,11-49 +47-63,48-48 +18-27,18-48 +40-93,40-46 +31-44,32-43 +21-41,34-40 +44-53,44-54 +28-95,7-95 +2-97,1-97 +20-97,96-99 +71-82,20-72 +4-32,4-98 +56-56,23-55 +10-74,73-73 +22-78,21-77 +57-65,56-65 +45-95,12-87 +62-67,62-77 +33-78,31-79 +33-51,32-50 +21-99,26-87 +11-94,98-99 +15-49,15-50 +2-9,10-83 +39-39,16-40 +15-73,40-74 +98-99,6-98 +46-84,46-81 +9-97,9-96 +56-66,36-55 +65-81,66-93 +14-97,70-96 +47-92,46-92 +12-46,13-19 +5-57,25-86 +44-84,45-83 +14-39,31-39 +46-68,32-69 +13-90,17-80 +14-64,15-78 +3-5,4-57 +6-7,13-57 +75-75,6-75 +46-92,45-64 +17-45,16-45 +8-94,52-99 +94-95,6-94 +37-76,36-75 +55-56,6-65 +40-64,28-50 +12-20,21-95 +28-50,47-51 +99-99,7-98 +37-63,33-89 +14-99,13-13 +7-80,7-19 +19-47,18-18 +37-46,47-47 +17-73,4-86 +9-43,10-43 +26-71,25-26 +14-91,1-10 +31-58,30-31 +44-44,22-45 +59-59,59-60 +9-9,9-64 +44-65,45-46 +10-96,96-96 +2-52,2-84 +35-36,35-35 +94-95,81-94 +12-89,13-90 +4-86,4-93 +13-96,4-96 +52-54,53-72 +6-90,5-91 +10-34,10-75 +22-31,22-30 +23-97,9-96 +7-91,83-95 +8-12,8-18 +34-39,35-38 +2-22,3-87 +6-15,7-54 +37-84,36-62 +51-93,51-94 +4-4,5-97 +17-55,33-56 +48-53,50-89 +17-90,18-99 +8-8,29-60 +18-40,32-87 +3-88,3-89 +14-14,15-53 +55-62,55-61 +5-96,58-97 +50-59,50-98 +37-86,38-86 +1-56,11-68 +65-75,66-69 +66-84,73-92 +99-99,2-99 +99-99,13-99 +65-88,6-93 +13-89,90-90 +41-64,40-63 +21-66,22-66 +57-92,56-93 +57-78,78-92 +94-98,11-94 +10-53,27-54 +37-42,38-42 +17-97,1-17 +39-86,39-85 +6-6,7-43 +20-55,21-55 +93-93,7-94 +73-74,75-95 +29-88,28-72 +40-90,22-86 +75-75,20-76 +15-72,4-74 +69-82,64-81 +21-23,21-59 +56-70,68-73 +9-94,95-95 +4-6,8-53 +7-20,19-45 +25-41,26-40 +62-72,61-74 +79-95,49-79 +2-96,1-95 +19-33,25-59 +8-90,7-91 +28-91,90-92 +11-20,19-88 +5-30,6-10 +8-99,8-8 +90-99,94-99 +19-77,19-94 +37-58,37-63 +23-44,3-45 +6-98,5-98 +9-42,6-9 +66-75,71-76 +58-87,86-88 +40-48,40-49 +17-24,17-48 +3-97,2-32 +37-88,37-89 +3-89,5-25 +19-61,13-20 +5-67,3-6 +72-73,15-72 +36-78,75-79 +6-92,7-91 +28-97,27-98 +56-56,14-56 +2-92,1-92 +1-7,7-82 +34-71,11-72 +5-96,5-83 +23-71,67-73 +25-93,25-94 +2-99,1-2 +21-73,11-73 +57-63,56-62 +30-33,33-34 +77-77,31-77 +13-78,14-96 +17-80,46-93 +17-46,1-17 +42-50,41-87 +31-84,4-31 +39-80,18-79 +13-31,14-84 +2-96,3-94 +8-98,9-67 +22-60,22-22 +16-97,15-99 +82-93,82-82 +57-77,22-70 +96-97,13-96 +17-41,41-85 +17-72,17-98 +12-96,4-96 +15-18,17-19 +33-53,33-59 +34-41,35-64 +94-98,27-93 +98-98,1-98 +57-69,32-70 +67-89,66-67 +66-72,73-73 +5-43,5-73 +26-98,27-68 +16-80,15-81 +2-65,2-55 +82-92,82-93 +16-16,16-21 +2-19,4-48 +82-82,56-81 +2-97,1-97 +53-54,38-53 +20-87,21-88 +45-60,44-56 +4-4,5-92 +95-95,79-95 +21-71,7-72 +57-83,58-83 +4-66,11-67 +57-57,58-92 +17-91,17-76 +14-15,15-56 +4-4,4-98 +7-98,15-68 +28-94,94-94 +3-47,27-47 +4-33,12-69 +48-56,48-57 +3-26,5-65 +46-71,46-72 +9-98,37-99 +60-76,18-75 +26-26,26-27 +31-56,31-57 +96-96,4-96 +55-82,55-83 +25-26,26-48 +59-71,54-56 +69-70,7-69 +2-98,98-98 +24-74,75-92 +61-96,61-86 +1-73,1-1 +57-86,56-67 +9-94,94-94 +52-52,53-98 +4-7,2-8 +35-63,34-60 +29-94,29-71 +43-89,44-90 +13-17,12-15 +52-58,51-79 +51-94,12-93 +24-52,24-26 +14-53,53-54 +26-91,26-64 +18-78,65-79 +27-64,55-87 +40-67,68-68 +25-70,24-70 +1-82,81-94 +17-19,18-89 +18-18,17-18 +33-60,57-72 +51-73,52-99 +41-98,42-98 +8-25,14-34 +2-17,1-62 +26-40,21-40 +2-21,3-16 +72-85,72-98 +41-86,14-58 +14-16,30-60 +96-97,22-96 +12-57,12-58 +16-74,15-75 +8-61,7-36 +37-56,36-67 +6-99,6-87 +60-75,60-60 +96-98,67-97 +15-26,25-27 +14-88,87-87 +31-95,32-96 +75-91,53-76 +16-49,17-38 +40-82,41-77 +3-59,2-59 +20-44,20-45 +10-76,9-76 +11-13,12-91 +16-18,17-95 +47-62,33-61 +34-69,19-70 +72-92,91-99 +27-34,28-29 +6-86,2-5 +25-75,25-40 +34-68,35-68 +16-95,16-94 +37-96,37-93 +20-62,20-61 +5-86,4-85 +37-49,35-36 +48-59,48-60 +38-42,39-49 +36-89,37-97 +24-26,25-69 +8-93,21-93 +24-83,23-83 +38-68,37-39 +11-70,34-86 +14-88,13-93 +86-86,47-87 +33-67,32-34 +1-80,80-80 +81-82,8-81 +53-97,5-98 +11-30,1-18 +4-99,3-98 +1-99,77-98 +8-14,15-56 +3-70,2-87 +19-34,34-62 +56-57,57-91 +3-64,2-4 +80-83,84-89 +58-59,1-58 +4-77,5-86 +5-97,3-97 +48-94,26-95 +10-96,7-95 +4-4,6-41 +5-23,4-6 +5-91,90-93 +13-88,89-89 +1-97,90-97 +69-80,69-91 +8-11,11-72 +24-45,36-44 +20-20,20-46 +64-73,65-94 +46-90,47-77 +7-61,61-74 +16-25,25-26 +16-16,15-22 +60-89,61-89 +51-99,52-84 +22-85,22-93 +46-71,45-72 +9-65,10-66 +65-69,60-66 +24-43,23-75 +15-30,3-31 +44-93,26-65 +8-35,8-34 +68-82,2-79 +67-71,18-67 +93-97,93-98 +6-83,2-2 +26-84,27-50 +2-50,49-52 +39-80,40-65 +3-3,4-68 +27-84,36-85 +21-86,20-39 +10-82,9-71 +18-86,40-60 +55-80,23-46 +24-30,23-23 +29-68,30-45 +41-48,42-59 +85-94,88-93 +2-99,98-99 +33-94,94-95 +78-80,3-79 +94-94,16-94 +1-4,3-97 +71-96,52-72 +94-96,95-98 +71-72,72-81 +20-33,32-33 +15-55,15-15 +21-33,33-65 +28-33,27-33 +1-93,57-92 +23-64,63-93 +5-89,4-89 +66-71,68-78 +7-80,2-7 +10-86,9-71 +2-99,2-98 +6-15,5-14 +83-88,60-84 +34-37,33-36 +49-82,82-83 +68-75,61-69 +40-87,16-41 +61-67,64-67 +8-67,7-68 +31-61,30-88 +16-77,16-16 +1-62,63-63 +7-67,2-6 +39-67,8-57 +7-94,11-95 +41-93,73-85 +39-54,47-98 +28-90,2-83 +1-6,6-57 +10-11,9-16 +28-82,27-81 +4-95,5-96 +31-95,8-94 +73-91,33-84 +34-92,15-35 +49-94,6-50 +3-99,2-98 +59-60,34-59 +22-76,22-86 +9-11,10-93 +67-78,77-86 +16-83,15-47 +73-81,72-73 +72-88,2-73 +26-62,27-72 +5-81,5-89 +19-69,20-69 +32-97,32-96 +63-86,32-75 +7-97,7-96 +84-92,91-93 +72-96,2-96 +19-22,19-19 +66-82,65-81 +81-96,65-82 +71-83,35-88 +99-99,1-99 +22-97,22-96 +29-97,29-83 +13-85,84-84 +23-67,23-34 +14-81,13-81 +55-98,16-97 +58-78,38-78 +6-16,3-16 +47-78,46-77 +16-53,15-25 +84-90,83-91 +32-32,31-47 +2-21,4-57 +17-56,49-55 +12-67,67-67 +19-71,42-97 +82-82,63-83 +39-46,18-46 +6-97,1-97 +42-88,43-89 +19-19,19-95 +17-95,4-95 +50-96,50-90 +3-81,1-2 +4-47,7-18 +12-17,7-95 +23-92,23-58 +40-91,91-92 +3-69,69-70 +47-50,46-50 +9-92,9-97 +7-71,4-16 +27-38,74-96 +11-30,30-89 +23-46,22-46 +2-6,5-98 +36-93,35-93 +9-19,19-99 +25-33,32-34 +13-36,14-35 +5-97,4-5 +19-99,20-95 +43-79,54-83 +21-99,20-47 +71-74,70-72 +90-90,3-90 +71-99,71-71 +5-6,6-98 +74-84,74-83 +19-95,19-94 +34-81,38-83 +13-34,5-14 +15-80,15-79 +6-23,5-90 +67-76,67-70 +39-91,14-90 +65-96,64-95 +8-88,52-89 +61-94,89-94 +32-66,66-66 +10-28,15-55 +9-93,8-90 +38-97,39-98 +78-84,77-79 +5-85,3-29 +21-80,80-80 +84-89,88-90 +45-85,12-66 +99-99,1-98 +45-49,48-74 +6-98,3-68 +13-95,94-95 +49-52,51-53 +18-43,6-18 +85-85,20-85 +62-65,61-65 +8-92,9-92 +23-83,22-83 +15-77,77-77 +56-74,55-78 +23-78,22-79 +32-80,33-34 +4-99,11-96 +27-91,16-91 +8-82,8-81 +3-39,28-39 +39-47,39-46 +16-21,34-70 +65-98,65-97 +16-86,16-85 +8-99,33-73 +24-94,19-93 +48-57,56-58 +4-96,3-40 +73-83,17-82 +1-3,2-55 +83-96,96-97 +35-83,66-91 +27-44,16-34 +33-82,31-60 +46-88,45-88 +45-78,58-78 +41-47,40-80 +5-95,4-95 +9-65,10-67 +51-82,68-82 +52-98,36-94 +36-38,37-41 +19-33,9-33 +22-98,21-23 +12-96,11-97 +75-77,11-76 +91-92,12-91 +92-93,4-93 +18-18,17-18 +20-45,44-55 +94-95,61-94 +38-99,39-73 +6-11,11-84 +29-49,9-29 +24-91,24-44 +72-72,28-72 +49-53,49-51 +9-85,8-85 +26-80,26-90 diff --git a/2022/day04_part1.py b/src/2022/day04_part1.py similarity index 100% rename from 2022/day04_part1.py rename to src/2022/day04_part1.py diff --git a/2022/day04_part2.py b/src/2022/day04_part2.py similarity index 100% rename from 2022/day04_part2.py rename to src/2022/day04_part2.py diff --git a/src/2022/day06_input.txt b/src/2022/day06_input.txt new file mode 100644 index 0000000..f86c568 --- /dev/null +++ b/src/2022/day06_input.txt @@ -0,0 +1 @@ +hrbbjllllspssblslvvrdrbbpbbmcccfppvbbwvbbmrmjrjrfrgfgbffgfqfqlltlwttscsncscchssrppffvwwvvpnnwwwpvwvhhnvhhbttvzzdlzdlzzwmmjhhznnjdnnnqddbtdbdbsdsmdsdrrdpdwpdppgcgqgcctftsfszslljbljbjwbwbnwnqqrnnztntmtrmmzwzdwzwgwwwjhjsjgjtjjhpjhhppqzqdqffrvrtvvsmmgwmgwgbbclltctptzpzhpzptzppcfpcfftflfzftztddzgzmmfsmsrmmsstttvbvmbvvsmsqmqlldjdtthwtwbwggrzzjrzrcctffsshqshhpthhlnhlhqhdqqrwrmmcttpfttzfzgzdgdzzwrrtsrrsnrnccrbbsssbpbjjvzzwlwtwjwsjwjggzqgzzrsszzjnzjzwjzzcrzczncnqqztzfzhfhvvtjvjdvjjmrjrppvzppczpczcggshghvhnhhsrsnsdszzdpzpzlpzzhwwmnwmwmcwwfnwfwjjcbcncllcsllqdqzzhqhmqmbbjvjjwwcjjpnpllzfzddtmtccqrcrtrwrpphpmpplslmltthnnvhhvrvbblhhrrdqqmbqqgtqggdgcdcvvsbsswvvpggbbtftlflglzlmlbbfhhrshswhshffhhdnnrfrvrmrnrprrmfmpmnpnfnggvvcncdcrczrzccpmmssrbbdjdtdrdwrrwhrrvrtvvszvvwvzzmhhjhhwlhlqlvlttzftztdtstftrfrdddmtmzzsqzqvvpdpdcpcncnrrtntznzrzgznztnznhhsqqnrqrhhlzhzthhfddrzdrrqmqggcmmllnjjvwwjccfjfqfcfzccwvcwvcvjcjtjtnnqsqmqrmrzrszrszzfwfggnmmcdmdjmmhwwgfwfnwnlwwcffsrffvnvbvnvwnwgnwnmmbzbmbpplmplpspzpmzpzdzgzrzrtrjrbbppwvwgwmggqwgghqqshhcwcqwcqcfcbbnsnrrtztzrtrvtvhthzhmmrqqrwqqsjqjcctgtwthhqmmnffmgmdgdlgljjhwjwggrqqfrqqjvqvhqqgsqsgsttmrrbprbppmjppslpsllvlfvlvrvhvtqmrjcdzwsbzfmgmwmwqwhztqrsdzhqjqvbjbntnbndflthljcczdmmhszfgsplrtlqnfzbrlqngwdqtfwcmrdjrsmdpmjmqwrbwfjzwnvqhfmlqtvvnlfzbfccwslqpbzzjccbvrzhghqwtvqgwrmsfzqnmnqqjsjtpcmngpqgllfsnpqtjjbqcdppnsmtwrslnrbqtwvnbctzvwfmgctscmzjbqqgqdwbpzmrdwgfcjzftzgmfcjhchbnmnqnrgtqngwrmncjvptqqdtjtgtpzzdrfsdgmwlwrjnqldbwrqjrhwcczlzvlhpgrnwzhbwjnpthggczfgtrjnzvnlfdfbwcnzfbwlwlmgnnjnpvhbhqgnzhqsnmvbcftsmrcgpvnnnmgnrvpbzlpwnbwpzmwpgqvbfgjwfrjqnvvgmqwwcfddqmdznmfhpjcfgptqdqwmplrglbwlmsqzjshrlhflcjvptgrcfhjfgqmlfzrtphpbvcqzwpcnwljjdlmqzhcctqshdngrgtlfsrfccdtlvmqcdgnpcvphdsrpzfzwclvsqcpzqlfvvqzggdhpfzdvhshglvfzfmcllrdfjfsjtngjgddcpqnlmrnplwtlvwdvzftltnsnspcdztgqhlhvvbnwvnmhscfnqbngpvprzfrjcmfpfzfftrlnwgllhnjndpjdrwcgqpcgcqngnbfzlvzvhnqdjthflmwvppmbdssddmgsbgrqnpjzrjpzdddqgsdlmwnhhpjbthclvqhgrsnrbqgtnsjhncnzbhrdgftvbptrqssvsqfpqnddhmgwcrfqndqjsqgffmhdvqhjrdlmrlcqctqccprwlbqgqrwmtfhwmfjfqzdqbsdsjbtsvfvgbsrvqwnqqqqthpsqgcfslsqtnjwtsrcdcctggdghrjwpbfccrtwgszwbrsjswmjmjbcqrsgbcfsdjzsbjnnssnddnnvwgftlrqvphnqcgjszscrlhhjnljlqcjqtqfwbmdmrgdlcqqwmbsmsdhpplvlfglqwspbfptlbzqjwhqmfvzvsvpjclcdzsbvntmhdqdvhghcmmflpjbglsghbswdshtsbdrgpsrsclrmfwwqbrgdjsqztgttqpwhnfhszlgbfpzhczsnwqflmshlgbrpmdzgpqwtsbssgfjbtrwbmztlwwfmsdgpgfgdjfdccwlfgztbcbqjvjtvslmddjplrswwcszspgplsrhrnwnmrrfbcgdmntcrlvnfqtwwcczsglrhtrfqnmhvgzjpmlplqvqhmnfgvzqcmzhqszgslvndqtqhvrbvbmclbcbjdswvcjrzgfdmdwnnlzlzqcffsrqdfmmpzfnmdsnqlpcrhzsdnsflblcjsfsgcnsspftjrlmdjsmfpqtmlgfvnlfnjscsgwzwvpjrvvclhsbqldlnmtglhbjfwlzmvrbvgtprfjbjhhnlqnbrswwlqtcgrjrltdrnfrjhrntllptlsbhqrwvdsfrlghtfcndznzjwcgmtdvffltgrdmljlqhdtmdvnfsfsrvdpmhlrrsttvqlwfptddwbpfrbclwwzmfpttmrmmqzjnbbnnfvzwmmcfshvrlbdbjzprftbqvdsghnnzwbjccpthdsvsdlgvphsgjdqjwsgmzqnqpqvgqjvwgjtzpmqqwnlwrwhqqjjclcbhjgpwhqdclwmqfmwbwmwwvcbhfznfhcfbprfcdqlbcttnvgnjwswcmpbrghtzgdbppbprffzjgvddzpwmdctrhnrfzdfhtmnfrsfdqvzcnrtncflhvldcndwqtvbggmwlzhchlcwtcbqcvlfhdwljgddwpvcfczvfqmphgtdsnsqwdpvvmwnwqjbrjwbdhhgtffphsdrvspsbgmfrmwmhnrgqdfppzgfpgmqjcsnglczgwhjthfhztzrlpgzjhcfrjpjvtjptptbvflftjtcfhmbwlhlbhvnjnbfmwjrgbvvhmdlncdgncgfjcnnpdljfcjsmsfscqpwsgcmlhhqmldsnjfrrqpghwncmgwgnjsdtvbhrbbnmpqjrrctqqnqzztmbqmdsgdvmmlwmbvprllzgntnmttrlzrttmjjlrwpwmtfznmwnsjmjhjdnsppfhcrjpzhjqzdtdbsjshfzzvrwvjbjbgtsfpgggbdztczwlhpmthfjdgsbrvlwmlrvgdrpjzccwmgpcnqqzmqdjqmwsrzwsmtmdjdhmjrwfwnzlmfnqtcgtslwtlnwhvmqntmglhntnsjlnmzfvfdztcfwmpchsrsdmqvqcwljzrmmssjvbmvvnmqlbsdwnrbmqctdtmfzlgfzpmjcnftgftvjpfbwwmzfdrrwjwcfwfcfmzbbnppgjrmbcvmvnjpdrzmvndvddtvshlnjjwgtsvnwtwnhcbfpnthpjlrhgrqccdgppjvdqjwqrfrrgnvhfwvjhnwhntnpmghphrtgqhwtbrqhqljfdjbgnlgmqqgfcqpqfhcpgspdbvlbfjvlrgmtjztwdzlrhqwwtcpdvsqgssjbjjgqlwbcctzzqvvmdzpfrmspmqhtzwgcfsslpnhpjfwqrrfbwbndrvhnnsjnlvlvqdsgwzjsrprhgtvsfbhbcpljdczbtdwzcnhzntrwcrjctmhtjfdlthznzmqblppzcqgpjhlzjrmcvpptfjjzltdhmvwphwlccscwrwfcqpqwwrzcmnltzdcfvtjrcvsqwtchrmdfzjmzjfhppjzbhglwqggzqqnspfmzrfwrqdqdrsdbsdhcgdqrrnjlwrqhfhpzjhrvjndqphndnnnbwhrjvqrrbvlhhbljjcwmfpvnhcszfshlsnczgtcfhjslbhzczdqdmdnvqdzhbmbpcnbntwgllfscrcwhfrgtfvftmwhbgfhjzjrbvvwc diff --git a/2022/day06_part1.py b/src/2022/day06_part1.py similarity index 100% rename from 2022/day06_part1.py rename to src/2022/day06_part1.py diff --git a/2022/day06_part2.py b/src/2022/day06_part2.py similarity index 100% rename from 2022/day06_part2.py rename to src/2022/day06_part2.py