From 23945154d4c882ca873e53a32b6f5b59b1f9286b Mon Sep 17 00:00:00 2001 From: Parnic Date: Wed, 30 Nov 2022 17:19:53 -0600 Subject: [PATCH] Initial commit - framework --- .gitignore | 6 + GlobalSuppressions.cs | 8 + Properties/launchSettings.json | 27 + README.md | 3 + advent-of-code-2022.csproj | 98 ++ advent-of-code-2022.sln | 25 + inputs/01.txt | 2000 ++++++++++++++++++++++++++++++++ inputs/02.txt | 1000 ++++++++++++++++ inputs/03.txt | 1000 ++++++++++++++++ inputs/04.txt | 601 ++++++++++ inputs/05.txt | 500 ++++++++ inputs/06.txt | 1 + inputs/07.txt | 1 + inputs/08.txt | 200 ++++ inputs/09.txt | 100 ++ inputs/10.txt | 94 ++ inputs/11.txt | 10 + inputs/12.txt | 24 + inputs/13.txt | 910 +++++++++++++++ inputs/14.txt | 102 ++ inputs/15.txt | 100 ++ inputs/16.txt | 1 + inputs/17.txt | 1 + inputs/18.txt | 100 ++ inputs/19.txt | 856 ++++++++++++++ inputs/20.txt | 102 ++ inputs/21.txt | 2 + inputs/22.txt | 420 +++++++ inputs/23.txt | 5 + inputs/24.txt | 255 ++++ inputs/25.txt | 137 +++ src/01.cs | 62 + src/Day.cs | 55 + src/Extensions.cs | 41 + src/Logger.cs | 72 ++ src/Template.cs | 25 + src/Timer.cs | 48 + src/Util.cs | 95 ++ src/main.cs | 74 ++ 39 files changed, 9161 insertions(+) create mode 100644 .gitignore create mode 100644 GlobalSuppressions.cs create mode 100644 Properties/launchSettings.json create mode 100644 README.md create mode 100644 advent-of-code-2022.csproj create mode 100644 advent-of-code-2022.sln create mode 100644 inputs/01.txt create mode 100644 inputs/02.txt create mode 100644 inputs/03.txt create mode 100644 inputs/04.txt create mode 100644 inputs/05.txt create mode 100644 inputs/06.txt create mode 100644 inputs/07.txt create mode 100644 inputs/08.txt create mode 100644 inputs/09.txt create mode 100644 inputs/10.txt create mode 100644 inputs/11.txt create mode 100644 inputs/12.txt create mode 100644 inputs/13.txt create mode 100644 inputs/14.txt create mode 100644 inputs/15.txt create mode 100644 inputs/16.txt create mode 100644 inputs/17.txt create mode 100644 inputs/18.txt create mode 100644 inputs/19.txt create mode 100644 inputs/20.txt create mode 100644 inputs/21.txt create mode 100644 inputs/22.txt create mode 100644 inputs/23.txt create mode 100644 inputs/24.txt create mode 100644 inputs/25.txt create mode 100644 src/01.cs create mode 100644 src/Day.cs create mode 100644 src/Extensions.cs create mode 100644 src/Logger.cs create mode 100644 src/Template.cs create mode 100644 src/Timer.cs create mode 100644 src/Util.cs create mode 100644 src/main.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..07d28ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/target +/.vs/ +*.user +/bin/ +/obj/ +*.exe diff --git a/GlobalSuppressions.cs b/GlobalSuppressions.cs new file mode 100644 index 0000000..5da70be --- /dev/null +++ b/GlobalSuppressions.cs @@ -0,0 +1,8 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("CodeQuality", "IDE0052:Remove unread private members", Justification = "", Scope = "member", Target = "~F:aoc2022.DayTemplate.lines")] diff --git a/Properties/launchSettings.json b/Properties/launchSettings.json new file mode 100644 index 0000000..56fb941 --- /dev/null +++ b/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "profiles": { + "all days": { + "commandName": "Project", + "commandLineArgs": "all" + }, + "current day": { + "commandName": "Project" + }, + "current day part 1": { + "commandName": "Project", + "commandLineArgs": "-part1" + }, + "current day part 2": { + "commandName": "Project", + "commandLineArgs": "-part2" + }, + "all days part 1": { + "commandName": "Project", + "commandLineArgs": "all -part1" + }, + "all days part 2": { + "commandName": "Project", + "commandLineArgs": "all -part2" + } + } +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cbd8426 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Advent of Code 2022 + +My solutions to [Advent of Code 2022](https://adventofcode.com/2022). diff --git a/advent-of-code-2022.csproj b/advent-of-code-2022.csproj new file mode 100644 index 0000000..32a02d1 --- /dev/null +++ b/advent-of-code-2022.csproj @@ -0,0 +1,98 @@ + + + + Exe + net6.0 + aoc2022 + enable + enable + False + True + + + + 5 + True + + + + 5 + True + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/advent-of-code-2022.sln b/advent-of-code-2022.sln new file mode 100644 index 0000000..30b460b --- /dev/null +++ b/advent-of-code-2022.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "advent-of-code-2022", "advent-of-code-2022.csproj", "{1B54D933-507B-4F44-9BE3-F1794B593AF7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1B54D933-507B-4F44-9BE3-F1794B593AF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B54D933-507B-4F44-9BE3-F1794B593AF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B54D933-507B-4F44-9BE3-F1794B593AF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B54D933-507B-4F44-9BE3-F1794B593AF7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {17D280F0-AD9F-481E-8687-28AAB4A54437} + EndGlobalSection +EndGlobal diff --git a/inputs/01.txt b/inputs/01.txt new file mode 100644 index 0000000..620c30e --- /dev/null +++ b/inputs/01.txt @@ -0,0 +1,2000 @@ +141 +152 +164 +163 +164 +179 +210 +209 +208 +236 +227 +228 +227 +223 +226 +225 +228 +234 +218 +215 +206 +215 +218 +215 +209 +226 +233 +236 +234 +232 +230 +225 +226 +224 +216 +213 +221 +224 +225 +228 +227 +198 +196 +190 +167 +177 +191 +186 +189 +184 +174 +163 +152 +164 +155 +158 +172 +170 +174 +181 +180 +189 +190 +185 +182 +183 +201 +209 +216 +217 +218 +219 +220 +213 +212 +215 +211 +216 +234 +233 +215 +208 +215 +210 +209 +215 +217 +213 +236 +237 +238 +237 +261 +263 +257 +259 +262 +277 +278 +275 +279 +271 +272 +282 +277 +241 +233 +225 +230 +235 +226 +225 +229 +231 +225 +223 +226 +217 +219 +223 +226 +217 +194 +203 +205 +209 +192 +184 +182 +189 +190 +189 +188 +186 +185 +212 +214 +211 +213 +234 +235 +234 +235 +223 +201 +207 +227 +222 +221 +239 +240 +229 +242 +245 +242 +261 +260 +253 +236 +230 +243 +263 +261 +257 +267 +261 +235 +244 +219 +220 +229 +239 +218 +229 +228 +235 +236 +237 +242 +225 +222 +230 +239 +240 +258 +259 +299 +328 +330 +331 +339 +338 +339 +340 +339 +340 +323 +320 +321 +322 +323 +342 +369 +388 +379 +363 +362 +369 +383 +395 +392 +365 +380 +411 +407 +408 +406 +405 +403 +405 +403 +399 +400 +385 +388 +390 +399 +401 +404 +408 +406 +389 +388 +391 +399 +410 +411 +412 +415 +408 +416 +417 +441 +442 +440 +442 +446 +443 +439 +440 +443 +479 +490 +495 +509 +486 +487 +519 +504 +510 +514 +504 +505 +507 +513 +511 +521 +522 +529 +534 +531 +533 +512 +522 +523 +540 +542 +562 +564 +567 +592 +599 +605 +625 +635 +639 +642 +643 +637 +631 +629 +628 +629 +628 +629 +621 +619 +618 +617 +618 +613 +612 +609 +603 +602 +592 +591 +590 +602 +600 +599 +602 +604 +602 +617 +615 +594 +578 +582 +585 +584 +595 +615 +614 +617 +614 +631 +660 +664 +653 +657 +667 +668 +667 +669 +659 +662 +659 +654 +648 +636 +637 +635 +647 +635 +644 +642 +639 +636 +641 +638 +637 +647 +646 +644 +643 +642 +639 +645 +649 +650 +656 +661 +644 +645 +646 +632 +640 +645 +646 +647 +648 +651 +645 +630 +635 +636 +640 +641 +643 +640 +636 +641 +648 +650 +659 +682 +675 +693 +686 +682 +677 +678 +679 +678 +682 +657 +641 +632 +652 +645 +659 +638 +634 +633 +635 +636 +622 +626 +625 +624 +646 +639 +640 +641 +638 +637 +638 +635 +636 +637 +638 +637 +640 +659 +651 +653 +647 +652 +643 +645 +652 +675 +668 +663 +666 +650 +651 +652 +661 +645 +640 +631 +632 +634 +637 +641 +642 +647 +660 +662 +664 +669 +668 +666 +683 +685 +701 +702 +683 +681 +676 +677 +683 +668 +647 +659 +661 +665 +666 +665 +659 +639 +644 +624 +622 +620 +617 +620 +636 +620 +621 +646 +644 +643 +650 +646 +639 +640 +647 +636 +633 +634 +633 +642 +643 +652 +648 +629 +642 +649 +633 +632 +633 +631 +626 +627 +641 +647 +646 +643 +644 +648 +656 +654 +672 +673 +666 +670 +676 +699 +704 +705 +672 +671 +670 +684 +685 +689 +688 +695 +700 +702 +733 +734 +706 +702 +713 +709 +714 +718 +716 +693 +699 +720 +701 +694 +700 +707 +708 +702 +703 +705 +719 +717 +719 +738 +726 +721 +719 +706 +712 +729 +730 +715 +717 +730 +733 +730 +749 +756 +759 +760 +758 +759 +768 +769 +777 +778 +780 +784 +803 +804 +820 +813 +816 +815 +820 +818 +804 +795 +794 +791 +792 +791 +802 +793 +794 +789 +793 +778 +776 +752 +756 +741 +745 +747 +748 +758 +762 +777 +779 +784 +785 +789 +790 +787 +791 +789 +772 +813 +816 +818 +811 +818 +823 +824 +815 +816 +819 +818 +819 +820 +821 +825 +827 +837 +821 +823 +812 +814 +816 +840 +855 +857 +855 +871 +881 +889 +893 +892 +897 +901 +902 +896 +898 +912 +913 +904 +905 +906 +902 +859 +863 +862 +865 +868 +896 +906 +907 +896 +897 +902 +903 +900 +901 +895 +897 +903 +907 +914 +916 +919 +920 +929 +932 +931 +932 +915 +920 +922 +909 +908 +907 +906 +908 +910 +908 +877 +878 +876 +873 +872 +883 +868 +872 +868 +862 +875 +881 +883 +885 +879 +877 +880 +882 +881 +882 +881 +866 +869 +867 +879 +865 +856 +855 +861 +871 +876 +864 +865 +849 +848 +842 +807 +805 +810 +836 +816 +815 +857 +859 +857 +864 +865 +868 +871 +875 +874 +868 +857 +840 +841 +840 +838 +845 +833 +844 +884 +883 +884 +880 +884 +876 +870 +890 +889 +882 +887 +890 +883 +881 +880 +882 +888 +884 +900 +889 +887 +890 +891 +892 +897 +908 +909 +906 +907 +884 +882 +883 +869 +883 +872 +870 +867 +870 +857 +858 +854 +853 +848 +857 +856 +857 +864 +860 +857 +873 +835 +836 +835 +837 +839 +840 +844 +846 +838 +839 +824 +827 +829 +820 +821 +820 +822 +794 +817 +845 +846 +848 +849 +847 +850 +828 +820 +821 +826 +835 +841 +842 +846 +855 +837 +839 +848 +864 +867 +869 +874 +894 +876 +877 +876 +873 +874 +868 +866 +870 +842 +844 +819 +811 +818 +813 +811 +812 +813 +820 +823 +818 +815 +819 +816 +817 +807 +806 +811 +813 +819 +825 +811 +829 +832 +825 +826 +831 +830 +831 +833 +825 +827 +815 +823 +812 +814 +815 +812 +834 +839 +845 +844 +849 +856 +855 +862 +866 +873 +859 +851 +843 +819 +804 +790 +824 +827 +823 +833 +832 +833 +849 +882 +892 +920 +911 +910 +909 +913 +905 +908 +909 +913 +914 +915 +932 +941 +942 +976 +977 +984 +983 +984 +989 +982 +986 +985 +992 +1001 +1022 +1024 +1010 +1007 +996 +978 +979 +969 +957 +951 +948 +946 +943 +930 +929 +922 +924 +923 +924 +953 +949 +950 +922 +890 +889 +882 +902 +901 +896 +871 +903 +909 +931 +937 +945 +953 +958 +963 +964 +994 +971 +970 +959 +968 +974 +973 +974 +973 +972 +973 +972 +973 +977 +1012 +1033 +1032 +1029 +1027 +1028 +1055 +1056 +1070 +1065 +1091 +1074 +1066 +1074 +1075 +1084 +1083 +1081 +1075 +1074 +1071 +1098 +1087 +1076 +1075 +1079 +1094 +1104 +1105 +1111 +1110 +1108 +1102 +1064 +1060 +1076 +1048 +1059 +1065 +1077 +1054 +1061 +1066 +1087 +1093 +1108 +1107 +1105 +1102 +1101 +1105 +1106 +1100 +1104 +1105 +1107 +1106 +1096 +1077 +1075 +1076 +1083 +1091 +1080 +1058 +1050 +1051 +1064 +1074 +1077 +1049 +1051 +1052 +1063 +1077 +1079 +1085 +1074 +1078 +1073 +1070 +1065 +1080 +1097 +1071 +1072 +1074 +1102 +1104 +1113 +1114 +1123 +1125 +1129 +1131 +1149 +1152 +1147 +1154 +1161 +1162 +1163 +1169 +1157 +1151 +1158 +1159 +1155 +1154 +1121 +1112 +1113 +1080 +1082 +1075 +1076 +1071 +1062 +1074 +1079 +1076 +1097 +1100 +1091 +1084 +1098 +1083 +1103 +1132 +1134 +1125 +1127 +1128 +1129 +1131 +1130 +1131 +1135 +1131 +1129 +1142 +1154 +1142 +1141 +1145 +1152 +1158 +1172 +1162 +1179 +1180 +1179 +1190 +1187 +1191 +1190 +1186 +1198 +1182 +1178 +1174 +1158 +1154 +1159 +1160 +1172 +1164 +1145 +1161 +1170 +1181 +1189 +1192 +1186 +1182 +1173 +1190 +1178 +1177 +1184 +1186 +1193 +1198 +1197 +1194 +1203 +1177 +1195 +1196 +1201 +1208 +1205 +1204 +1205 +1195 +1196 +1219 +1220 +1217 +1219 +1220 +1213 +1214 +1219 +1230 +1237 +1241 +1243 +1242 +1243 +1267 +1268 +1264 +1275 +1278 +1273 +1274 +1281 +1286 +1284 +1288 +1284 +1294 +1259 +1280 +1285 +1284 +1300 +1303 +1313 +1303 +1317 +1316 +1315 +1307 +1320 +1333 +1342 +1356 +1359 +1364 +1376 +1382 +1385 +1389 +1390 +1391 +1387 +1388 +1389 +1387 +1388 +1409 +1402 +1400 +1394 +1390 +1356 +1355 +1356 +1359 +1371 +1375 +1376 +1358 +1361 +1344 +1371 +1379 +1373 +1367 +1364 +1365 +1364 +1363 +1362 +1361 +1364 +1361 +1360 +1362 +1367 +1366 +1383 +1384 +1389 +1390 +1416 +1415 +1416 +1440 +1431 +1440 +1441 +1444 +1448 +1453 +1446 +1447 +1428 +1426 +1452 +1453 +1431 +1423 +1421 +1420 +1410 +1417 +1418 +1417 +1412 +1402 +1401 +1406 +1402 +1416 +1419 +1405 +1408 +1413 +1415 +1406 +1407 +1408 +1394 +1405 +1397 +1378 +1382 +1381 +1380 +1384 +1385 +1384 +1392 +1399 +1405 +1409 +1407 +1409 +1410 +1413 +1406 +1422 +1421 +1419 +1420 +1421 +1429 +1433 +1417 +1419 +1416 +1411 +1410 +1415 +1427 +1443 +1439 +1438 +1435 +1436 +1438 +1442 +1458 +1463 +1455 +1481 +1480 +1481 +1491 +1498 +1496 +1504 +1502 +1499 +1494 +1493 +1494 +1496 +1500 +1503 +1494 +1492 +1485 +1487 +1488 +1508 +1510 +1534 +1530 +1540 +1502 +1501 +1494 +1495 +1492 +1490 +1505 +1500 +1501 +1499 +1501 +1495 +1493 +1498 +1504 +1510 +1519 +1535 +1531 +1537 +1546 +1557 +1559 +1558 +1576 +1585 +1590 +1588 +1591 +1603 +1620 +1619 +1620 +1651 +1650 +1628 +1630 +1631 +1630 +1636 +1635 +1636 +1625 +1624 +1622 +1611 +1610 +1608 +1613 +1612 +1609 +1616 +1615 +1637 +1638 +1643 +1645 +1648 +1649 +1650 +1649 +1647 +1648 +1653 +1651 +1654 +1660 +1656 +1654 +1653 +1657 +1646 +1652 +1653 +1670 +1695 +1689 +1690 +1670 +1679 +1664 +1660 +1641 +1625 +1629 +1643 +1647 +1655 +1664 +1667 +1668 +1672 +1671 +1690 +1689 +1691 +1690 +1704 +1701 +1704 +1715 +1710 +1728 +1719 +1742 +1737 +1738 +1727 +1732 +1718 +1720 +1727 +1737 +1741 +1744 +1745 +1747 +1758 +1753 +1745 +1752 +1770 +1778 +1782 +1812 +1813 +1809 +1806 +1804 +1799 +1821 +1845 +1841 +1845 +1850 +1857 +1873 +1879 +1909 +1907 +1906 +1897 +1900 +1897 +1898 +1896 +1900 +1909 +1939 +1940 +1929 +1948 +1959 +1929 +1939 +1963 +1961 +1983 +1984 +1985 +1980 +1981 +1982 +1972 +1973 +1974 +1988 +1996 +1999 +1995 +1982 +1985 +1995 +2008 +2007 +2023 +2025 +2024 +2026 +2025 +2020 +2013 +2014 +2025 +2048 +2055 +2060 +2063 +2066 +2067 +2070 +2071 +2072 +2062 +2057 +2025 +2028 +2029 +2028 +2020 +2015 +2016 +2014 +2012 +2016 +2015 +2014 +2005 +2008 +2009 +2005 +1999 +2003 +1995 +1994 +1990 +1992 +1996 +1995 +1990 +1991 +1999 +2000 +1989 +1991 +1992 +1994 +2024 +2030 +2029 +2024 +2023 +2044 +2045 +2044 +2042 +2040 +2049 +2050 +2046 +2044 +2049 +2064 +2059 +2063 +2064 +2061 +2059 +2062 +2064 +2075 +2074 +2085 +2088 +2075 +2102 +2101 +2082 +2083 +2085 +2084 +2097 +2091 +2088 +2084 +2074 +2082 +2083 +2084 +2089 +2088 +2091 +2095 +2105 +2124 +2118 +2121 +2116 +2117 +2118 +2119 +2127 +2131 +2120 +2154 +2152 +2160 +2170 +2166 +2169 +2173 +2174 +2156 +2149 +2147 +2138 +2140 +2141 +2136 +2137 +2138 +2139 +2129 +2130 +2128 +2120 +2112 +2119 +2126 +2129 +2128 +2137 +2142 +2161 +2147 +2139 +2142 +2148 +2152 +2154 +2136 +2119 +2121 +2098 +2115 +2099 +2100 +2104 +2099 +2098 +2097 +2112 +2108 +2147 +2146 +2148 +2147 +2125 +2099 +2103 +2107 +2111 +2123 +2126 +2128 +2130 +2129 +2131 +2126 +2127 +2130 +2112 +2103 +2100 +2113 +2121 +2118 +2119 +2129 +2123 +2112 +2102 +2069 +2071 +2075 +2094 +2102 +2106 +2096 +2097 +2100 +2109 +2104 +2103 +2108 +2100 +2103 +2104 +2108 +2115 +2117 +2112 +2120 +2127 +2128 +2126 +2106 +2104 +2106 +2100 +2105 +2102 +2112 +2119 +2127 +2129 +2136 +2150 +2166 +2153 +2181 +2159 +2160 +2159 +2183 +2184 +2186 +2174 +2173 +2183 +2178 +2163 +2156 +2161 +2162 +2163 +2156 +2145 +2149 +2145 +2147 +2151 +2147 +2150 +2138 +2150 +2151 +2149 +2150 +2151 +2154 +2136 +2173 +2184 +2183 +2185 +2186 +2187 +2185 +2184 +2188 +2186 +2190 +2197 +2166 +2167 +2166 +2167 +2170 +2178 +2196 +2181 +2182 +2184 +2196 +2207 +2206 +2211 +2218 +2217 +2216 +2212 +2216 +2232 +2235 +2241 +2242 +2238 +2239 +2236 +2250 +2272 +2281 +2277 +2278 +2298 +2294 +2296 +2292 +2285 +2303 +2296 +2290 +2292 +2272 +2285 +2287 +2311 +2315 +2336 +2344 +2345 +2326 +2331 +2333 +2344 +2359 +2366 +2364 +2366 +2370 +2368 +2360 +2373 +2397 +2394 +2398 +2397 +2399 +2407 +2412 +2426 +2424 +2461 +2469 +2467 +2466 +2465 +2464 +2473 +2475 +2474 +2471 +2473 +2469 +2470 +2460 +2461 +2478 +2465 +2471 +2475 +2482 +2485 +2494 +2492 +2482 +2493 +2509 +2501 +2513 +2486 +2489 +2492 +2505 +2507 +2505 +2506 +2505 +2507 +2509 +2510 +2511 +2518 +2523 +2529 +2540 +2526 +2530 +2535 +2550 +2552 +2565 +2558 +2569 +2563 +2573 +2577 +2579 +2575 +2573 +2577 +2575 +2591 +2607 +2609 +2614 +2619 +2648 +2649 +2650 +2646 +2648 +2651 +2660 +2653 +2645 +2651 +2652 +2658 +2657 +2627 +2628 +2642 +2631 +2632 +2634 +2639 +2648 +2647 +2648 +2649 +2654 +2655 +2660 +2671 +2682 \ No newline at end of file diff --git a/inputs/02.txt b/inputs/02.txt new file mode 100644 index 0000000..36084d3 --- /dev/null +++ b/inputs/02.txt @@ -0,0 +1,1000 @@ +forward 9 +down 9 +up 4 +down 5 +down 6 +up 6 +down 7 +down 1 +forward 6 +down 4 +forward 8 +up 5 +forward 9 +down 1 +down 4 +up 4 +up 5 +up 4 +down 1 +forward 8 +down 1 +forward 2 +forward 8 +down 9 +forward 2 +down 6 +down 2 +up 8 +down 6 +forward 9 +forward 7 +down 6 +forward 3 +down 2 +forward 4 +down 5 +up 2 +down 9 +down 8 +up 5 +forward 5 +forward 4 +up 9 +forward 9 +down 8 +forward 8 +forward 2 +up 8 +down 7 +forward 8 +down 3 +forward 6 +up 9 +forward 9 +forward 4 +forward 9 +forward 6 +down 4 +up 2 +forward 4 +up 5 +up 6 +forward 9 +down 3 +forward 4 +forward 9 +down 1 +forward 1 +up 6 +up 4 +forward 7 +up 7 +up 3 +forward 2 +forward 8 +forward 6 +down 4 +forward 2 +forward 3 +down 7 +down 5 +down 8 +down 5 +forward 1 +down 8 +down 2 +down 8 +down 3 +forward 4 +forward 8 +forward 9 +down 1 +forward 8 +down 1 +down 6 +down 7 +down 7 +forward 5 +forward 3 +down 2 +down 1 +forward 2 +forward 1 +down 6 +down 4 +up 5 +up 9 +down 4 +forward 9 +down 2 +down 5 +down 4 +down 2 +forward 2 +forward 4 +forward 6 +forward 6 +forward 3 +down 6 +up 5 +forward 8 +forward 3 +down 9 +down 3 +forward 4 +forward 2 +down 9 +down 8 +down 7 +down 3 +forward 2 +down 7 +down 3 +down 5 +forward 6 +up 9 +up 8 +forward 5 +down 6 +down 1 +down 6 +down 5 +forward 7 +down 2 +forward 8 +forward 7 +forward 2 +forward 8 +up 6 +forward 5 +down 2 +down 5 +up 8 +up 6 +forward 1 +down 4 +up 5 +up 5 +up 5 +forward 4 +up 1 +forward 3 +down 9 +down 6 +up 1 +forward 1 +forward 2 +forward 1 +forward 4 +forward 6 +forward 6 +up 7 +down 7 +down 7 +down 9 +forward 9 +down 1 +down 5 +down 1 +down 7 +down 1 +up 6 +forward 2 +down 4 +up 3 +up 2 +forward 6 +up 4 +down 1 +down 5 +forward 9 +up 4 +up 3 +forward 3 +up 7 +forward 2 +forward 5 +down 9 +forward 7 +forward 4 +down 1 +up 2 +forward 4 +up 4 +down 2 +forward 4 +up 5 +up 1 +down 9 +down 3 +up 6 +forward 7 +up 7 +forward 2 +down 4 +up 3 +up 3 +forward 4 +up 5 +down 3 +up 8 +forward 6 +forward 8 +down 1 +down 9 +down 7 +forward 7 +forward 5 +forward 2 +up 9 +forward 3 +forward 1 +down 7 +down 6 +forward 5 +up 3 +forward 6 +down 4 +forward 9 +down 7 +forward 9 +down 9 +down 5 +down 6 +down 2 +down 2 +down 8 +down 3 +down 9 +forward 5 +up 6 +forward 1 +down 3 +down 2 +up 1 +up 6 +forward 3 +down 6 +down 6 +up 9 +up 8 +forward 2 +down 7 +forward 5 +up 9 +down 7 +down 3 +forward 2 +forward 2 +up 9 +forward 1 +forward 7 +down 9 +forward 6 +forward 7 +up 8 +down 7 +down 5 +down 3 +up 6 +down 5 +forward 6 +down 9 +down 6 +up 9 +down 7 +forward 2 +down 5 +up 4 +down 4 +down 8 +forward 7 +down 9 +forward 8 +forward 6 +down 7 +down 1 +forward 5 +up 6 +forward 4 +up 7 +up 4 +up 5 +forward 9 +forward 5 +forward 4 +down 6 +down 5 +forward 2 +forward 7 +down 8 +forward 3 +up 5 +down 2 +up 3 +forward 4 +up 5 +up 2 +forward 4 +forward 1 +forward 1 +forward 4 +forward 4 +down 2 +forward 1 +forward 1 +up 5 +up 7 +down 8 +down 4 +forward 2 +forward 2 +down 3 +forward 7 +down 8 +up 3 +forward 2 +down 2 +forward 3 +up 2 +forward 3 +up 6 +down 7 +up 7 +down 3 +up 9 +forward 3 +forward 7 +down 7 +up 9 +down 6 +down 2 +forward 8 +forward 8 +up 7 +down 6 +forward 2 +forward 1 +down 4 +up 2 +forward 6 +up 7 +down 5 +up 1 +forward 3 +forward 9 +up 4 +forward 5 +forward 8 +down 3 +up 5 +forward 9 +down 6 +up 9 +forward 5 +down 4 +down 1 +down 6 +up 9 +up 2 +forward 5 +down 1 +up 3 +down 5 +forward 2 +down 4 +forward 5 +down 6 +down 4 +down 4 +forward 1 +down 7 +down 2 +forward 4 +forward 5 +up 9 +down 6 +down 2 +forward 7 +up 8 +down 9 +forward 7 +down 5 +down 2 +down 8 +down 8 +up 4 +up 3 +down 3 +down 7 +forward 4 +forward 6 +down 4 +up 7 +forward 4 +forward 4 +forward 1 +down 3 +down 2 +forward 7 +forward 2 +up 9 +down 7 +up 7 +forward 2 +forward 6 +forward 9 +down 3 +forward 7 +forward 5 +up 5 +up 1 +forward 6 +forward 4 +down 2 +forward 3 +forward 9 +down 1 +forward 6 +forward 7 +forward 1 +up 7 +up 4 +forward 7 +forward 8 +down 7 +down 8 +down 9 +forward 7 +down 9 +up 6 +down 7 +up 3 +down 7 +forward 4 +forward 9 +forward 1 +down 4 +forward 1 +up 4 +up 4 +forward 9 +forward 8 +up 4 +down 2 +forward 4 +forward 2 +forward 8 +down 2 +up 6 +down 4 +forward 6 +forward 5 +down 2 +forward 9 +down 5 +forward 5 +down 3 +down 2 +up 9 +down 3 +forward 6 +forward 6 +up 9 +down 1 +forward 4 +up 3 +forward 1 +forward 3 +forward 3 +down 6 +down 2 +forward 8 +down 4 +forward 8 +forward 8 +forward 5 +up 6 +forward 3 +down 1 +down 8 +forward 3 +forward 4 +down 2 +down 7 +up 8 +forward 3 +forward 8 +up 2 +forward 6 +down 4 +forward 9 +forward 5 +down 1 +forward 6 +forward 2 +down 3 +up 4 +down 7 +down 2 +up 2 +forward 7 +down 6 +down 2 +up 5 +up 5 +down 9 +down 7 +down 3 +down 1 +down 9 +forward 4 +down 4 +forward 7 +forward 8 +forward 4 +up 6 +forward 6 +forward 9 +down 2 +forward 4 +down 8 +down 4 +forward 5 +forward 2 +up 4 +down 3 +up 8 +up 1 +down 1 +forward 9 +up 3 +up 1 +forward 1 +forward 7 +forward 1 +down 7 +forward 7 +forward 7 +down 7 +forward 4 +up 6 +forward 3 +down 1 +up 1 +up 8 +forward 5 +forward 2 +up 4 +forward 7 +down 2 +down 3 +down 8 +up 7 +up 5 +forward 8 +down 5 +down 3 +down 9 +forward 6 +forward 4 +down 9 +up 5 +forward 3 +up 7 +up 9 +up 1 +forward 1 +forward 3 +forward 1 +up 8 +up 4 +down 1 +down 8 +down 3 +down 1 +down 1 +down 9 +forward 4 +down 3 +forward 9 +forward 2 +down 1 +forward 9 +up 7 +forward 6 +up 4 +forward 8 +forward 3 +down 2 +down 2 +down 2 +up 5 +forward 1 +up 1 +forward 7 +down 1 +forward 1 +down 8 +up 4 +up 1 +forward 7 +down 8 +down 9 +forward 2 +forward 1 +up 3 +forward 4 +up 8 +forward 5 +down 2 +forward 6 +forward 8 +up 9 +forward 2 +down 7 +down 4 +up 3 +forward 1 +forward 6 +forward 9 +down 1 +down 8 +down 1 +down 2 +forward 3 +forward 9 +forward 2 +forward 4 +forward 7 +forward 3 +up 8 +up 9 +forward 3 +forward 6 +down 5 +up 6 +down 8 +forward 5 +up 4 +up 9 +forward 6 +forward 3 +up 9 +forward 8 +forward 5 +forward 9 +forward 7 +up 6 +forward 3 +forward 1 +up 4 +forward 9 +forward 8 +up 1 +up 2 +down 3 +down 4 +down 9 +down 4 +down 5 +down 6 +down 2 +down 5 +forward 6 +forward 4 +up 2 +up 7 +down 5 +down 9 +forward 3 +down 5 +forward 6 +down 7 +forward 1 +forward 7 +forward 9 +forward 7 +forward 4 +forward 4 +up 1 +up 4 +down 6 +up 2 +up 1 +down 4 +forward 2 +down 4 +forward 6 +down 3 +up 6 +down 2 +up 3 +forward 1 +forward 9 +forward 3 +up 9 +forward 7 +forward 5 +forward 4 +down 5 +down 9 +forward 6 +forward 7 +up 1 +forward 7 +forward 2 +forward 2 +forward 5 +forward 6 +down 3 +down 7 +down 3 +down 4 +down 6 +down 1 +forward 2 +down 8 +forward 4 +forward 7 +up 1 +down 4 +down 1 +down 2 +down 3 +up 3 +forward 9 +forward 2 +down 8 +up 3 +forward 8 +forward 7 +up 8 +down 8 +forward 2 +down 9 +down 9 +down 5 +forward 1 +forward 3 +forward 6 +up 1 +up 2 +forward 1 +down 3 +up 6 +forward 2 +forward 8 +forward 2 +down 3 +forward 8 +forward 9 +down 7 +down 3 +down 2 +down 9 +down 3 +up 6 +forward 9 +forward 5 +forward 1 +forward 9 +down 9 +up 2 +down 1 +up 6 +forward 6 +down 3 +forward 6 +forward 3 +forward 5 +forward 4 +up 2 +up 4 +up 6 +forward 1 +forward 6 +up 6 +up 4 +up 7 +down 8 +down 5 +up 1 +up 1 +down 5 +forward 5 +down 9 +forward 8 +down 3 +up 4 +down 9 +down 1 +forward 2 +forward 9 +down 3 +down 8 +down 5 +down 6 +forward 7 +forward 1 +down 9 +down 7 +forward 8 +forward 2 +up 1 +up 1 +forward 7 +up 1 +forward 2 +down 9 +up 4 +forward 5 +down 1 +up 1 +down 8 +down 3 +up 1 +down 8 +down 7 +down 2 +forward 9 +down 5 +forward 2 +up 2 +up 6 +up 4 +forward 6 +up 5 +forward 5 +forward 4 +forward 8 +down 8 +down 6 +down 1 +down 3 +down 6 +forward 8 +up 1 +up 5 +down 4 +forward 4 +down 9 +forward 4 +up 6 +down 7 +forward 4 +down 3 +down 4 +forward 1 +forward 3 +down 1 +down 7 +up 8 +down 3 +down 4 +down 3 +forward 3 +down 8 +forward 8 +down 3 +down 7 +forward 2 +up 2 +forward 7 +down 9 +up 7 +forward 5 +down 2 +down 5 +up 4 +up 8 +forward 8 +forward 9 +forward 8 +down 8 +forward 6 +forward 9 +forward 6 +forward 8 +forward 6 +forward 8 +forward 2 +down 7 +down 3 +forward 7 +down 4 +down 5 +up 1 +forward 5 +down 3 +down 7 +up 4 +forward 9 +down 2 +down 3 +forward 1 +up 6 +down 1 +down 9 +forward 8 +forward 9 +forward 2 +down 6 +down 4 +up 3 +up 8 +forward 1 +down 3 +up 8 +up 7 +down 4 +up 3 +down 7 +down 2 +down 5 +down 7 +down 2 +forward 2 +down 3 +up 2 +forward 8 +up 1 +forward 2 +up 4 +forward 1 +forward 8 +forward 6 +forward 2 +down 2 +forward 5 +up 4 +down 9 +down 7 +forward 2 +down 9 +down 9 +forward 6 +down 8 +down 4 +down 7 +down 9 +forward 7 +forward 7 +up 6 +forward 3 +forward 5 +forward 6 +down 8 +up 1 +forward 2 +up 4 +up 2 +down 8 +down 9 +down 1 +down 3 +forward 7 +forward 5 +forward 6 +up 6 +down 7 +up 8 +up 1 +forward 8 +down 5 +up 1 +down 2 +down 5 +forward 6 +down 4 +forward 5 +down 4 +forward 3 +down 5 +up 4 +up 7 +forward 2 +up 2 +down 8 +forward 6 \ No newline at end of file diff --git a/inputs/03.txt b/inputs/03.txt new file mode 100644 index 0000000..99a816b --- /dev/null +++ b/inputs/03.txt @@ -0,0 +1,1000 @@ +000110000001 +011011001101 +001101100111 +001101011001 +110111011101 +110011101010 +111101010001 +010100111101 +011000011000 +001110110011 +001100010110 +110111101100 +110001111100 +001011111100 +000000011010 +110101100111 +011000011111 +011000000111 +011111000110 +100101110111 +010101001110 +111101000011 +010010010110 +100100011111 +101011001110 +001111110000 +110000011111 +110000011000 +011001111100 +010010001101 +000111001110 +110111001110 +110001010101 +100111011001 +000101110000 +110001011100 +111101010010 +101011000001 +001101001111 +110111101010 +101111111000 +110101000110 +011111001001 +001110100001 +010100110111 +110100000110 +101010110010 +100100101110 +101111011110 +000110110101 +011011110101 +111001011110 +110110100111 +000100010001 +001101010110 +100011000110 +001110010010 +010111110111 +011010011101 +110000011100 +010100001001 +000110100000 +101001010000 +000001110000 +101110010011 +010011100111 +010011011000 +110111011111 +000111010010 +101010111010 +111001100100 +101110100011 +111101111110 +010111111000 +010010001111 +110010000011 +001110000010 +100101111110 +000100101001 +101101010000 +111111010000 +101010011000 +011100100001 +011101101000 +001010010100 +010010100011 +110011111111 +110100011001 +111010011110 +011110001101 +011010011100 +100100000001 +111111001010 +110100110011 +110100011111 +100010001110 +101000111100 +100001110010 +110101010011 +101010011101 +011010011010 +101110101101 +001100011010 +101001010101 +101010000100 +000110101010 +100000111100 +000111111100 +000001001011 +010010111100 +011000111001 +111010101100 +010011100010 +010100110001 +001100111011 +101100001111 +111010101111 +010001000011 +000001100010 +000100001011 +100110011011 +101100001110 +000010110100 +011000101011 +010011011100 +110101010000 +101101101100 +101001110000 +010111010011 +110101110001 +011000001000 +011101010010 +111011111110 +010010000110 +110000111000 +101000000110 +011100110000 +111001111010 +110000001100 +101011111110 +100001111100 +011011100110 +101000001101 +001011110011 +111100100011 +101111000111 +101000000001 +001001011010 +010111111010 +101010111001 +011110101001 +101100111101 +011100000010 +000110001111 +111100110101 +100011100010 +000110010100 +011000000011 +010011001011 +000001101111 +101011101101 +100100100101 +011001110110 +010100000000 +100100010001 +001100000100 +100000111010 +101001011001 +010010111001 +110000101010 +001101010101 +110110011100 +010000000011 +111100011000 +000101111110 +100010110101 +101111010000 +000010100010 +101101001010 +011111000000 +011000100100 +110010100110 +010001110011 +010101101101 +001011100000 +001000110110 +001000110111 +110100111110 +110010110100 +101010100111 +000111011001 +111000101101 +110000010110 +010011101010 +110100111011 +100110010100 +100111000011 +011110111111 +010010000111 +111100111110 +001010111101 +000011001110 +000110010101 +111100110011 +101111111001 +101001111011 +111010110000 +000001010101 +100010011001 +111110110010 +110100101100 +100001011110 +100001000011 +101111000011 +101111110100 +111010000010 +001010010110 +010001000110 +100010000101 +111101111010 +000101111111 +010110110100 +110111111110 +011010101011 +100000110011 +000000101001 +010010101111 +010001001010 +000101010100 +101110111010 +101001000000 +001010101111 +011110100110 +110101011001 +100111101101 +110001001001 +110100001010 +100100101001 +110111010011 +011010001011 +011001001101 +110100010001 +010100001100 +011011000001 +110100011100 +001110111111 +111001110010 +001110010000 +011100001110 +001111110001 +001101010111 +111110011100 +111100111010 +010100010100 +000011001010 +011110001010 +111101010011 +100111001010 +010110110011 +000101000000 +000110011010 +100100001111 +000100111111 +010100010101 +001110100011 +100111000100 +100001101110 +011010011110 +001111010101 +111000001100 +100111110110 +101110001100 +101011000111 +001010110010 +100011011100 +110000010000 +101001101011 +111011011000 +000101101001 +011001111011 +101011001111 +001111111111 +110000101011 +111111100011 +101010101111 +001001010001 +011111010001 +001011101110 +011010011011 +011000001011 +100000100000 +001011110110 +011000100011 +001010011010 +000010111111 +001110001111 +111110001100 +010110100011 +110101100010 +100111110000 +010000101011 +011100011111 +001100101010 +101110110100 +100101000111 +111111111010 +000001000001 +110111011001 +010011000000 +101100000101 +110000100100 +110100100101 +101011010010 +101001000101 +110001001111 +010010011010 +000110110111 +011010110001 +001101001001 +010110101000 +101000011000 +110010011010 +100101011111 +001101110011 +110001110001 +011110000110 +111011100101 +001100111001 +001011011011 +001011110001 +010001111101 +011000101001 +100100000110 +011000101111 +001010110100 +000100101010 +111011010110 +100111000000 +001000111010 +101101001111 +000110111010 +001111100001 +011110011001 +100011000101 +001010010011 +110011100110 +010010001011 +110101101110 +111100100101 +101100100010 +111010111101 +000000000011 +011011001110 +101110000001 +000111111000 +100000110001 +101101100111 +001001011001 +101100010010 +001000011100 +111011111100 +010000100011 +111010111100 +011001101111 +100011001111 +011001111010 +110110100101 +010110100110 +011110101101 +011101110001 +111000100101 +000010000000 +100110111001 +000101000001 +000001101100 +011010000100 +111000101001 +111100111111 +100110000110 +100010001010 +011110001000 +100001100100 +101101101010 +101111010001 +010001111100 +001010111001 +001101110111 +010100101100 +100011011101 +010100111000 +000110000000 +110101101010 +010100000101 +101110111100 +001010110000 +000000010101 +000100011000 +011010110100 +010000000010 +111101100011 +000111101001 +011101011100 +101000101101 +110110101011 +011010110011 +011001101010 +100000000011 +101001111111 +111010110100 +010000011100 +011011100000 +110011011000 +111011101111 +100010110110 +010000100111 +110101110101 +100010111001 +011011101000 +011010000001 +001001111110 +100010010001 +010101000110 +111111110010 +101011011110 +010011110110 +000010010100 +100011101111 +001001110110 +000100110100 +100101110110 +011010111001 +010010101110 +110010100011 +011010101010 +000101111000 +111011110011 +100111101110 +101111101001 +010111100010 +111011001011 +111110011110 +110110010110 +010110010111 +011111001100 +110111110010 +110011111000 +001110111101 +111100111000 +000100000010 +110101111110 +010111101101 +111001001010 +000010011100 +110101100100 +111000011110 +010110000000 +011100010011 +011110010100 +101000100111 +111011110101 +000100010000 +000110110011 +100011001011 +111010100000 +010100110101 +001000000101 +010001101100 +010110000101 +100100101111 +011101111110 +000011110000 +000011010011 +101111111110 +101001101010 +000010100011 +010100101010 +001111001110 +011000001001 +010001110100 +010111011110 +100000111111 +101100010101 +111101000110 +110111101111 +011010010010 +011100011100 +001111010010 +111001101000 +110110111010 +101110000111 +011100101100 +011100001010 +110101011101 +011100010010 +010101010010 +000001111101 +110100110111 +011111100111 +111101011110 +110110000110 +100110001011 +111110000001 +010001010011 +101001110110 +011101011101 +010011011110 +000100000000 +100110010001 +000011100110 +101111100001 +101100101010 +001010101110 +001111001101 +110000000111 +110010100001 +011100000111 +100111100111 +101001011111 +110000100011 +111001000111 +010101111010 +110111100100 +001010101100 +001011110100 +001010010111 +110001001000 +110010011001 +110111011100 +001110000011 +010001000010 +100000000101 +110001101001 +000101010111 +101010110101 +100000010000 +000000111100 +011011100100 +110010001110 +110110100000 +101100001100 +110010110111 +010001100010 +101110100010 +001101101101 +010100110000 +010010100000 +011101110100 +100011011001 +010110111101 +010110011011 +011111011111 +001000000000 +001101110101 +010000010101 +000101001000 +011011100101 +001010000101 +110010001101 +000001000011 +001101001110 +000101100010 +010110100001 +010111110011 +011000100111 +100001101011 +100100100011 +111100011001 +010010101000 +101010000010 +010011000001 +100000000010 +010011101011 +101110100111 +111101101011 +011010001111 +001000011000 +011111110111 +101111011100 +011011011111 +110111100010 +010010110001 +111100010111 +111000001111 +101100010011 +010101001101 +110101100001 +010111010110 +110000001111 +000111000000 +110010010001 +001110110101 +101000010010 +010110001100 +001101101010 +110110110110 +000000000111 +011010010000 +011001010111 +001010101011 +001001100011 +001111010110 +000000100111 +000000010100 +001001110011 +010111000010 +010000001100 +101111010111 +101001110100 +100011010111 +000111110100 +011101111010 +000111000010 +011100111100 +011011110100 +101000110011 +010101110111 +111101101000 +010010011011 +000101011111 +010000000110 +011110100101 +111000000100 +010110110101 +010110111001 +101110010000 +010111001111 +001001000110 +010100010000 +101100100111 +101100001000 +110110001001 +011001001010 +011001001110 +110011101001 +010100101111 +111101001000 +100000101100 +111000011000 +011000011100 +111111010001 +111100100100 +011000111110 +010011010000 +100110101100 +110000100001 +001101010011 +011000101110 +000110010000 +011010101100 +001110001010 +010101000001 +101010010101 +100000010111 +000100110101 +110111010110 +101101101011 +100101100101 +101010011110 +111001000100 +011101100111 +010000110101 +100111010110 +010011111110 +111011100100 +100010101101 +010110100101 +100011100000 +110010011101 +011110000011 +111111110011 +100001101100 +000000011000 +000100101101 +000100110000 +000110000010 +011110010011 +111001111111 +000011110101 +111001101100 +111010111010 +000101000101 +111000010110 +111010011000 +101110100110 +111100000100 +101000110001 +000001010110 +101000100000 +110111001010 +001001101000 +010011111010 +100010100100 +110010101001 +111101100101 +010001000101 +011001111101 +110000001110 +100101101100 +110110111100 +010111011101 +111011011100 +011111011100 +100100011001 +111010011011 +110011101011 +100001101000 +010110100010 +101100100110 +010110111010 +111111011001 +101011110011 +011001101001 +110011100111 +010100111110 +001001010011 +010101110000 +010111010101 +100110011100 +110010011011 +001011010111 +000001010100 +001111011100 +000010100100 +010101011011 +010100001011 +000001011110 +011111010111 +010000101100 +111111101111 +100101010110 +100011010101 +100101100100 +010011111101 +010011001111 +011010000101 +110010000111 +101110110110 +000010001001 +111000010010 +111001001111 +111000111010 +010111011100 +011010001101 +111011011111 +001010110001 +011111111101 +001001001011 +100100011000 +001000101010 +101001111010 +011101000010 +111010000111 +001000100000 +100000100010 +111111011000 +110011000110 +111111100010 +100110011101 +101111101000 +001001001100 +100001100001 +100111110011 +001000100010 +011100011000 +000001010010 +100010111110 +101111010010 +100100000011 +000101000010 +101001011100 +000101001101 +000101110010 +111111111011 +110100000100 +000001000010 +101011010101 +000011110011 +000011001000 +010111111001 +111110100111 +100110100111 +001100001111 +000100011110 +001101000101 +011110000000 +000100111100 +011110010111 +011011010011 +010101011110 +100111001100 +011111101010 +011011001000 +100100110100 +011101010101 +100101111001 +100011101001 +101010000001 +101110111001 +110100101111 +010001001100 +100110110000 +100000111001 +010111011011 +111110001000 +101000111101 +000011010110 +100010010010 +010010011111 +011110111110 +000100111000 +111100001101 +000010110101 +010010001110 +101111000100 +100101111100 +010100011111 +110101010010 +000010111110 +100001000100 +001010001010 +110000111100 +010000101000 +111000110110 +001001101010 +001101011100 +001000001100 +110010011100 +011111000011 +111100101101 +110111010101 +000010010110 +111101110111 +000011010010 +111110000000 +001111000101 +100010111100 +001011000011 +010110000010 +001101111101 +101011000011 +100001010010 +100001010100 +111100011101 +010110001101 +011101101101 +101010101110 +110111110100 +001111001010 +100010111101 +011010001001 +111111001000 +100010100001 +111010010110 +001101000011 +000011111011 +110101000100 +110101111101 +010010000011 +110101001111 +001110111110 +101111100011 +011011011100 +001100100100 +010011111000 +101010001111 +111101010101 +001110110001 +101100010100 +100010001000 +101110000110 +001101100001 +111001000110 +101110011110 +100010000110 +101010111011 +001010110101 +001101101110 +100000101111 +011001000001 +010100001110 +100111101000 +011000110000 +110000101111 +010110111111 +001110101000 +111010100010 +100000110100 +100100000010 +101010110011 +010101000100 +100100001011 +000110011011 +110001000010 +111111000111 +010001010010 +001000011011 +110010000101 +111110110111 +001000111001 +101111100010 +101001110010 +001101101111 +101001101101 +001000010011 +111000011111 +111111110101 +101001000001 +010101101111 +110100100100 +001011101011 +001010111100 +000111100011 +010001010100 +110011000011 +100111100000 +001001111001 +111111100001 +001001100110 +001000101001 +111101011011 +111000000010 +100000100111 +101011100100 +001010111110 +100110110100 +110111100111 +000110101000 +011001000111 +010111000001 +101111101101 +000001101101 +000110100111 +110001010100 +111110101111 +111110110101 +111000010001 +101111011010 +101111110110 +000000101100 +010011010010 +000101010101 +100110101000 +000111000011 +001000010110 +000111001010 +000001000111 +000101000110 +000100010100 +001011011101 +001001111101 +000000000101 +000100100101 +101010001101 +001010000111 +110110001110 +000010011010 +011001110101 +111111101011 +001100001100 +100111001000 +011010011000 +000001101001 +010001111001 +001001110100 +111110111000 +000010010001 +111111010011 +100000011011 +010110010100 +010000111000 +100001110110 +111101111001 +110000011010 +100110101111 +010001100111 +100001011100 +110000010011 +010100001111 +110010010110 +110010111000 +001011000110 +101011001101 +010000000100 +010010000000 +010100100101 +110010100101 +010101110110 +101101001101 +110000110011 +110011110110 +111101110110 +001011111001 +110101101000 +101111111100 +110011111101 +100001111110 +011101111000 +101010000111 +101110011111 +101000010101 \ No newline at end of file diff --git a/inputs/04.txt b/inputs/04.txt new file mode 100644 index 0000000..48cc64f --- /dev/null +++ b/inputs/04.txt @@ -0,0 +1,601 @@ +83,5,71,61,88,55,95,6,0,97,20,16,27,7,79,25,81,29,22,52,43,21,53,59,99,18,35,96,51,93,14,77,15,3,57,28,58,17,50,32,74,63,76,84,65,9,62,67,48,12,8,68,31,19,36,85,98,30,91,89,66,80,75,47,4,23,60,70,87,90,13,38,56,34,46,24,41,92,37,49,73,10,94,26,42,40,33,54,86,82,72,39,2,45,78,11,1,44,69,64 + +97 62 17 5 79 + 1 99 98 80 84 +44 16 2 40 94 +68 95 49 32 8 +38 35 23 89 3 + +48 53 59 99 43 +77 24 62 50 27 +28 8 10 86 18 +96 9 92 66 67 +20 55 87 52 31 + +79 51 62 33 5 +15 39 21 48 90 +88 29 7 92 98 +87 49 84 6 14 +72 85 46 71 26 + + 3 86 40 61 65 + 4 82 28 46 32 +31 5 33 96 98 +30 62 68 75 70 + 9 18 92 19 72 + +82 24 95 21 79 +85 84 38 89 50 + 7 10 5 25 20 +99 37 48 86 12 +68 93 6 66 43 + + 9 95 75 14 1 +94 90 40 84 24 +43 72 93 4 87 +48 50 53 20 6 +65 11 38 25 46 + +41 22 47 34 55 +74 57 42 85 33 +40 21 52 78 7 +51 58 37 4 49 +53 75 11 48 76 + +90 6 98 25 80 +41 81 30 87 33 +11 21 79 62 92 +27 60 46 56 88 + 4 69 70 13 84 + + 1 22 72 43 58 +78 97 52 61 62 +27 48 81 2 63 +33 37 4 82 18 +65 28 70 31 59 + +78 51 69 47 16 +48 55 58 70 37 + 7 59 66 5 76 +94 52 82 22 10 +13 83 95 24 79 + + 8 38 40 67 24 +45 9 21 7 89 +82 96 72 92 4 +86 49 80 79 22 +26 11 84 78 70 + +32 73 0 37 86 +78 42 13 30 53 +44 99 51 12 96 +45 57 63 34 58 +41 91 7 49 52 + + 1 66 8 6 7 +47 96 25 77 72 +23 22 31 42 24 +52 27 53 51 99 +21 65 35 84 5 + +49 1 79 39 82 + 7 96 13 33 85 + 3 53 32 12 50 +36 30 27 55 95 +16 24 2 66 77 + +45 75 85 35 72 +99 25 91 68 28 +29 52 1 80 98 +62 46 63 22 44 +82 86 57 24 58 + +70 19 79 7 24 +35 71 93 42 76 +17 88 62 25 12 +54 0 11 32 58 +38 64 29 75 80 + +58 93 63 52 23 +77 60 1 38 87 +75 89 85 25 91 +64 39 96 49 66 +14 45 84 13 29 + +85 10 21 33 80 +78 86 77 41 36 +98 58 53 82 72 +75 20 65 3 46 +52 16 74 45 99 + +45 97 96 23 62 +79 59 60 87 64 +75 2 30 47 50 +85 81 56 11 38 +17 26 40 7 66 + +94 99 67 88 82 +96 5 21 53 52 +41 15 49 35 89 +54 39 66 24 51 + 9 6 62 33 70 + +33 89 48 4 20 +46 66 45 76 7 +12 77 43 60 15 +54 58 91 95 69 +11 8 32 31 18 + +63 78 55 7 60 +95 14 38 10 45 + 3 16 72 53 37 + 1 89 70 75 44 + 5 6 66 13 46 + +74 65 27 53 39 +67 66 76 13 31 +75 51 11 49 59 +18 12 71 9 89 +98 24 73 26 43 + +90 21 75 77 97 +80 29 54 16 10 +55 98 65 19 7 +96 76 20 28 88 +94 83 91 26 86 + +60 57 22 95 23 +81 4 34 36 14 +77 1 45 24 19 +33 88 8 28 74 + 2 17 37 32 94 + +34 82 45 65 44 +70 89 95 20 79 +88 18 62 68 37 +85 17 54 86 69 +97 25 13 42 67 + +70 30 59 94 86 +40 87 20 69 25 +46 44 41 17 79 +75 99 3 91 8 +71 39 73 88 37 + +90 76 12 80 58 +60 45 35 10 33 +79 19 65 54 21 +63 51 77 15 92 +34 53 7 59 44 + +40 14 68 43 37 +12 35 29 82 48 +47 28 97 44 93 +95 56 33 96 27 +38 85 88 49 6 + +88 36 81 42 10 +85 99 29 70 86 +64 15 37 96 61 +66 76 87 17 62 +91 16 60 13 65 + +45 71 66 80 69 +53 39 29 92 99 +23 0 72 36 52 +75 70 33 2 14 +22 77 21 26 3 + +52 32 14 66 47 +53 7 9 69 11 +19 36 57 54 65 +17 26 76 51 42 +13 8 44 63 39 + +23 84 34 35 19 +29 71 81 32 92 +22 49 54 6 56 +64 94 53 89 2 +74 68 11 13 47 + +34 25 67 59 66 +68 27 69 91 33 + 4 56 46 99 21 +51 13 24 41 12 +90 65 19 26 55 + +15 85 8 65 79 +95 51 39 75 96 +18 45 68 81 71 +67 28 21 61 20 +70 29 92 74 36 + +25 75 23 2 38 +66 52 42 62 16 +93 63 78 31 65 + 0 91 77 4 14 +61 59 53 17 10 + +16 95 72 67 17 +71 3 38 90 14 +34 8 55 49 33 +54 79 20 27 80 +96 31 18 70 61 + +60 46 4 56 49 + 2 36 8 51 54 +71 82 97 1 18 +45 69 37 6 26 +85 61 27 92 77 + +62 90 59 67 25 +41 45 7 91 17 +10 29 75 43 82 +12 78 95 37 32 +28 66 76 2 49 + +26 6 49 44 74 +94 34 73 70 64 +14 91 23 88 31 +90 55 62 75 43 + 4 1 63 57 19 + + 2 30 11 55 52 +51 92 73 54 96 +89 22 67 56 17 +49 50 9 95 45 +23 74 13 75 7 + + 6 31 78 64 89 +76 13 83 56 34 +95 29 97 49 37 +66 77 74 73 90 +87 41 62 39 85 + +51 80 38 15 44 +53 23 83 61 63 +27 33 79 40 32 +84 2 82 20 93 +72 92 48 39 98 + +36 78 46 84 14 +56 53 51 92 89 +39 99 77 22 32 +65 38 42 76 7 +62 31 1 87 95 + +74 99 6 4 20 +95 81 27 59 88 +63 69 30 25 87 +92 96 89 42 18 +11 77 91 8 46 + +29 62 77 3 89 +54 12 55 44 34 +66 78 83 98 22 +17 10 67 82 75 +43 16 84 41 19 + +67 24 9 89 48 +56 7 44 47 68 +12 38 35 54 14 +95 58 78 13 28 +97 5 37 99 42 + +48 64 21 23 92 +29 99 75 2 53 +41 97 74 39 89 +66 63 22 45 73 +20 68 30 35 78 + +76 3 47 40 72 +41 7 68 5 58 +12 32 81 62 93 +91 80 17 78 61 +22 95 94 38 33 + +42 27 70 13 5 +77 38 50 3 44 +29 56 36 15 97 +68 20 94 12 54 +64 83 25 55 80 + +77 63 37 68 73 +34 30 22 91 10 +16 80 89 98 45 +46 36 90 95 83 +54 52 57 61 55 + +55 3 33 66 69 +51 97 36 57 50 +56 74 35 84 44 +45 92 18 42 52 +85 13 27 70 20 + +56 68 71 11 63 +12 93 57 94 84 +91 13 29 31 75 +54 49 51 73 5 +81 7 60 53 89 + +73 55 87 35 84 +37 63 41 54 39 +58 42 85 66 68 +96 24 86 72 27 +40 28 4 80 33 + +29 79 8 76 31 +30 20 12 0 61 +14 37 49 45 74 +64 17 1 91 51 +87 67 3 77 47 + +72 15 46 71 75 +41 16 68 14 43 +97 25 78 26 39 +59 57 88 4 52 +20 49 3 23 29 + +33 78 31 35 6 +85 43 7 87 18 +68 93 4 80 96 +98 13 61 77 23 +10 29 34 36 5 + + 0 78 44 49 14 +72 88 30 31 81 +34 87 55 27 11 +58 64 76 40 62 +47 18 38 35 26 + +16 2 67 56 74 +50 41 86 38 39 +32 96 59 40 8 +17 82 49 55 89 +34 88 81 73 94 + +52 18 32 56 61 +40 5 48 64 62 +22 57 19 26 91 +31 3 95 27 87 +74 83 75 99 73 + + 6 65 91 22 86 +82 72 60 41 87 + 2 71 9 12 84 +51 90 43 49 80 +15 20 54 66 29 + +39 64 35 23 10 +73 25 1 45 93 +50 37 95 86 78 +52 6 2 0 13 +26 89 27 62 80 + +65 67 95 33 60 +55 49 64 92 7 +56 75 73 35 99 + 8 72 80 0 46 +41 25 2 69 4 + +26 51 31 44 25 +21 6 70 12 71 +67 69 13 63 79 +81 74 8 89 30 +16 48 88 72 66 + +99 69 61 29 86 +67 88 5 20 2 +70 60 27 82 6 +95 65 30 9 85 +23 58 59 87 66 + +40 90 43 57 26 +10 52 27 64 72 + 3 83 11 54 42 +39 20 87 15 81 +49 28 58 33 29 + +11 32 63 96 81 +77 82 0 30 15 +88 31 41 46 6 +17 55 76 42 87 +24 93 70 66 40 + +35 6 28 90 21 +72 74 78 43 3 +47 17 13 41 96 +68 12 76 81 11 +70 34 33 25 54 + +94 9 58 91 38 +84 7 22 30 63 +23 26 49 93 48 +79 75 99 96 67 +90 19 66 57 47 + +35 98 24 31 41 +79 63 92 70 11 +36 3 72 50 93 +90 21 40 38 77 + 0 14 42 99 67 + +96 45 75 97 94 +68 35 9 30 67 +25 88 40 46 37 +82 79 90 76 55 +50 59 58 22 21 + +96 73 49 36 56 + 6 45 30 81 76 +10 95 70 88 98 +43 47 74 66 84 +77 83 68 54 28 + +96 48 64 89 6 +76 12 47 8 30 +39 55 95 11 62 +68 25 50 63 31 +59 17 46 52 78 + +66 27 61 79 73 +37 88 47 84 72 +50 18 99 7 76 +97 11 53 43 30 +42 56 98 39 63 + +64 13 45 7 72 +66 35 18 68 86 +38 30 89 11 29 +37 76 23 14 67 +36 61 87 26 46 + +20 72 10 30 17 +25 14 74 71 58 +34 51 45 43 76 +38 75 50 98 42 + 2 12 67 66 82 + +44 23 73 56 88 + 4 96 90 0 32 +40 86 47 87 50 +28 30 42 39 17 +10 12 16 8 14 + +21 33 7 20 78 +81 46 77 42 79 +84 28 82 93 68 +90 63 60 0 34 +35 70 40 29 54 + +93 8 11 2 39 +74 40 95 69 57 +86 21 31 88 63 +52 16 19 20 22 +72 7 25 90 77 + +83 29 90 48 46 +97 21 2 65 15 +89 28 60 69 26 +77 75 9 35 96 +82 49 66 5 16 + +80 57 2 73 46 +22 50 87 60 89 +95 74 98 93 62 +86 61 10 69 9 +48 31 53 88 84 + +46 17 28 56 50 +64 65 43 73 22 +32 31 89 20 38 +13 49 18 55 72 +83 41 78 94 57 + +39 8 68 87 21 +78 59 27 0 14 +25 3 96 51 63 +92 35 19 57 99 +83 75 69 37 72 + +42 36 34 77 69 +21 55 47 52 89 +61 90 3 23 41 +45 80 29 27 99 +79 86 87 93 74 + +59 8 97 48 73 +40 31 29 49 85 +41 68 11 9 45 +87 74 77 75 91 +67 27 70 90 16 + +80 47 53 81 36 +75 35 87 90 89 +19 5 56 28 26 + 8 44 77 31 20 +61 96 27 99 79 + +35 16 40 94 65 +60 28 46 51 61 +45 53 36 89 80 +33 93 12 39 42 +13 68 57 64 26 + +39 55 88 78 72 + 6 82 52 1 60 +41 23 97 44 11 + 3 15 21 93 38 +24 90 7 80 2 + +81 46 31 56 30 +94 22 58 69 41 +42 91 20 0 14 +71 11 17 37 12 + 7 73 79 9 26 + +38 32 24 98 79 +48 49 4 17 90 +12 20 95 99 10 +94 23 30 92 97 +84 18 57 11 53 + +75 22 42 59 55 +23 33 90 2 52 +94 13 78 0 16 +39 72 67 45 31 +11 53 7 83 28 + +43 33 52 89 40 +53 94 87 90 19 +98 51 64 63 62 +66 65 57 93 18 +80 79 59 99 73 + +57 63 96 3 27 +88 74 9 60 99 +48 30 1 18 15 +23 77 89 24 55 +37 58 67 91 10 + +36 73 27 72 8 +75 74 87 55 7 + 2 67 34 84 51 +94 18 23 62 11 +65 41 3 29 53 + +63 67 73 53 13 +28 54 19 72 93 +48 41 55 64 33 +83 70 65 26 22 +11 86 35 16 18 + +13 50 19 48 58 +28 42 83 20 29 + 5 96 92 90 3 +87 93 56 23 78 +98 57 0 72 62 + +95 76 16 5 56 +55 28 52 88 73 + 6 99 75 90 18 +12 25 22 44 57 +62 37 36 30 48 + +24 41 73 90 46 +55 91 63 86 44 + 0 74 72 47 76 +34 13 33 65 62 +49 75 10 15 27 + +85 63 62 11 38 +53 29 2 8 13 +87 64 31 69 58 +88 84 17 3 26 + 5 32 23 33 39 + +25 8 81 29 95 +65 56 86 34 17 +38 66 85 43 26 +39 12 70 32 19 +49 68 10 4 13 \ No newline at end of file diff --git a/inputs/05.txt b/inputs/05.txt new file mode 100644 index 0000000..d9c5818 --- /dev/null +++ b/inputs/05.txt @@ -0,0 +1,500 @@ +822,976 -> 822,117 +387,419 -> 387,468 +659,275 -> 318,616 +535,940 -> 684,940 +294,427 -> 294,88 +568,922 -> 425,779 +99,265 -> 97,267 +534,387 -> 402,387 +958,268 -> 958,315 +234,714 -> 234,305 +507,257 -> 507,328 +455,384 -> 455,645 +483,641 -> 483,138 +410,249 -> 825,249 +609,836 -> 528,836 +77,913 -> 77,780 +478,93 -> 478,123 +391,695 -> 715,695 +972,586 -> 649,586 +936,955 -> 39,58 +168,791 -> 944,15 +934,222 -> 811,222 +372,683 -> 372,93 +911,676 -> 771,816 +147,34 -> 147,97 +524,498 -> 986,960 +791,924 -> 239,372 +293,145 -> 776,628 +195,472 -> 195,31 +884,649 -> 215,649 +95,53 -> 95,966 +484,111 -> 866,493 +564,913 -> 681,913 +36,362 -> 486,362 +762,146 -> 762,323 +330,334 -> 937,334 +704,714 -> 744,714 +56,12 -> 958,914 +855,784 -> 855,629 +206,665 -> 206,681 +436,629 -> 117,948 +414,685 -> 414,54 +788,401 -> 788,842 +442,270 -> 309,270 +606,711 -> 416,521 +45,630 -> 45,543 +221,192 -> 221,537 +629,544 -> 417,544 +362,605 -> 885,605 +988,928 -> 738,678 +460,758 -> 981,237 +561,26 -> 561,409 +543,186 -> 833,186 +963,409 -> 910,462 +55,129 -> 742,816 +245,27 -> 806,27 +318,137 -> 318,592 +762,700 -> 762,483 +436,341 -> 436,654 +641,725 -> 641,227 +486,446 -> 56,16 +113,821 -> 113,196 +740,534 -> 821,534 +606,765 -> 125,284 +614,786 -> 371,786 +215,519 -> 215,814 +274,496 -> 482,496 +131,210 -> 473,552 +701,68 -> 701,395 +81,713 -> 81,104 +458,677 -> 622,677 +237,225 -> 237,810 +384,246 -> 384,644 +411,876 -> 445,910 +182,814 -> 182,184 +643,858 -> 407,858 +698,621 -> 971,348 +309,253 -> 511,51 +990,368 -> 671,368 +129,619 -> 750,619 +382,803 -> 382,635 +629,270 -> 415,484 +550,101 -> 56,595 +971,745 -> 971,589 +353,947 -> 786,514 +71,931 -> 974,28 +915,621 -> 363,69 +650,547 -> 650,596 +884,228 -> 574,228 +833,476 -> 833,824 +24,722 -> 24,885 +401,508 -> 401,553 +452,106 -> 740,106 +255,840 -> 60,840 +551,609 -> 551,767 +799,572 -> 356,129 +343,138 -> 945,740 +77,766 -> 77,72 +190,760 -> 190,341 +978,583 -> 911,583 +557,18 -> 557,640 +673,276 -> 882,276 +143,348 -> 775,980 +776,803 -> 776,812 +38,348 -> 38,463 +648,567 -> 210,567 +468,934 -> 534,868 +966,987 -> 26,47 +471,465 -> 126,465 +26,29 -> 940,943 +416,340 -> 361,285 +702,66 -> 702,673 +34,964 -> 951,47 +156,791 -> 65,791 +635,678 -> 355,678 +898,13 -> 898,909 +644,334 -> 644,155 +304,93 -> 445,93 +946,934 -> 930,918 +376,289 -> 317,348 +460,491 -> 500,491 +761,605 -> 866,710 +252,534 -> 413,534 +178,23 -> 895,740 +677,90 -> 677,592 +905,985 -> 211,291 +963,65 -> 963,214 +853,617 -> 815,617 +576,532 -> 319,275 +134,59 -> 829,754 +926,948 -> 11,33 +46,279 -> 760,279 +60,389 -> 60,340 +49,264 -> 561,776 +912,322 -> 790,322 +825,205 -> 825,433 +637,693 -> 780,693 +891,196 -> 200,196 +537,604 -> 604,604 +870,75 -> 870,342 +518,173 -> 455,110 +666,67 -> 919,67 +536,128 -> 137,527 +698,41 -> 44,41 +936,982 -> 106,152 +780,488 -> 780,918 +968,313 -> 56,313 +759,36 -> 140,36 +111,605 -> 111,430 +609,165 -> 54,720 +388,452 -> 745,809 +986,12 -> 11,987 +193,614 -> 335,756 +113,239 -> 38,164 +715,145 -> 305,555 +632,13 -> 508,137 +698,673 -> 698,101 +954,225 -> 720,225 +626,688 -> 626,476 +636,697 -> 91,152 +228,210 -> 621,210 +83,325 -> 989,325 +644,358 -> 644,648 +481,183 -> 481,901 +803,160 -> 250,713 +648,96 -> 913,96 +921,17 -> 26,912 +844,256 -> 844,485 +190,138 -> 578,526 +383,527 -> 357,501 +529,212 -> 757,440 +646,399 -> 944,399 +961,681 -> 961,178 +40,236 -> 484,680 +432,465 -> 832,465 +988,989 -> 10,11 +850,800 -> 850,292 +25,97 -> 372,97 +383,248 -> 383,125 +577,488 -> 852,763 +607,322 -> 432,147 +611,637 -> 614,637 +853,677 -> 755,677 +953,225 -> 953,333 +984,978 -> 45,39 +95,981 -> 314,981 +550,400 -> 327,177 +929,893 -> 99,63 +958,293 -> 152,293 +68,656 -> 563,161 +45,506 -> 45,925 +271,566 -> 289,566 +460,440 -> 920,900 +392,788 -> 392,263 +946,335 -> 946,171 +833,405 -> 876,448 +268,188 -> 268,678 +881,40 -> 30,40 +317,84 -> 277,84 +415,917 -> 415,358 +28,654 -> 28,646 +346,461 -> 346,724 +935,954 -> 935,362 +121,840 -> 121,38 +29,55 -> 344,370 +774,649 -> 621,649 +31,985 -> 396,620 +85,579 -> 85,131 +181,886 -> 978,89 +284,969 -> 284,95 +669,943 -> 54,328 +72,509 -> 72,857 +460,557 -> 986,31 +555,460 -> 555,928 +921,961 -> 666,706 +11,13 -> 951,953 +173,948 -> 173,982 +680,422 -> 503,245 +443,232 -> 443,630 +829,487 -> 773,487 +176,631 -> 631,176 +860,866 -> 559,866 +317,537 -> 624,537 +937,199 -> 753,199 +484,545 -> 293,736 +84,616 -> 489,211 +340,166 -> 340,876 +47,210 -> 47,961 +852,404 -> 852,804 +831,565 -> 454,188 +236,621 -> 556,941 +734,640 -> 734,728 +756,357 -> 756,433 +102,220 -> 157,220 +153,800 -> 104,849 +710,585 -> 710,666 +724,298 -> 724,698 +762,257 -> 123,896 +402,642 -> 402,964 +549,108 -> 945,108 +301,966 -> 851,966 +399,903 -> 101,605 +194,857 -> 605,857 +291,373 -> 85,373 +601,597 -> 844,597 +362,335 -> 362,107 +769,66 -> 107,66 +49,373 -> 49,143 +96,800 -> 894,800 +468,116 -> 557,116 +549,206 -> 956,206 +918,972 -> 35,89 +688,632 -> 106,632 +267,338 -> 414,485 +258,392 -> 258,107 +604,964 -> 139,499 +975,191 -> 977,191 +861,960 -> 93,192 +979,570 -> 439,570 +961,21 -> 63,919 +312,419 -> 881,419 +507,779 -> 507,79 +775,447 -> 645,447 +34,928 -> 626,928 +786,515 -> 786,34 +81,269 -> 734,922 +938,264 -> 266,264 +799,271 -> 799,713 +765,860 -> 765,43 +967,869 -> 135,37 +920,757 -> 602,439 +419,814 -> 655,814 +22,40 -> 472,490 +136,672 -> 770,672 +667,860 -> 288,481 +311,305 -> 311,674 +163,569 -> 163,120 +801,885 -> 139,223 +551,214 -> 551,207 +594,979 -> 942,631 +347,286 -> 448,185 +161,134 -> 855,828 +861,864 -> 20,23 +309,388 -> 309,676 +582,383 -> 86,879 +930,58 -> 206,782 +538,925 -> 242,925 +379,890 -> 704,565 +338,350 -> 338,419 +916,870 -> 916,283 +101,928 -> 402,627 +899,696 -> 899,179 +96,62 -> 658,624 +950,46 -> 11,985 +914,510 -> 910,510 +98,116 -> 556,116 +165,151 -> 913,899 +822,76 -> 41,76 +878,97 -> 75,900 +476,623 -> 873,623 +257,494 -> 746,983 +638,23 -> 638,778 +969,212 -> 259,212 +186,146 -> 923,883 +799,822 -> 736,822 +628,876 -> 532,780 +388,604 -> 388,617 +591,949 -> 868,949 +92,372 -> 107,357 +274,691 -> 254,671 +169,917 -> 169,317 +792,27 -> 710,27 +215,645 -> 713,147 +886,498 -> 689,498 +955,129 -> 214,870 +561,380 -> 375,380 +391,849 -> 391,75 +181,677 -> 759,677 +347,394 -> 347,969 +52,383 -> 875,383 +498,827 -> 729,596 +125,832 -> 125,18 +799,711 -> 105,711 +952,884 -> 129,61 +123,269 -> 123,906 +792,934 -> 12,154 +955,253 -> 753,253 +676,957 -> 676,264 +437,35 -> 40,35 +661,166 -> 509,14 +72,978 -> 270,978 +554,472 -> 554,627 +914,291 -> 464,741 +450,841 -> 827,841 +846,694 -> 846,281 +391,97 -> 890,596 +859,512 -> 685,338 +349,564 -> 349,187 +473,442 -> 896,19 +383,949 -> 383,276 +568,596 -> 875,596 +298,43 -> 298,504 +482,632 -> 12,632 +44,441 -> 44,978 +210,502 -> 210,712 +191,391 -> 191,196 +27,683 -> 27,840 +47,13 -> 960,926 +81,779 -> 81,952 +914,96 -> 145,96 +444,175 -> 151,175 +293,934 -> 293,488 +106,867 -> 221,982 +669,576 -> 858,576 +713,142 -> 84,771 +60,923 -> 299,923 +376,307 -> 281,307 +904,53 -> 41,916 +763,495 -> 588,495 +62,899 -> 843,899 +63,939 -> 592,410 +294,588 -> 294,437 +920,101 -> 879,142 +688,527 -> 688,357 +679,854 -> 950,854 +636,765 -> 329,765 +939,87 -> 62,87 +952,560 -> 952,193 +466,761 -> 32,327 +189,245 -> 876,932 +42,675 -> 42,311 +787,257 -> 62,982 +934,983 -> 64,113 +548,522 -> 626,522 +942,322 -> 942,276 +267,298 -> 267,385 +632,241 -> 632,117 +192,644 -> 192,507 +627,33 -> 627,175 +350,650 -> 350,157 +807,239 -> 113,933 +294,713 -> 87,713 +81,530 -> 453,530 +539,61 -> 240,61 +893,76 -> 893,776 +39,49 -> 978,988 +733,17 -> 606,144 +19,408 -> 493,408 +364,639 -> 43,639 +873,946 -> 69,142 +825,875 -> 233,875 +708,408 -> 197,919 +990,202 -> 990,32 +370,393 -> 664,393 +764,472 -> 284,472 +308,685 -> 308,541 +917,68 -> 45,940 +397,794 -> 524,667 +525,674 -> 313,462 +475,981 -> 297,981 +728,152 -> 40,840 +265,257 -> 162,257 +621,847 -> 828,640 +547,927 -> 21,401 +351,676 -> 357,676 +668,640 -> 668,228 +138,736 -> 446,736 +912,687 -> 912,817 +718,278 -> 718,779 +674,786 -> 986,474 +812,273 -> 891,273 +46,341 -> 46,831 +404,464 -> 118,464 +277,926 -> 114,763 +231,786 -> 106,786 +266,721 -> 446,541 +42,80 -> 675,713 +422,116 -> 422,344 +922,543 -> 922,511 +525,150 -> 525,599 +862,288 -> 498,288 +961,432 -> 961,693 +895,876 -> 895,837 +619,361 -> 174,361 +275,673 -> 275,415 +950,179 -> 405,179 +460,460 -> 460,405 +222,872 -> 222,959 +451,403 -> 21,833 +570,367 -> 570,147 +260,792 -> 82,970 +586,159 -> 108,159 +956,25 -> 55,926 +71,645 -> 988,645 +540,438 -> 44,934 +230,160 -> 395,160 +811,106 -> 811,598 +819,741 -> 596,741 +347,731 -> 347,198 +503,580 -> 495,580 +30,706 -> 603,133 +257,498 -> 619,498 +232,784 -> 359,784 +826,708 -> 396,708 +14,977 -> 895,96 +964,192 -> 279,192 +611,282 -> 611,460 +207,903 -> 207,882 +969,10 -> 22,957 +403,599 -> 970,32 +712,671 -> 712,733 +795,422 -> 235,422 +47,965 -> 939,73 +925,839 -> 275,189 +102,593 -> 973,593 +389,768 -> 389,493 +234,365 -> 624,365 +50,901 -> 50,702 +345,573 -> 638,866 +798,280 -> 111,967 +258,556 -> 258,978 +966,57 -> 88,935 +171,279 -> 171,130 +238,727 -> 947,727 +683,777 -> 290,777 +552,308 -> 552,150 +81,91 -> 911,921 +845,698 -> 845,735 +712,241 -> 26,927 +120,813 -> 716,217 +947,10 -> 25,932 +395,381 -> 338,324 +408,989 -> 408,529 +600,574 -> 600,557 +46,567 -> 46,980 +983,14 -> 10,987 +984,568 -> 642,568 +543,250 -> 543,80 +765,534 -> 108,534 +89,213 -> 120,213 +893,813 -> 271,191 +133,178 -> 133,654 +468,689 -> 468,677 +970,203 -> 970,952 +892,322 -> 892,417 +593,735 -> 152,294 +839,75 -> 839,964 +746,413 -> 89,413 +535,595 -> 535,633 +771,646 -> 614,489 +572,852 -> 572,718 +125,35 -> 838,748 +122,812 -> 179,812 +467,243 -> 188,243 +713,850 -> 51,188 +633,279 -> 932,578 +428,230 -> 216,18 +94,921 -> 973,42 +513,609 -> 513,507 +826,358 -> 330,854 \ No newline at end of file diff --git a/inputs/06.txt b/inputs/06.txt new file mode 100644 index 0000000..9946edb --- /dev/null +++ b/inputs/06.txt @@ -0,0 +1 @@ +4,1,4,1,3,3,1,4,3,3,2,1,1,3,5,1,3,5,2,5,1,5,5,1,3,2,5,3,1,3,4,2,3,2,3,3,2,1,5,4,1,1,1,2,1,4,4,4,2,1,2,1,5,1,5,1,2,1,4,4,5,3,3,4,1,4,4,2,1,4,4,3,5,2,5,4,1,5,1,1,1,4,5,3,4,3,4,2,2,2,2,4,5,3,5,2,4,2,3,4,1,4,4,1,4,5,3,4,2,2,2,4,3,3,3,3,4,2,1,2,5,5,3,2,3,5,5,5,4,4,5,5,4,3,4,1,5,1,3,4,4,1,3,1,3,1,1,2,4,5,3,1,2,4,3,3,5,4,4,5,4,1,3,1,1,4,4,4,4,3,4,3,1,4,5,1,2,4,3,5,1,1,2,1,1,5,4,2,1,5,4,5,2,4,4,1,5,2,2,5,3,3,2,3,1,5,5,5,4,3,1,1,5,1,4,5,2,1,3,1,2,4,4,1,1,2,5,3,1,5,2,4,5,1,2,3,1,2,2,1,2,2,1,4,1,3,4,2,1,1,5,4,1,5,4,4,3,1,3,3,1,1,3,3,4,2,3,4,2,3,1,4,1,5,3,1,1,5,3,2,3,5,1,3,1,1,3,5,1,5,1,1,3,1,1,1,1,3,3,1 \ No newline at end of file diff --git a/inputs/07.txt b/inputs/07.txt new file mode 100644 index 0000000..cead113 --- /dev/null +++ b/inputs/07.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,281,282,677,25,264,2,413,1654,100,68,1111,667,281,128,172,188,4,432,250,232,1282,773,24,1182,33,200,989,148,179,108,208,330,152,227,597,517,1205,489,342,98,287,375,413,385,419,115,42,1363,425,1104,1869,362,111,985,1028,192,504,381,58,634,391,174,125,23,39,255,1437,198,259,154,1644,1275,250,444,122,71,697,184,594,307,694,177,131,269,1780,592,678,128,33,41,541,132,241,883,82,498,1008,153,985,127,801,78,137,128,68,69,180,833,250,1476,127,439,1856,276,58,1785,520,1214,749,429,126,576,9,184,578,1173,83,896,475,23,183,108,532,1114,775,748,422,577,758,1365,97,726,118,206,283,485,798,338,459,954,361,205,30,736,65,94,857,986,452,273,210,1551,354,91,26,60,1691,391,163,132,833,52,629,309,261,148,328,17,604,309,907,441,361,104,190,434,246,295,223,141,239,662,682,494,467,185,1,236,367,125,139,1289,657,279,238,482,512,1498,3,1297,148,548,1053,277,400,713,33,140,227,408,1,1592,219,805,538,535,567,703,939,662,546,993,552,341,144,396,922,324,662,82,142,320,859,369,28,106,741,254,389,483,680,1317,3,177,46,1461,53,1516,858,993,968,1325,4,4,175,303,126,847,754,1129,993,79,67,1381,766,470,1324,726,48,26,703,5,1002,102,1839,236,370,1005,855,262,1018,325,3,681,397,1420,1163,155,961,452,512,112,222,39,435,64,746,185,151,397,1648,315,381,25,1053,151,280,230,602,130,173,784,664,129,625,114,405,773,191,116,1017,1401,16,47,72,192,88,68,802,446,479,7,347,167,35,713,74,404,628,283,920,402,1173,273,436,671,1544,149,278,331,766,888,10,567,53,138,10,132,1273,266,270,305,93,1649,86,3,224,79,1188,609,1107,308,1525,159,895,911,824,1135,560,43,436,1225,1332,57,245,90,1057,814,54,68,168,9,190,572,916,42,330,500,310,1269,583,27,482,399,361,706,1109,252,433,851,137,1081,118,107,254,1062,640,1284,297,379,177,268,230,1148,727,829,129,51,808,223,559,14,155,189,1050,931,1069,927,73,594,44,1049,32,253,1621,134,263,5,926,339,141,220,1330,319,408,722,611,0,303,680,323,502,373,46,61,3,121,263,346,88,39,1084,297,822,468,764,138,161,449,35,1162,1308,312,694,207,921,330,1621,302,707,378,612,7,3,1595,1075,915,171,370,516,115,157,340,603,984,239,2,266,1501,129,110,1272,1105,221,431,1002,455,1204,595,914,1396,59,1576,260,446,1898,584,18,204,66,920,526,0,1199,290,1275,12,14,187,818,448,1015,442,292,1019,383,1217,17,228,214,778,53,148,68,388,15,496,310,428,186,18,206,104,760,790,408,1652,95,1351,325,144,73,1301,1085,29,967,342,656,428,533,67,1252,365,130,49,457,34,808,88,47,803,125,291,558,457,160,1157,1410,90,215,638,1009,446,698,1102,171,1736,878,115,1195,1453,261,121,1,59,56,295,368,646,1220,73,370,555,27,94,186,1536,1527,641,8,626,44,86,266,0,110,329,278,777,1839,20,651,435,172,4,144,617,48,201,751,440,231,0,686,1550,605,208,0,10,613,552,788,183,18,71,119,705,223,17,645,77,83,1342,1671,561,499,836,247,678,923,205,69,69,353,242,114,97,132,234,245,364,40,1061,117,665,183,192,448,283,593,71,208,1537,386,35,434,840,462,27,458,347,293,93,288,250,753,536,1317,124,968,937,503,305,19,24,638,560,488,254,1556,748,86,551,972,1675,28,175,1008,607,263,19,446,566,316,236,1577,0,802,340,526,778,763,41,489,1225,145,116,1,1556,221,703,624,33,74,1404,869,574,190,326,646,33,582,1212,703,76,97,54,41,127,48,309,556,10,356,1028,306,712,193,325,81,100,1414,107,81,1150,339,70,346,523,250,265,104,1302,797,499,829,455,591,170,1339,60,1312,631,665,530,95,348,36,1122,1334,775,54,819,604,759,708,139,1394,481,683,26,66,177,54,318,33,1714,43,801,121,384,560,658,50,159,1835,333,232,203,449,221,659,160,83,93,1176,1170,279,265,907,617,45,342,104,723,1027,697,494,952,494,820,90,462,208,1596,513,24,192,438,138,132,2,566,324,826,444,866,1038,851,629,646,48,334,258,14,571,963,458,62,208,233,31,368,884,207,88,682,118,634,1277,51,352,90,194,323,99,24,138,82,501,1084,403,270,638,401 \ No newline at end of file diff --git a/inputs/08.txt b/inputs/08.txt new file mode 100644 index 0000000..41e1b54 --- /dev/null +++ b/inputs/08.txt @@ -0,0 +1,200 @@ +fbead dcabe bcega gfbecd ecd dgac cd bedcag agebcfd fcagbe | ced cgbefad gbcaef cd +bdef fbgeadc gabfc fadegb adefg abe be decagf dacgbe begfa | dbfe gaecdf fbgae agfbe +gad cgdfab ag edacgb agbfedc facdb dcebaf adfbg agfc gbdef | dga gacfebd adbgcf adgbce +cebadf gadcf egabfd ecabdfg gfcbd dacef geac ag afg fgdaec | aegc gdeabfc fgedac eacg +ceafb gcbfea eacgdf cegb eag bgfda eg fdaegcb ebagf adebcf | eg adgfb ge ceabf +gcdfeab bfdcga gdacf fe fae bdefga eafdgc fecd efagc aecgb | dcef fea cgfda gbcae +gbdce cfdbg efbd gbaedcf dge gfcead bcgae de bgacdf befdcg | gde fcbadg egdafc dbaefcg +adgecf agecdb dfcag cea dafgebc egbfc fdea ea agbfdc caefg | gcdfae aefcbdg fdgebac eac +dgcea acfged eagfc abdec dcg gd efcgdb adfebcg bceagf adfg | dfag dgebcaf dfbcage dgc +aedgbf dgfabec aefb edbgf gabdc ea gedfbc cgdefa dea baedg | ae ea eadbgfc fdabge +afgbde agbef df fda caegfb efdb fgdbeca fcdgab agedf cgead | fad df fd bedgcfa +bacdge gdecbaf bdfcge fabec dc dec cfbed gedbf dcgf agbefd | bcedf fgbed bcafe cfbedag +gbcafd bcd db begdc gedcfb bgdfeac cgdef dbfe gceab adecgf | dbc bd ebgdc bgcfda +ebafgd dcafeb ag gfadb aegb agd edbaf adcefg gcdabfe gdfcb | bgafd ga ga ag +gcbfda acd facdb aecbgf gafcb ad agbfced bacdge efdcb agdf | gbdeacf ad bgedca dcbagfe +gfae dae ea ecabfd edbgc aegdc cgfdae fcadgb facbedg gdfca | dfeagbc cdeabf dea ea +egafb ec dcegafb fcdag bcef cae cdgbae egbcfa abfdeg eafcg | bfacedg ace eca afgdc +bfgadc fabgd fcgb gecadf adceb gc cgd dabcg gadfcbe eadfbg | gbcf cebda cgd cg +abfdg dgabe cgbead efdb abfgced gefbda daf cfadeg cbgaf df | gfadb egbda bgdea bcadgef +aebcf agdbf adgbfce agbfec egcf acg bgacde cgbaf dfeabc cg | aefdbgc gc efadbc gc +bacdfe baefc edacb abcdg bafdge cgfbdea de cfebga cfde bde | ecfd bde cfbea fagebc +cefd cf afbegcd gfdcab adegfc baegf dgcea fcg cgebad gfeca | gdeafc fc decbgaf gedca +dgcae eadgbc eafdgcb ad badg deabcf gefdbc ade bdceg fcega | ade acedfgb acegfdb becfda +bfadecg cfadge bcgfd bceagf deabfg edg edca ecafg cfedg ed | cead deacfg ged gbfaedc +egafd dfbgcae bdf bfade dgbcfe bagf beacd fgbdae cefgda fb | fb gabf bfd cefagd +afedbcg eadcgf gebdcf agdfb ceagf baecfg de gaefd cead egd | bdeagfc ecda agbfd dgafce +bcde bc fgdceb bfc faecdbg adgfb cdfgb fbegca dgafce fdegc | cdgfbe fcgde cfb fcedg +bgacd cbf fceda fb gacbdf cadfb bdagce fegcbad beacfg fbgd | ecafbgd bfdg gcbdefa eacdbg +dgbec afecgdb fbgce dbgcaf becdfa bagcf efb ecfabg geaf fe | fegacbd ef fcbge abgfc +cedfg cgfaedb fgcdea gacdf gcae begdaf cdbaf fbcdeg ag gad | gcfebd cadfeg adfcb afcbd +edgcfba cdafb agd cbegfa dfagc acefg cgdbae dg dgceaf egfd | fgecba gad aebgcfd agfcd +afecdg bce gdeca cfdgbe bgca cfabegd daecb bfeda gabcde bc | bgca bec gabc bc +fgbdc gad ad eabdcgf gdfeac ebdfag baegfc gadfb ebad begaf | ebda dfabg adg bdae +bgec dbfga degfc eb deabfc fcdage bfe gfbced gfedb gfdcabe | bcge begc efb bcgdef +efbga bfeacg dg dfg afdce eafbgd adbg fdbcgae fcdebg eafdg | dbag fdg fgd gbad +cdabe agcbdef fgaed dbcgea fbce bfacdg fb faebd dbf fadcbe | bcgfda bf fb fb +cdafbe cbdagf fcgade fbage fbdae fdbca ed efd adfgceb bcde | ed adcbf bgdcfea ecbd +fgab gfacbd gfdcb fgdecb eagbdcf bdacg ag gad edgcfa eacdb | gcfdba fgdace cdegbfa agbdc +egcaf gdecbf beacg cfba dgfeabc abfgec baegd bc ecfagd ecb | bcaf cbaf gdecbf ebc +agfce cgedfb gbdfe daf da febgda cgfaedb adgb dgefa ecabdf | bdfceg dgab adf gadb +begadf deg aecfgb aebgd aebfg ceadgfb fead ed dbcga egdcbf | ged fcgeab gdaeb de +ad debcf deabgc acegbfd daef febcda cgebdf bcafd cda bfcga | acfgb cbdaeg gecadb acd +fadbeg bagdcf bcda fceag cfd bdgfa dabgefc cd bdcgfe afgcd | acbefdg dc gfcea bcda +fcbge bg cgdeaf bdegcf beg bfeca gbdc agdefcb gcdef bgefda | egb bgdfaec bg feacbdg +gcfabed dae geaf afdgc dfbcag cgadef dcebg defbac edagc ae | cdgae ae eadfcb egaf +ceabf fabcge cgfe gecabdf dgafcb bagcf edfagb ef cdeab feb | acbgf fabecg bfe badefg +adg bdfaeg bacd gcebd cgadbe da caedg egfca bfgdace fdbecg | dcab cgeda agd ad +cbdafge ecbg fabec caefgb cb abefd fcdega bac adbcfg efcga | cb gcbe bac dbgeafc +gfcbad fbc cf ebgaf acdbe decbfa dcbeag cdfe efgbdac fbaec | aebcgdf bfc dcaebfg edfbacg +dgcf bfaedg bdf cdagbef cbead df cebfg gdcfeb fbdce gabecf | fd begcf df df +bc egcb efabdc cfb gefdba cbfgade gbdef fdcga gfbcd gbdecf | cfagd ecbdaf cbf dbfcae +bc cbe cfega gbecaf fdcega dbefa cbgdfea efacb cdbega gfbc | dgceabf ebc bce fcgb +cf gfcdea fdage gfc dgcfe debcg fcbdag gefdba afec cgfdbae | deagbf eacdgf dgcbefa dfgec +cdgfbae bc ecabd cfabdg dfageb cfeda debga abc begdac egbc | bc cb acb adegbc +fd caegfd fed acfegdb bcfed cbadfe abfd bcaedg egcfb eabcd | dcabegf cbgdfea bfda cadbe +dbgac ebd faebdg afbcdg efcbg aedc dbgeca dcafgeb gcedb ed | aced edgbc ebd ed +fea dfbga bcedf fgadbce ea aebg bgfaed gdafec dbefa bdgcaf | abdef gdcafb dgbaf ebfad +eac afdecb dbegca acdfb dbacfge ea bcfea ebgfc fade fadcgb | fcbad ebcfa edcgba dacbf +agfdbc adcbg fdgc cdfeagb bgd eadbc edfagb dg abcfg bfaecg | cdfg dg gbeacfd bdg +fdbag gafcbe agfdcb bfc cdgf bdagef cfbda bdeac bcfedag cf | bdeca adfegb cbfad cf +agfdce ecd cbeadg ce bdagc ecagfbd bcegd abce bfedg gcbfda | cde cdbgaef ceadfg eabc +cgbda bceag bcgfde gdb dcabf dg badefgc gdae adbcge cabgfe | adcgb egdbca dgbfaec gdb +baefc gecfb bfadc dabcge cdbfage aeb ea bgafce ebdgfc efag | bfgdaec gcdebfa dbecgf dagcbe +bgdcfe cafdg cad acegf fgcadb fdcbg faedbc da gbecfda dabg | acd faecg afcdg fdbgc +gedbcf gef cfaedbg egbc ge gfcaed dcbfea fgbad dgbfe fecbd | eg gfe gcbe bcge +fca cbfge faceg fbeadg gdefa ac adcfbeg ceda cdbgaf dgaefc | gfabcd afc degabf fac +dacfb edbag ce abdfgc dcfe ebcda gecfab befacgd feadbc aec | cea dabcegf cea badfcg +edabgcf eadcgf dbgecf dgeca dcbaf adcfg fgd gf faeg decbga | bfcdeg dgfca edcafbg dcafbeg +abegcf bedaf fc ebadgc cbf fbcagd baecg befac defgacb cgef | ecbaf fbcdage cf bfc +acg bafgdc afegb bfacd bgeacfd fgdc cg aecdbf gdaebc cbafg | afdcb cbfgda acg abdfc +ca ace afcb afebcg ecfbg dabeg gfacde gbace cfgabde cdbfge | acbf cfegb gebad bacf +dgfcba fabcd cgbfae dbaegcf eadcf dagbc edbcag gbfd fb bfc | ebagdc fb edfgabc gadcb +gdaec dfgb dcgbefa bde ebadg cbfage cabfed efagb db bdgafe | bd abegf dbe deb +caebfg bf bgead dgecab bdaf bgdafe fbe dfgbeac bfged fgedc | cbgeda efdbg edacgbf feb +begca fbaedgc adbfgc adbecg bcaefg af afb cdbfe feag beafc | fadgcbe af bgdfcea af +dceab be gcbdaf ebc abfe bdfac cdbafe cagdfbe gbfced dgcae | acfgbed eb afbe eabf +fegdbc acfdb afgce badecf badg ebgafdc gd cgadf gdf dcabfg | agcfd fbdac gfd egbafdc +beagd fbcg gbecfad gc bacge adbefc aecfb acgdfe gfbcea egc | gc efacbgd agdeb cfbg +adcebf fgebadc ga ega bdga edafb egadf bcgeaf dcefg afdbge | abdg dbag edcfg fbegadc +fe efd egfbdac dcagf cgaebd cbfe gdceb dfegc efagbd fdegcb | ef gdaceb befcgd gdcfbe +badf bfg dafgebc gdabe edfbg bgfeac bf bdagef dbaegc fecgd | gacfbe bdagef cgaebd adfb +efdabg bedac fb cgedab cefgdab fcdga adfcb cbfe dfb ecfabd | bfd bfec debafc acbfd +cbdag fa bdfacg dgfac defbag cbaf gecbda agf dbegafc fgcde | gdcef cdbag gaf gcfde +cfagd fbagcde cb efdabc dgaefb cfbe adgbec bdc acfbd edfba | befc cfbe efbc bcd +bdcgfe acdbeg ac caed gdfba dagbc abc gbfcea ecbdg gbcdaef | aced dgbce cab gafdb +bgfd fecdgab eadcf acbged gd acfgdb cafegb cdgfa cgd cfgba | fdgb gecadb gd gdc +dbcfa gcebda becg dgeac dbe egadcf gdefab fgaecbd eb acdeb | bed cgbe ebd efbgdca +ebfd cgfdea fbdagec afbce bfdeac geacb fb dfabgc fbc dacef | fcb abcdef cfb fb +gceab bgef gbdca abdecf efacg ecbagf ebc cgdeaf eb gdfbcea | ebc fdcbgea eb fcedbag +cdfeg de edg dbcgaf defbcg cbfgd gfcdabe bdef gdebca efagc | bfacegd fdceagb fbed gcebfad +fecbdg fcagebd adbgfc ceba gecad dgfea egdcba dac gcedb ca | cdabgf edfacgb acbgde febacdg +gefacd febcga fdg gcfdb ebcgf cgdba gdcefb fd bfedgac bedf | bdagfce gfd bfdcge geacdfb +bacgfd ec cgbafe adbgfec acfbe fbeda eac ecgdba acbfg fceg | dcgaeb fcdgabe aec afdbe +egcd dfeca efagd fdcgae egf ecbdagf eabdfc fecabg dfagb ge | feacd eg gcde feg +begaf dcfegb dbcge gadcbef fc cdabfe fgdc decbga cfb becgf | bfc fc cdebg cgfd +cfbdgea fdg efbdc fgdecb gd gbeaf agdfcb cedg adfebc gfdbe | cfdbe afgcdb dfcebga dgec +fdebgc egba dcaebfg abfgcd ba bda gdceb cefda degcba edcba | dba bdafegc decba bad +cgeb bdgcfa dfgcb efcdg ge abfged efdac eabdcfg ecdfgb gef | cedfg eg fcade eg +eabdcg gceb ec ecfadg baecd daebcgf afdeb badgc bafdcg ace | bcdgeaf ec cebadfg ce +ebdf cagfeb efcda ecbdag ecdbfa aebdc cgdfa eaf caefgbd ef | eaf dcbea acgdbe dfcbega +gdbfa gfaeb cafbgd adb cedbgaf faecdg edfbca bd dcgb gcadf | db bcdg dgfba dbgc +fbcdga cea gbcaef decgb gcdfa eafd afcdge adgec ea dbceagf | eac egbcdfa ae dfea +beagcd egcbd gbae eagcdf gdcefb cbade fabgdce ae fbcda ace | bage cae ace ageb +bacgf bdgac dcebfg eacgbd fdgbcea gfdbea dc aced bdc dbega | bcd cd bagde bafcg +gfabdc be gcedba fecabgd edcaf egbf fcabg cgbaef abcef bea | acegdfb fdbcga eb becaf +dgfbec bdecga dfgca fd aedcgfb adgec adef fcd fgcab fcegda | cbfgeda cdf df fdae +cgfbe faceg bacegf dfgbe aefcdg abdcef cb gdbefac bfc gbca | cdgefab bc cbfead cgaefd +gefdcab ebcg fcb bfdce afedb fedgc bedfcg dcafgb degfca cb | bc bc dbfecga cb +efagc cagfde fb bfe begfa gbead badcgfe bgfeac fbca fdgbec | eacfbg efb feb bf +gebdca af afb afbed bcafgd fabgde fbedc afge dgbae eacdbfg | agdfebc af abegcdf baf +egbad cfedbg gb dbg cfdaeg bdeaf dgabefc cdbega cgdea cabg | efdab fedab gb gcba +adfcb defca cabg gdefab afbdg bdgfec gbcedaf dbc gdacbf bc | dfeac bdc cbd gabc +db ebcda ebgfac fcdea becga ebgadcf bdc cfedbg agdb bdgeca | fecda bd agbd db +bagcef begdafc fbga fceab afcged ecagf deacgb acb ba bcefd | cfbedga abc deabgfc bca +cbf gdbcae abdgc fb dagbcf gabf cdfea cabdf dabegfc fbgcde | cbf fb dgabce fbc +dfbgec fcbeg fbeag afdecb fcdbga cegd dfbcg efc ce adebgcf | egdc acegbdf agfbcd cbgfe +abgce gdec ce faebg agcbd bfcadg acefdbg defcab egcdab cea | gdfabc ce agefdbc ec +acedg gbc geab ebdfc bg cbedg dacebg gdcaef fabgecd dagbcf | cgb bg adecg acged +cfebad fbgda edg ceag agebd aedgcfb eg ecbfdg cgabde cebda | cbafegd gdacebf cega eg +eacdf ea eadb cfgde cabfde bdfgac gacebf afe fbcda gcbafde | bagcfe fae adfcbg cadbf +abd fgcaebd dbfgc gdeac fbedag ceba bcgad deacgb ab adcfge | dba bcea ab cfagbed +afg bgfce af dcfa acbdge bacfg agbfde dgcfab dgbac defagcb | dfgcab cfgbad afg dceagb +gdacbf ebgacf edbagc ae agcbf aefg acfbe fgbcead bcefd cea | eca adgfcb eca eafg +fcbae bea bcdaf cadfbg fbgec ae eafd dacfeb bagcdef cbagde | fecbg cgedbaf gdcfba bae +baefg daebgc bdgeacf gaecb efb feca abfecg fadgb edcbgf fe | bfgdeca gcbea acedgbf ef +cd fdaecbg cdbga befacg fbdag decb dca gfcead dacebg gebac | edbc feabcg gcefdba adc +agdebf daeg eadbfc gef dgbfec eg dbeaf afgeb fedbcga gcbfa | eg eg edgfbc efabd +facd cabfgd fab geadbfc af gcbad egcdab becfg beafgd acfbg | fa acdfbge gdcaebf dbacg +bcgfda gbeaf cfgba fae bace cfabge cfdgae gedbf ea dgcfbae | ae ea fcagb eafdcbg +dbe gdcb ecafd edcgfba acedb gebdfa bagdce fegcba bd gbace | bd feacbdg bd gedbfa +cabgde fagecb efb adfbg acebdf fecd afbdcge cdbae bedfa fe | cfabge fe dfabg bfdea +bacg dafcg cdgfaeb fbcgda baefdg gda dabcef gfced cfadb ag | bgac dcfge egcbdfa dabfcge +bdc gdac ecdagbf geacfb defcbg fabde cafbg bcfad cd cadbgf | acbdgfe fegcabd dafbc dcgbefa +cedbf ebdgcf degc dcfgbae aebfg dfg bedgf gd aebcfd dbgfca | dbfcage cdebf dg dg +edcfb ad cgad adgbfc agcfb agfebc bdacf cafgedb daf dgaebf | afcdgeb fda fda bfagecd +agcbfde gadbcf bdfcge defgc dc afdge dcg gabfec ecbd bfgec | gcedf bcfeadg cdeb eafdg +afdebg efa afbdc ecag egcfd debgcf ea fgebadc fdeagc defca | aef afdbceg ea dgeafc +cgdfb fg ecdbf fbeacd bgdaef bcadg ecfgdab dgbfce gfec gfd | gf gf gfce febdc +bgcde fedgc cgf gabcfd gdbefc defga fcbe cdabegf fc acbdge | bcfe efbc fc efdcgb +cagb ab gdaecf cgeabd edabg fcdabe edbfcga bfedg cgdea eab | gadce gdefb abgc fedcba +ecdafg feg bcgfad egbfa afbgc ecgfdab gaefcb eg afdeb becg | ge bgfdca eg fegadc +fe adefg egdac cbagdef dcfeag adecfb dbfag edbgca gfce efd | fe efgc cabegd fe +geab fgbaec gce adefc gcafdb agcef abgcf cdgebaf gcedbf ge | gabe cfega fbdceg eg +eac dgefca cfgdba gdfeabc eadf gcfbe adfcg gcfae gacbed ae | agcdfeb ecbfg gedabc ae +ec cdagb cegdab dagbcf cbaed ebgc ecd abedf fadcge cebdafg | ecd gacfdb becg ec +abfge ce cgfdae cbed fecab fbdca egfacbd efc acgdbf cebdaf | dgface efc ec ec +gbc gcdbf gb eabdfc egfb agdcf egbcda gcdfeab dgefcb fcedb | bgef gecbfd gb bgfdce +ecgab gecabf cb gfbc abc afgeb daecg fcedab fcagbde efdbag | bdecagf gbfea ebgcaf cb +ecdgb ab adgb dbecga fgbcde cadgfbe aeb eacgbf cabed eacdf | abdg cbedg gdabce cdbeg +bgc dgeb bg fcbge befcgd ebcdfa cbfgda efcag cebfd fagbcde | gdeb fcgadeb bfecd cdagbef +edbcfga cedbga bagfd eabc dgbfce eb gceadf egb agdec gbade | cfgead gefdcab bdcgae cbae +bafcge edfg abegd deabcfg dfbagc abcde dg bdg gbdaef febga | bdg fdeg dg cafbdg +cgfdba gec gdeafbc cfgead ce fbegd cdae facdg afcbeg edfcg | cbgfea cfgadeb gdabfce egcdaf +cbfgad bceagd dbf cdbfae ebdcf cdegfab cbaed gcedf bf aefb | aefb dcfbage bedfcga fb +cgd bcdafe dacbegf adecb dbfeg bacg gedbc gc fcegad agbdce | cdg fbdge ecdgb eadgfbc +gfdabe cfbga ceab eaf gefcab gcaef ea efcdg dgafcb abfdegc | ea cafbdeg fgcab acgfe +dfg gdfbe gf ceagdf aefdb fcbg begdc cgbdef cabged becgafd | fdbgce eadbf cgedb fbcg +fdeba ecdfa badgef ebagf abegdc dgfb bd febgca agfedbc abd | bd bfega bedgca cbaegf +bafcdg cegb acfbg feagd fdacbge be bfegac abe bdcaef afebg | be bfecdga defcgba be +bafgdc dbfag gfecdb cbf cf bfadge acgfb cgfdbae bgeca cadf | cf bfgcde gdaefbc cfb +gcdbaf cgbedaf ad ebfagc daef dbafec caedb bgcde bfeca abd | ebdagcf dfea fcaedb cbfgad +ceagfd eadfb fdeag dcgfe gea ag dagcbe fcegbd fbdaceg fcga | gfca fcga dcgefb gfcaebd +cdfbge dcafe df fcd badce gdaf agcfe ecagbdf eafbcg fgcdea | gdfa fcd eabfcg fd +ad bgdfae eagfd fedcg dagb gdeabcf dea bgcefa abgef fdbaec | afbge eacfbdg bgecfa fabge +adfbceg edcgf gcabd egfcbd ecbf cebgd cefdga be deb fedgab | fecgd gcdef ecfdbga daecfg +gdfeac afedc agdbcfe ae begcfa edfbc bfcgda dgea efa cafdg | abdcfge edag edfbc cfdga +cbdeg geafbc fd gfacdb fgdce fecgad feda dfg aedbcfg gcafe | fdecg fade fade cadefbg +af bcfeg gbcfda cgabfe ecgfa abef cgdae beagdfc gaf gebcfd | gdfecb afegbdc gfa gaf +bgafcd becfag cbdeag bagdc eb bdegc adbe cdfebag gbe egfcd | edbgac adgbc bge cefgba +dfcebg cgdaef ga fcbgd dgabfc debaf acgb agfbd defbacg gad | bagc bdeaf bfgdc abcg +ebgfac agfdceb cdbga dafc cfabg dc gebda dcfbeg dbc gafcbd | gfbdca fdac gdfabec bagfcde +egbac efabgc efagcdb abedg ead da dbac bedcga cegdaf gdfeb | dabcfeg gcfeda adbc ade +acgbfe eafdg dbea bfgea dgbcaf cedbagf dfgabe cdgfe gda da | gfebdac agd dgaef dga +edbgf ced bcdeaf cdgeaf bcfgade fbcad eabc cdgfba ec febdc | dcbef faedgc edc begfd +ca bedcaf cbaedgf edabf cab dfbca bdfgc cfea daegcb gbafde | ac cdfabe bcgdf gdfceab +bdef gecbfd gbdcf cbaegf cgbda dfc gdefacb fcaegd fd gebcf | cfd dcf df fegdcab +bf adfgce dcbea cfb gfdaceb cedfbg cfedb fcedg acdgbf gefb | fb bgfe gebf dacbegf +defc edfba eadbg feb fbagcde ef dafcb gbfdca egcfab aecfdb | ecdf ef fcbgae fced +acdbe aegb cdabfge ebdcg fcabd ea gebdca bfcgde gcefda aed | ea ebcgd dbcegfa dea +dbcfe bfcda cabfedg aefc cdfabg bgedc ebdfac edf fe efdbga | efca face fe cefa +egdab bgfd gdeabcf eadbc abg bg bacefg fgade cadgef afbgde | bfcaegd dbafge abedg geabd +ebc egbfdc degc ebcagf gbcfd acbdfg ec fcdeb abdcgef abfde | egdc gcdfb bcgdf ce +dbfaecg bd bcegdf cfabg dcba abfdg fbeagc fdb cbdfga efgad | bgaefc efadg gbcafe bfd +gacef dcaegb egadc efcbadg eaf caefdg defc fe afgebd agcbf | cedag dfce cedfgba aef +gafcbed gdcef bcefad daecf adc daefb cbaf egacdb bgadef ac | dbceafg ebfcad bdacfe dca +ecbfa fae afgbc cdeafg dcfeb efgcab ae beag gbadecf acfbdg | bagfdc ae feabc edcgfa +egfac gebaf ac cfab gca gcdef cagedb bfecag fagdbe gacfebd | gcbaedf geacbdf gafcebd cgefba +fbdgec efbcag acbedgf bac befcg adfbec fgca ca bagce gebad | egcbf ca cfgabde abc +edafg cabe fcaed ce faegdcb dcefgb fec fdagcb cbdaf cbfaed | acbdef cef ce eacbfdg +efbcgd ebdgc egacf gebadc gba dabe fagcbde gbcae ab gfcbad | aebd aedb bead cdbfgae +becag cbdf cebda fgdbea bdgafce ecfda abd adefcb acgdef bd | adbfegc eadgbfc dcegafb bfdc +gfcadb fega acbeg fgcab ebcda ebcdfg ge ebcfga gabfdec ebg | beg fgedbac eagf eagdfcb +gecf cbf cbfga egfbac cbgaefd dgcbae fc aebcg befdca bfadg | cbf bgfca fbc fcb +cedfg adbgef cb bcd cgebd dageb cbegad ceab bgfaecd cabfdg | gbced bc dgefc bc +egba bdcfg fbe acegf ebcfg eacbfg eb fdebac dgeacf dcgbaef | efgacd bef ebcgf fbe +agfcbd bafcedg dce bgdfce efbac dgfe begdca de gdfcb dbefc | ced ebgcafd ed bgdaec +decfa cgbdae bdfce dgcbe bdfg bgdefc fbe bf bfgcae ebcgdaf | fb gabcef efcdb gdcebf +fbecga efcbg bafgd ac dcgeab eacf bafcg gfdbace gbcefd acb | bfecga efgbdac fbegc faec +ab ecbagdf fbagec cfedb eagbdc acb agdb ecgda acedb gacfde | acdbfeg dgab abc dgbfcea +gfdbc begdcf bfedg acgfed cd fcd febgda cfgab cadbgef ebdc | ebcd gdefab ebdc ebafdcg \ No newline at end of file diff --git a/inputs/09.txt b/inputs/09.txt new file mode 100644 index 0000000..55294f6 --- /dev/null +++ b/inputs/09.txt @@ -0,0 +1,100 @@ +5656921987125678979998760234965456789998768789239876323457896545467894567987232345679209876567998656 +4349899876234599568987654345894345999987656678945965212348965434356943459876101956798912987459876541 +5498789854345689467898765456789297898999736567899874323489654321248932398765219897987893498598765432 +6989598765459789356989878767896345987432125456789985434578965432357953499954398789376789569679876543 +9875459876569893249876989898965476976521012345699876645689876543456894689875679643234598998789987656 +8764345987678989139765393959796567965432543457789987887792987654569965678976798432123467899899998867 +9773239898789678999878212345697679876543656598999999998901298767678976789598987621012345943978929998 +9652198789894567989992101556789799989854567679659898999992399899789987893459996532136756964569919999 +8543999674923469879989232345899899998765678789798787899989989929896798932345987643245697897679897899 +7659896543212359768978943456789997889876789896987656789878679210945679651267898789976789989998786789 +8798789954563498957767894567899986678989898965432345678964567921234989743456989891988995679876545856 +9987679899874987843456965678979875567999987654321239789443459432345899954589876910999434678995432545 +9877578789989876532567899789765983458999898965410198999321598996476789875678965439876323789789541234 +8765467678999997673458978997654901269998769876322397898945976989987899986789876598765212345678930347 +4323234589989998789569769898769892978987654987439986787899865678998998997899989999874347456789821236 +4310123689878999897678958789898799899987743498598765696789987799569987898999998789985456789897642345 +6421234578956899998989345678987688789996532987699764545698998912499876949998989698976587899998759487 +7834545789345778999997236789876567678987653698789843234567899943989989234997678587989798968789898998 +8945656793234567899876345698765434589998974569898762126789999899879894349876583456899899655698997899 +9658789932123458999765458999654323678909895689987651015897998789965789498765432345699921234987846789 +8769894321012367899876567987721012789219789797896543123456789679874397679876321256789430349876734599 +9889965439143456789987679876432125699998679896987654234899896598765498989997442345678921467965325678 +3999877998956567897898999876543234789896598965498765856789965459876789899998656576789939569876566789 +4599989867898789956789789989854345699765497894349976767897654367987895698999767678997898978987977892 +5689998756999892347898698998768456789754346789234989878998796456798964787899898989445677899298998901 +6899899845890901239986567769877687897673235692123999989449987567899763456789999894323456910149989992 +7998789956791912398765436456998998987542124989239898793234598978999854667899898765212347891239878989 +9898598767989899459954324365679549099993235978998769654395989899898765678998769986323456789398765678 +8767459879876788969843210234568932198789549867989659875989876789769877889987653295434568996987654567 +9856345998765657899764321246789845987699998759878943989878965678954989998998854598546878945699543458 +9943235987654345678976532347899659876587899548767892398767954569893292677999765987657899234598754589 +8632047998775457899876545498998998765456798732455921019655343456789101456899876798768910123459897678 +7542123989896668999987756789787899654349986621434893198743212347893252367967987899979439294998998999 +9753239876998789998999887897656798743298765410123789987654323458954543478945598999989598989897659599 +7654449995979893987899998976545679854349874321245678999995934567895676569123499789999987678789343489 +8765998784569932396998769987437789967656985432356789987889895678976987878994987678999876545679212978 +9899887643458921985489954599545699878787898765467899996579789789987898989789986568998765432389343459 +1998798532467939874367893987657899989898979887598969875468678993098999997656542456989876546456954568 +0129654321256899765459932498768989692929567998989657965376578992129899876542101349876987687767897678 +9298999432345678976578943569879976541012468999876549874212456789234799997653212498765498898878998889 +8987678956756799698689654698998765432123567893986432987301234894345689998765323989874349999989329998 +7676567898767894598798765987969876865238678992195410196513346965576796989865439876543236799893213567 +8543458999879932989899878976845987974347889989954329987325457896678895678976545987754545698764301348 +3212345789989549878942989895434598765456998876899498765436567987989934568987656899865656789965492349 +2101676789397698767891098789423459876667897794768999887687678998999912347899767999876767899877989499 +3212567893219985456932987679554567987798976643456899998798989999129893456789879987987878999989878989 +4323456789998764387899876568965679698899765532345698779899294989098789567894989976598989789998757679 +5434567899899765678989875457976789549989654341234987665989123978987678998903496987439395679986545567 +6545678988789876789976982349897895434678943210129876534578939865654567899212345698921234598765432498 +8766989876578987898995431298789954323567954321239884325989097654523458989423566999890123459878521389 +9877899765467898967984310345698965212456895592398765456789198763012369878954879898791234567987632478 +9989978984358999549865321234567892101569986989989879877998999832125489767895998787679987678996543567 +9898867893267899432979832345698943452978998979878989989567899944345678956789987654567898989987654578 +8767456792125678921098765456789654567889999767467899895456798767856789345991986543456789993398765689 +7654346789334569432399886667896987698996987654348998754345679878969891239890995432545898942109876797 +8743234579456696543989987778975698999785698765459879543234789989878992349789894321234567893299987896 +9652125678967789654976599899654579987654569876767965432126567895989989498658789432356778954989999945 +8721014567898998769865456976543434976543456987879896943013478953997878987545696545467899899878901234 +9832123456789659978954348987632123987654568998998789892134567899876767897676789656578935698767892545 +8743234568995443989875467896541015699879878949998678789255778998765455698797898789678926989659789676 +7654345789654321295996568987432123456998989439876589678969899999654364759898919899799019976545689797 +8965676898743210134987699898943296587897998919887434567899989788963213345999323999898998965434568989 +9876789997654329245698789789894989799986897898776623456789876587892101296789454599987987654323679979 +4987995789975998956789895699789678989875766987654512345696567456789742679896567989876398766554789568 +3298954679899887967899934987654567878964345696543203456965435345897653498987979978964239987667895457 +9989763456798776798989429898543476567895256987653212569896321256789776567899898769879125698998912345 +8765432345987654789878998769452323479792123498765323456789432345899987678956789656998934569979101236 +9899321296998765699869987654321012345689234789765434767896543656789398789547897997987897698654312377 +0998910989899876986545699876542123467894345679876545678987656767891239895438456789876789798765425458 +1987899876789987899634569987643444578965467989987687989698767878932367994321387899965678969886534567 +9876798985678998998785678998754555678996879897698789094579978989973456789210998999864567954997545678 +6765987654589899219896899679865766789987998789999892123467989698764567894339899598765899543987659889 +5434599543456789995987954589976778997899987659899943234579692569875698965998789439976798762399767996 +4323498432345899884398943478987889656768999548789867455698543459876789879887678945797897653989888945 +5419987521236789765459654569998995443459998929689978996987656767987894998776569896898998769876999236 +6598996432345799896598767679989764312379876213567899989698967878998932989675456679999889899965210123 +7987987643457899989679898789876532101999954101377999877549878989999549876543234578998778989874321256 +9896599754598999978989969898989953219889893215456789765434989991987657987832124567989656578995452345 +8789459895689988767897654947898764598767789326767999874323497890198798998775012579876545456789678456 +5678968987899877658989932236789879987656698987978999985212646789259999659654323456987434368999989567 +6989879498998765434567890125678998798544567898989989432101239894349898745965434569874321239989998698 +7897989369987654323456921234578987654123456789999978999219398965498789659876756998765442398978999799 +8996593254598987312347892347689897543244789899878867878998997896987678967987987899876599976767899892 +9989432123459876201234989498996798798765679998765756767987876789876567898999898913987988765356789921 +9878941012367965312345678999345699899879789459854543459876565698985458799898789109899875434267896540 +9767892125679878323456789987656789999989897698763212598765434597654345689798678998756964320134589432 +8856999234569999474567898998967896798995979899854443679872123789986456895676569899549876534565678993 +7545898945678998765678987899898965987654168998766558789983234895497587894123456789434987655676799789 +6534767898799439976989876799789654496543054579878669893494545679398998973236789896545999768789897678 +5423456999896521989898765687678943219832123567989778912965876893219349765445678987659878978897934569 +7312346789995432398789954554567894398753234578999889999876987932101239876576789998798967989976545778 +6101237799989545986566893213458965989964545679432999889987898993299545987689899999987652397999758889 +4232345678978959875455799102348979877899656789599989678998929989988956798797999899876541656789767896 +5643458989769898765344568923456798765678997899987878567899019876567897899896789789987630345689878945 +6756567895456789654123579434568998654567989999996759456789198765458998998965675679898321234678999234 +7887678943379899763234678945689876543234878998875642345689987654349899987654324598765432345899899165 +8998789321234789854345789656999987632123569987984551234793498875456789998783213459876543656789678976 +9549895452375699965656798767899874321012478976543210159892109986767899989654302345998754567897567897 +0234976565467789798767899988998765434566567897865421767899212987898909876543213566789766678998486789 +1655989876988894569989910199019876545679788998976562345678924598999212987654424587899887889239345678 \ No newline at end of file diff --git a/inputs/10.txt b/inputs/10.txt new file mode 100644 index 0000000..e287065 --- /dev/null +++ b/inputs/10.txt @@ -0,0 +1,94 @@ +{{<{{{{([{[([[()<>]{<>{}}]<([]())(()<>)>)((({}())[()[]])<<[][]>[{}[]]>)]{{(<{}<>>{<><>}]([<>[]]< +[(<{{[{(<({{<<[]()><<>{}>>([<>[]]{<><>})}})>)}]}}>[{(<{({[{[[({}())((){})]({{}[]})]<<[<>{}]([][])>({<>()} +(({<{[{({(([[([]())({}())]]({[[]{}]([][]))<((){})<{}<>>>))[(([<>[]]<[]>)(([]{}){{}{}}))])})[({<[{ +([{{[([<({<<<([]())[()[]]>{<()[]>[[]()]}>[{<[]{}><[]>>{<<>()>{[]()}}]>[[[[[]{}]([]<>)]<{<>{}} +[[((<({<(<{<<{{}()}{[][]}>[((){})]>}>{((<({}<>)<{}()>>[[<>()]])<<<[][]><<>[]>>{<{}[]>(<>())}>)<{[[{ +[{<{{{{<([{[(<[]<>>(<>[])){({}<>)([]<>)}]{{([][])[<>{}]}{<[]<>>(<>{})}}}])<<{[<[<>{}]<(){}>>{<{}<>><<> +(({({([(<[[([[{}{}]([]<>}][(<>()){(){}}])]](({{{{}<>}<{}[]>}([{}[]][(){}])}[(<[]{}>({}()))<<<><>>>])<[{ +[{<((<{(<{<<{[()()](()<>)}<({}[])([]<>)>>{(<<><>>[[]{}])[[[]()](<>[])]}>{[[({}<>)([]<>)][[{}[] +{<{<{{(<[[{[[({}[])[()[]]]([()<>][{}[]])]<<({}())[{}{}]><[<>[]](<><>)>>}(([([]{})((){})]((<>)([]{}))))]<{<<< +<{(<<(<[<{<[{[<>[]][{}{}]}{{()<>}{<><>}>]>[<(([]{})[[]])>]}<[<([{}{}][<><>]){([]{})}>]({<{<>()}>{ +{[[<{{{<<<[<((()<>)({}{}))<{{}()}>>]<((([]{}){{}<>})[{{}<>}([]{})])({{()[]}[[]()]}[{{}()}({ +<[[[{{([{[({[<{}[]>[{}()]]{<()>}}({<()()>}<<<>()>{[]}>))]((({({}[])>{[(){}]{<><>}})(({()[]}[()<>] +[([([([<[{{<[[{}[]]{<>{}}][<{}>(()[])]>[({<>()}(()[])){<[][]>{()[]}}]}}<{(({()}([]()))(([]())<()[]>))<((<>{} +<{[{(({([([[{((){})[[]]>{{{}[]}[<>()]}]])]{([([<[]{}>((){})]<[()<>]<()()>>)][<<{<>{}}{<><> +[[{{(([{(({[[{{}[]}]][<<<>()>({}{})>[[{}<>]{{}<>}]]}[(({{}}{[][]}){[{}{}][<>[]]})(<<<>{}><<><>>>)])<[ +[[{([<<([[<(<{<>()}<[][]>>{[<>[]]{()[]}}){[<[][]><{}()>][([]())<<><>>]}>]((<<[(){}][(){}]><([])>>)) +[{[<{(([(([([(<>[]}(<>{})][<{}[]>[()[]]])<{[{}<>]<[]<>>}{{[]<>}{{}{}}}>]<<{[<>{}](<>())}{{()[]}{<>{}}}>[ +{({<[(((<{<<[[()<>]]<({}<>)>>>[<({[]<>}{()<>})[[()<>][<><>]]>({[{}[]]({}<>)}[<(){}>(<>())])]}><[{<[[<> +<(((({{(<({[<<[]<>>>([()()]{<>()})][<[{}{}]{<>()}>{{{}{}}[[][]]}]}{(<<<><>>(()<>)>(<<>()>[()[]])) +[<{{[{[[[<(({<()()>[(){}]}[([]())[(){}]]))>{[<[[[]]<[][]>]{[[][]](()())}>[(<<>()>{[]<>})(({}())<{}[]>) +(<[[((<<({[(([()[]]([]<>)){{(){}}})]{<(<<><>><[]{}>)<<{}<>]([]<>)>>}}){(<{<{[]{}}[{}<>]>}>{({(<><>)<()[]>}{(( +{[{((<{<<<<([<[]{}>[[][]]]<[[]()][<>[]]>)[[<{}[]>{{}()}](<()<>>[<>[]])]>>[{([<()[]>{{}[]}](({}{} +(<([<((<{[<<(((){})<<><>>)<[{}()]<[]<>>}>[([[]{}](()[]))]>[<{({}()){{}()}}>[(([]<>)({}[])){ +{((((<(({[(<{<()]([][])}>){[<[[][]]>]<{{{}<>}[[][]]}>}]}[<{([{[]{}}]{[(){}]<<>()>})[(<()<>>{()<> +<<{([{<[[[<{([[]<>]){[<>()][(){}]}}[{(()[])[()[]]}]>][{{[{{}[]}<()<>>]>[[{(){}}[<>[]]][[<>[]]({}() +<((<[<(([<[{({<><>}(()[]))}]<[<[{}()]<()[]>>(<()()>)][[(<>())<()())]<{<>}<{}>>]>>({{<<<>[]><<>( +[({{{{{{(([[<<()()><<>[]>>[{[]<>}]]{(<{}<>>(()[]))<<[][]>(()())>}]([<({}()><[][]>>]<{[[][]]<[]<>>}( +(<(<{{<[{{{[<[<>[]]<[]{}>>[{<>{}}{()()}]]{<<{}()>(<>())>[[{}[]]]}}}}][{([{[([]{})<()[]>][[<>{}]{()[]}]}(([() +{[<<(<<<{[<<<<[]<>><()[]>>[({}[])[[]<>]]><((<><>)[{}<>])[{{}{}}[[]()]]>>{{{[<><>]<<>()>}[<[]{}>([][])] +<(<{<(<({[[{((()[])[{}<>])([<>()]>}{[({}{})[(){}]]<[()<>]({}[])>}]{[<{[]{}}><{[]{}}[[][]]>][[<{}<>><()[]>]<[ +{<({[<((<<<{{([]<>}{<><>}}<{<>{}}[[]<>]>}>{<[{{}}(()())]>}>(<<{[(){}]<()[]>}({(){}}[()<>])>[<<<>[]>{[] +{(({<{{{{{((<{[]<>>(<>{})>[[<>()]])<<(()())[<>]><[(){}][{}{}]>>)}({([[[]]]{<{}{}><()[]>})<{[(){}][[]()]}> +<<[<<[((({[[(<{}[]>({}())){[()()]}][{{<>{}}<<>()>}[<{}[]>[<>[]]]]]{<(([]())([]()))>{([()()]<<>[]>)[< +{([<<<({((<{{[<>[]][<>{}]}<<<>[]>[[][]]>}[{[()[]]<<>[]>}<[{}{}]<<><>>>]>({[<[]<>>]<<()()>([][])>}(((< +(<{<((<{[[<[(<[]{}>{<>{}})][<([][])[{}<>]>[<{}<>>]]><<[(<>[])[{}<>]]{<{}{}><{}[]>}>(<([]<>){()[]}>)>]]}{({[<( +[{{(({<<<<{{<({}()){{}{}}>[(()[])]}[([(){}]{<>[]})[(<>())[{}]]]}>[<<<{[]{}}{{}{}}>]{<[{}<>]>{(()())}}>[{(<[]< +{[<<{<[[({{<<{()[]}<<><>>>([[]<>>[{}[]])>}[[[([]<>)[<>{}]]]<<[<>()](<>{})>>]})(((({({}[])<<><>>}([<>])))((< +[{(({({<({(<{{[][]}({}<>)}[{()()}{[][]}]>(((<><>)(<>()))([{}()][{}()])))([{[[]()]<[]{}>}{( +{<{{<[<<[(<([({}())[{}()]]{{{}<>}<[]>}){[((){})<[][]>]<([]())({}[])>}>{<(((){})[()<>])(<()[]>[(){}] +{({({<{{(<([<[<><>]((){})>{{()[]}<<>{}>}]{[(<>())<{}[]>][{()<>}[[]()]>})>[[<{([])[()[]]}><<[(){}]({}())>>]{ +(<{{(<<<{(<(({<><>}{()[]})<[{}[]]([]())>)([(()<>)[[]<>]]({[]()}{{}{}}))))[(<{{()[]}<()[]>}((<><>))>[[ +<<[<([{<<[[({<[]<>><<>()>}{([]<>)[[]<>]}){[<{}{}><()[]>]<{<>()}{<>()}>}]{{<({}{})>})]>[<({< +(<<[[({[({(<{{[]{}}<[]{}}}>[<<()<>><{}<>>>(<()()>{{}<>})])}{<({({}[])<()>}<([]())<{}<>>>)<<[( +[<(<{(([(<([[<<>{}>(<>{})]](((()[])[[]()])[[{}<>]({}{})]))><<{<([]<>){[][]}>[{<>[]}<()<>>]}>(<((<>[]){()<>} +[<{[[{(([[{[{<[]<>>(<>[])}<<<>()>{{}{}}>][({[][]}<<>>){(<>[])[<><>]}]}(([([][])(<>[])]{(()())}))](<<{ +((<{<<([<[(([{()()}((){})][<()[]><()[]>])<{({}<>){{}<>}}>)[{(<<><>>)<{{}[]}>}({(<>()){()}}{([ +[({{{{((([({{(<>[])[[]<>]}([{}])}(({<><>}{<>()})[[{}[]]]))<{[[<>{}](()[])](<()<>>{[]()})}{{<()() +[<[<({[[({[[[<<>[]>]({[]}[<><>])]{[[()<>]([]())]<({}{})[[][]]>}]}<<(([()()]<()<>>)<{()()}[()[]]> +{<([[<[<<(([<(()[])(()<>)>{[<><>](<>[])]]{({{}})}){<((<><>)<{}<>>)((()[])[[]()])>})<<(<(())( +<[<((<{(<[[({{{}()}({}{})}}<[[()<>]]<[()()][<>]>>]<[([()()]({}<>))[<{}()>([]<>)]]>][{[[(()())[()]][[<>[] +[{(<(<[((<{(({(){}}[()[]])<{[][]}(<>{})>)[(<<><>>[()[]]]{[{}[]]{()<>}}]}><[<[[{}()](()[])][(<>()){<>()}]>[{ +([({<({{{[[<[{{}<>}([][])]{[(){}]{()<>}}>][{[{[]<>}][<{}()>]}]]}{((<[{{}[]}(()()))[{<>[]}]>({(<>{})<[]<>>} +{[({[<[([(<{((<>{})<{}{}>)}(<[[]()]<{}{}>>({{}[]}{[]<>}))><[((()[])(())){([]<>)[()[]]}]<({() +[(<<<([{[[[<<<<>>{{}<>}>[{[]()}]>[([[]{}]{[]<>}){[<>()]}]]]]}]<<((<([{[][]}<{}<>>]<[[]{}][[]<>])){{[<>[] +{[{{[[{{[<[<<{{}<>}<[]{}>><<()[]>[<>[]]>>[([<>{}](()()))]]>{({([{}[]](<><>))<<(){}>(<>{})>}({([]<>)[{}[])}(<< +<{([[{<[<{{([(<>{})[<>()]]){{[()[]]([])}}}[{<((){})([]())>}(<{[][]}<<>{}>>[[[][]]<()()>])]}>[ +{(<[({{(<<<{[(()())]<[<>[]][{}{}]>}[[<()[]>{[][]}]]>(<((<>())[()[]]){{()[]}{[][]}}>({{[]<>}<[][]>}(<[]{} +<{{[{((((<[{({[]{}}<(){}>)}[[{[][]}<<>{}>]<<[][]>{[]}>]]>{{([((){})<<>{}>]{{()()}})<[<<>()>](<<>>[() +<([({(<<<{[<{(()<>)(<>[])}([<>]{<>{}})>]<(<<<><>><{}()>>[([][]){[]<>}])>}{[([[[]<>]{(){}}]<[{}<>]{{}<>} +{<<<[{[(<[([([[]()]<()[]>)(([]())({}[]))]<[[()<>]]<[(){}]<[][]>>>)(<{<[][]>)<(()<>)<{}[]>> +{[[<[[<(<[[{(<()<>>)<{{}<>}[[][]]>}<<(()()){[]{}}>{<[]()>>>]]>)({<<<<[{}{}]{<>()}>{<<><>>([]{})}>>[([<()()>( +[[[{({{({[{[(({}())(<>[]))<<<>[]>[[]<>]>]<<<()()><<>>>[({}())(<>[])]>}[({<(){}>({}{})}[[{}()]]){[[[]<> +<(((<<[{[[<({({}<>)[{}()]}[{[]{}}([]())]){([[]<>]<[]<>>)[(()[])[{}[]]]}>(<<<{}[]><()[]>)>[[<{}( +[<<{[{{<<[[{<<()[]>(())><<{}()][<>()]>}({[{}{}][<>()]}<([]())([])>)]({{{[][]}[<>{}]}<[()]{{}()}>}(({ +{([(<[[<(<<<(<<><>><{}<>>)({{}()}[<>()])>{([(){}][[][]]){[<><>]{<><>}}}>>(({(<<><>><()<>>){{()<>}{(){}}}} +[(<([[[([(({[[<>[]]]}))([{{[{}()]([]<>)}{{<>[]}[[][]]}}(<([]())>[([]{}){()<>}])][<{<()[]><()()>}>{<([ +{([[<<[[<[[[<[{}[]]{[]<>}>[<{}()>{<>[]}]]]<[<{[][]}(<>[])>[[{}[]]<[][]>]][((()[])[<>{}]){{{}()}[(){}]}]>]> +{[[[<<{{[<<<([{}[]]<<>[]>)([()]<{}{}>)>({<<>{}>(()[])})>[(((<><>>{<>{}})<<<>[]>[[]()]>)({(()( +[[[{<<(({{[((<{}<>>[{}])({<>{}}<{}{}>))[(<{}()>(<>{}))(<<><>>{{}{}})]]({{<()>}}(<{(){}](<><>) +(({{[[[<[{<{[<{}()><<>{}>]}({[[]()]<{}[]>])>}[<{{(<><>)<{}()>}{{{}<>}{{}[]}}}(([<>[]]([][])) +<[<<{({[(<(<{({}<>)<[][]>}{(()[])({}[])}>{(<{}{}>>})>([<<<<>{}>((){})>[(()())[[]()]]><{[{}<>]<<> +[{<{[(<[[[{({({}<>)(()<>)}{<[][]>})}{[<[()[]]{[]<>]>{<{}()>(()())}]{[<()()>{<>[]}]<[<><>]>}}] +({{<{[[[([({{<<>()>(()<>)}(<{}()><()[]>)}<[[{}()]<{}[]>]{((){}){{}[]}}>)[([{<><>}<()<>>][(<><>)(()())] +(({<{{{[([{<<<{}{}>{[]{}}>([<>[]]{[]{}})>}{<<{[]{}}[[]{}]>{<<>{}>([]())}><(<(){}>({}[]))[(<>[])(()<>)]> +<[<(<{[[<([({[<>()][<>{}]}{{()()}[<><>]})]<[[<[]()>]<[{}<>]([])>]{<[<>[]]<<>()>]((<>())[<>{}])}>)([{<[[][]] +<<{{((({<<[[<{<>()}(()())>[(()[])[()<>]]]{({{}[]}[<><>])}]<{<<<><>>{{}[]}>}<[<[][]>[{}[]]](<()()>{[]{}}) +[<<{<{([{(({[{()[]}{()}][({}{})(()[])]}{({<>()})({[]()}({}[]))}))}][[[([[{<>[]}[{}[]]][[<><>]<()[]>]]([ +[([[{{<(<[{(<<()<>>><[[]()]{()()}>)<(({}()){[]<>})>}]>)>{<[<{{((()())({}<>)>{([]{}){{}<>}}}}<({ +((<<{(<[(<[[<({})>[{[][]}[<>[]]]]]>)]>)}([(<[[([(([][]))[{{}()}([][])]][((<><>){[]()})])]]<<( +<<<<(<{[{[({<{(){}}[<>]>[<[]<>>{<>()}]}[<[<>()]>{[[]<>][{}[]}}])(<{<(){}>[{}{}]}<(()<>)<()[]>>>)][<{{<[]< +(([[<{[({{{[<<<><>>(()())>({[]<>}(<>()))]{<[<>()][{}{}]>([[]()]((){}))}}((<({}{})[<>]>([<>()]{(){}})))}[<{([< +{[([<<[([[<[(<[]()>{()[]})<{<>()}{(){}}>]><<{<[][]><{}()>}(<[]<>>([]<>])>>]{[[<<{}<>>({}[] +{{[<<(<({[<<{<[]<>>}{(<>())}>[{[<>]{(){}}}]>]}{{{<([()<>]{<>{}})(<()[]>[[]()])><[<<>[]>({}{})]((()())[{ +[{{[<{<<{{<[<<()()>[{}]>([{}{}]({}{}))]{(<[][]>([][]))(([]{})<<>[]>)}>}({{<{<>[]}[<>()]>(({ +[<{[(<<[<<(([[<>[]]][([]())({}<>}])){(({[]()}{()<>})[<[]{}>(<><>)])[<[{}[]][{}{}]><{(){}}<{}{}>>]}>({<<[[]() +[({[<<<({<({({{}<>}[[]{}])}({({}<>)<<>[]>}))([<{(){}}>])>}{<{[[{{}{}}(<>{})]]<[[()[]]<<><>>]{[<><>]<{}()> +[<{<<<<(([([[{{}()}[<>]][((){})[[]{}]]](({[]()}[[]()])[{[]()}(<>[])])){[{<<><>>{{}<>}}<{()[]}[[] +[{({<(((<({{({[]()}))[((()())<[][]>)<{<>{}}(<><>)>]}{[<[[][]](<><>)>][[{<>{}}[<>{}]](<<>[]>{[][]})]})>)))>} +[[{[[{({[([(<<<>[]>[<><>]>([{}()][<>()]))<<[<>{}]{{}<>}>[<<>{}>([]{}]]>])<(<(<[]()>)[(()[]) +<([(<<[<<({{{([]{})}[{()<>}<[]()>]}}{(<{[]{}}([][])>)})[[[<[[][]]<<><>>><{{}{}}(<><>)>]<<(()())[(){}]>{ +[(<{[{({[({<{<{}[]><<>()>}{<{}()>[[][]]}><<{{}()}{(){}}>>}[<{{<>{}}{()())}>]){[<[{()()}<[]()>]><[[{ +<{<[{([([<<[<[<>()]{(){}}>][({{}[]}((){}))[<[][]><()<>>]]>>{{{<{<><>}{(){}}>({<><>}<()))}({<()><{}[]>}(<( +({((([[{([<[(([]{})){[()<>][<><>]}]>{[<<{}{}><()[]>>(<<>>)]({<<><>>[<>{}]}{<[]{}><<>{}>})}])[(<(([<><>][{}{ +<[<(([(({([[<(()[])[[]{}]>{<<>{}>(<>{})}]]([([<>{}]{[]{}})][{<()>{()[]}}(({}[])(<>[]))]))})({{[(({(){}}[<> \ No newline at end of file diff --git a/inputs/11.txt b/inputs/11.txt new file mode 100644 index 0000000..328ac4f --- /dev/null +++ b/inputs/11.txt @@ -0,0 +1,10 @@ +3265255276 +1537412665 +7335746422 +6426325658 +3854434364 +8717377486 +4522286326 +6337772845 +8824387665 +6351586484 \ No newline at end of file diff --git a/inputs/12.txt b/inputs/12.txt new file mode 100644 index 0000000..0d41869 --- /dev/null +++ b/inputs/12.txt @@ -0,0 +1,24 @@ +rf-RL +rf-wz +wz-RL +AV-mh +end-wz +end-dm +wz-gy +wz-dm +cg-AV +rf-AV +rf-gy +end-mh +cg-gy +cg-RL +gy-RL +VI-gy +AV-gy +dm-rf +start-cg +start-RL +rf-mh +AV-start +qk-mh +wz-mh \ No newline at end of file diff --git a/inputs/13.txt b/inputs/13.txt new file mode 100644 index 0000000..2f7fb82 --- /dev/null +++ b/inputs/13.txt @@ -0,0 +1,910 @@ +688,126 +1237,406 +1228,327 +827,189 +132,457 +641,120 +1255,579 +1310,187 +371,166 +576,332 +1207,835 +746,595 +468,5 +428,282 +540,446 +1253,393 +788,701 +1034,387 +509,526 +209,360 +676,245 +781,107 +515,301 +1235,194 +83,304 +177,568 +159,570 +141,583 +599,763 +519,263 +261,260 +18,281 +870,688 +1190,598 +1287,169 +616,351 +89,488 +23,725 +338,204 +641,792 +693,577 +1278,768 +739,304 +749,565 +1096,742 +504,621 +900,103 +627,11 +1272,543 +281,491 +1185,129 +1293,526 +917,701 +781,395 +1005,264 +843,67 +930,812 +967,746 +1160,845 +1057,313 +164,92 +1089,687 +1267,504 +113,675 +676,469 +1042,82 +1053,777 +877,334 +641,270 +731,855 +1165,526 +638,250 +306,544 +1034,294 +1297,624 +509,78 +549,127 +1001,647 +624,499 +478,509 +261,232 +801,526 +818,810 +213,339 +1064,364 +972,690 +213,555 +117,388 +1146,354 +837,42 +667,672 +223,59 +50,507 +1027,504 +22,397 +3,613 +554,383 +649,31 +806,621 +176,201 +619,88 +847,183 +768,542 +1143,140 +971,110 +574,747 +639,120 +1294,196 +542,94 +1011,39 +89,504 +875,803 +271,37 +729,805 +253,357 +492,806 +622,126 +748,333 +693,465 +780,127 +1057,840 +1086,826 +1200,826 +813,158 +473,42 +277,600 +1022,95 +1064,530 +37,36 +823,1 +1057,651 +962,714 +60,816 +710,794 +82,810 +1277,267 +843,301 +872,866 +482,322 +991,362 +428,164 +127,696 +693,410 +1139,868 +832,873 +32,126 +872,516 +21,182 +875,91 +1310,709 +1290,201 +1283,683 +661,863 +73,306 +194,457 +1094,187 +144,431 +1262,339 +305,525 +507,735 +467,281 +525,627 +1250,78 +1049,773 +900,819 +582,707 +627,211 +124,637 +62,383 +473,78 +975,691 +16,644 +1245,466 +1181,757 +654,485 +594,368 +256,113 +529,787 +637,78 +1141,626 +701,670 +765,347 +397,329 +731,263 +668,721 +291,179 +1217,280 +192,586 +552,154 +785,179 +709,211 +893,628 +1273,484 +89,292 +571,304 +437,883 +1197,614 +667,224 +348,628 +1005,600 +410,551 +401,406 +567,417 +1006,206 +850,247 +1004,96 +674,95 +393,701 +1007,831 +820,418 +888,588 +624,652 +393,774 +257,117 +469,189 +296,567 +373,222 +276,507 +301,332 +440,294 +435,53 +1092,772 +1139,637 +595,350 +1042,530 +435,841 +75,855 +492,536 +93,728 +927,73 +497,46 +673,526 +445,808 +557,652 +401,805 +818,806 +412,114 +1073,280 +323,793 +1293,647 +487,1 +843,145 +112,94 +365,765 +355,487 +1026,369 +1193,782 +694,95 +463,183 +820,707 +57,725 +1123,575 +306,798 +1203,288 +7,868 +15,465 +793,480 +925,277 +811,196 +646,546 +641,326 +88,42 +349,294 +994,268 +841,705 +596,252 +638,644 +214,742 +435,526 +1238,707 +561,166 +577,93 +517,190 +639,317 +92,221 +226,506 +541,488 +517,414 +1019,715 +909,243 +37,410 +601,211 +232,588 +617,186 +37,484 +1248,511 +139,165 +736,747 +216,203 +417,628 +961,712 +659,812 +743,477 +339,784 +316,626 +800,7 +172,322 +893,182 +636,281 +164,585 +547,674 +542,876 +1197,70 +525,267 +15,36 +1240,177 +1005,425 +1006,21 +1245,121 +933,600 +1054,893 +600,100 +949,86 +373,403 +1057,56 +1054,1 +694,799 +550,82 +1057,243 +89,824 +435,501 +1021,577 +1185,107 +483,332 +955,683 +1091,837 +1042,364 +1071,642 +1273,260 +167,140 +619,536 +113,728 +857,877 +437,235 +129,137 +1087,96 +952,253 +659,109 +910,595 +176,693 +952,499 +721,502 +164,354 +529,339 +417,182 +781,787 +170,826 +857,241 +775,372 +453,843 +962,404 +316,268 +744,404 +582,35 +1160,84 +765,498 +589,196 +299,519 +72,259 +164,866 +761,127 +125,765 +1134,693 +795,593 +1015,488 +216,187 +299,855 +52,812 +1002,431 +721,193 +914,252 +304,273 +910,707 +585,728 +510,711 +917,466 +438,68 +43,484 +1041,603 +397,614 +542,352 +400,747 +537,11 +1261,518 +313,624 +495,371 +1116,247 +21,369 +803,159 +566,852 +303,383 +748,781 +656,37 +254,299 +176,497 +1303,691 +0,485 +1241,504 +1163,735 +1064,147 +182,439 +490,707 +214,94 +1129,42 +293,715 +107,9 +542,542 +284,369 +1235,39 +991,469 +1200,467 +632,397 +1014,701 +1130,306 +1015,406 +75,197 +927,427 +1096,800 +1241,838 +1066,810 +765,435 +700,686 +401,651 +1300,647 +815,526 +838,767 +23,189 +708,203 +1034,632 +150,761 +460,247 +1029,491 +1193,800 +633,712 +1134,201 +870,94 +467,491 +401,54 +1056,819 +470,798 +1134,497 +837,852 +602,203 +1190,296 +346,57 +1203,53 +1143,754 +110,68 +890,389 +13,270 +781,339 +991,82 +1017,585 +813,44 +269,277 +393,466 +383,427 +975,469 +1007,383 +955,375 +467,301 +1148,806 +490,418 +1091,78 +505,120 +1287,705 +331,225 +848,196 +346,407 +641,774 +356,798 +27,211 +785,627 +343,792 +599,660 +1109,577 +664,546 +125,129 +102,238 +519,631 +504,49 +344,420 +164,802 +676,649 +372,191 +525,403 +549,739 +1203,368 +1257,659 +589,253 +813,119 +271,256 +842,5 +229,204 +579,476 +264,831 +987,549 +547,501 +22,497 +785,851 +1001,32 +574,299 +1053,329 +760,82 +885,569 +728,299 +171,189 +892,329 +939,614 +566,42 +385,277 +1039,256 +355,519 +1091,501 +7,245 +879,103 +932,632 +242,114 +639,568 +562,673 +763,448 +1019,267 +537,500 +1033,658 +141,311 +1273,36 +8,546 +1163,36 +1193,836 +124,767 +381,683 +431,103 +1186,637 +823,337 +647,355 +1303,245 +167,1 +291,582 +1227,304 +636,799 +1201,396 +490,810 +828,322 +254,819 +1037,737 +633,861 +467,831 +129,267 +721,701 +1057,89 +565,390 +89,614 +738,567 +858,575 +68,866 +1125,637 +1143,893 +1151,324 +1197,675 +729,502 +418,565 +617,484 +75,194 +1129,852 +900,119 +1014,567 +436,122 +1171,749 +1156,147 +1019,806 +55,277 +299,459 +1223,252 +714,28 +415,869 +820,540 +1302,348 +868,331 +514,649 +843,491 +579,253 +6,33 +843,281 +80,694 +487,754 +1062,108 +964,57 +1197,824 +261,120 +1026,525 +763,9 +223,551 +420,389 +1049,54 +987,793 +396,642 +704,555 +1125,201 +843,831 +1014,193 +433,207 +1056,187 +244,810 +873,11 +1054,45 +651,109 +1169,481 +1109,17 +1208,154 +393,120 +219,816 +315,560 +1283,211 +67,351 +875,78 +1183,885 +952,74 +581,805 +726,290 +410,819 +460,701 +1059,855 +641,102 +959,189 +765,95 +1146,707 +365,129 +1093,771 +107,672 +1066,103 +909,54 +214,163 +1171,613 +223,835 +634,245 +714,476 +693,484 +912,45 +328,411 +13,624 +982,483 +310,868 +875,841 +618,163 +646,348 +70,221 +311,466 +818,536 +187,319 +1201,347 +711,763 +453,877 +45,758 +1154,68 +763,226 +1096,549 +507,484 +94,140 +403,476 +1160,581 +574,694 +365,186 +289,129 +770,448 +914,642 +1166,431 +1198,18 +338,367 +714,866 +813,718 +748,221 +676,21 +256,45 +601,235 +425,164 +840,798 +1134,385 +1303,26 +472,127 +639,774 +716,526 +930,82 +795,145 +219,91 +1198,94 +726,738 +800,711 +711,234 +32,768 +540,448 +214,184 +253,854 +311,428 +495,1 +1084,388 +674,799 +237,189 +43,410 +641,494 +1243,543 +201,115 +1181,627 +611,619 +256,449 +1096,688 +976,481 +331,101 +729,306 +545,498 +694,351 +811,114 +561,565 +65,232 +686,690 +445,861 +967,550 +164,84 +89,602 +182,767 +1076,617 +415,421 +113,614 +691,358 +1059,476 +639,858 +372,703 +619,806 +269,603 +902,791 +676,425 +979,793 +309,144 +562,561 +721,698 +1266,367 +1203,526 +305,294 +164,757 +1295,36 +1178,457 +1170,649 +472,15 +939,36 +959,511 +358,820 +718,159 +1039,579 +22,49 +541,518 +172,217 +239,252 +1034,507 +971,784 +1056,299 +836,588 +21,871 +872,28 +1033,600 +17,526 +530,189 +60,78 +273,737 +1307,505 +1297,102 +1019,582 +1310,185 +766,427 +1006,621 +577,281 +1267,410 +979,225 +572,567 +826,826 +542,793 +403,418 +253,812 +268,812 +1223,865 +909,406 +945,129 +875,526 +714,812 +140,245 +271,315 +572,119 +677,871 +987,221 +656,857 +482,665 +387,656 +1275,88 +109,347 +700,238 +125,555 +157,176 +875,53 +387,238 +483,562 +1297,400 +117,800 +361,86 +181,368 +73,406 +632,206 +393,568 +180,451 +485,268 +437,323 +57,110 +1265,136 +530,637 +311,596 +811,780 +221,560 +554,282 +909,530 +1171,281 +438,28 +261,840 +677,182 +150,810 +909,651 +1038,772 +16,219 +284,525 +1007,63 +634,649 +319,362 +565,292 +440,184 +1005,525 +1064,747 +335,691 +828,229 +659,785 +398,45 +952,372 +917,120 +1139,705 +440,94 +82,327 +144,183 +584,290 +1230,136 +589,641 +739,590 +246,147 +828,665 +1294,250 +43,843 +276,387 +1267,51 +1273,410 +781,555 +677,861 +870,294 +253,840 +693,17 +331,345 +768,262 +70,177 +67,543 +97,690 +16,250 +525,851 +252,180 +1002,463 +13,326 +277,294 +103,768 +589,876 +1288,245 +827,637 +253,581 +525,715 +725,504 +467,145 +1256,346 +164,309 +917,326 +244,119 +900,551 +647,474 +537,782 +1094,203 +22,245 +937,403 +219,803 +1146,309 +841,201 +144,887 +1006,721 +1123,319 +11,224 +425,690 +962,628 +170,696 + +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 \ No newline at end of file diff --git a/inputs/14.txt b/inputs/14.txt new file mode 100644 index 0000000..30b0a84 --- /dev/null +++ b/inputs/14.txt @@ -0,0 +1,102 @@ +OKSBBKHFBPVNOBKHBPCO + +CB -> P +VH -> S +CF -> P +OV -> B +CH -> N +PB -> F +KF -> O +BC -> K +FB -> F +SN -> F +FV -> B +PN -> K +SF -> V +FN -> F +SS -> K +VP -> F +VB -> B +OS -> N +HP -> O +NF -> S +SK -> H +OO -> S +PF -> C +CC -> P +BP -> F +OB -> C +CS -> N +BV -> F +VV -> B +HO -> F +KN -> P +VC -> K +KK -> N +BO -> V +NH -> O +HC -> S +SB -> F +NN -> V +OF -> V +FK -> S +OP -> S +NS -> C +HV -> O +PC -> C +FO -> H +OH -> F +BF -> S +SO -> O +HB -> P +NK -> H +NV -> C +NB -> B +FF -> B +BH -> C +SV -> B +BK -> K +NO -> C +VN -> P +FC -> B +PH -> V +HH -> C +VO -> O +SP -> P +VK -> N +CP -> H +SC -> C +KV -> H +CO -> C +OK -> V +ON -> C +KS -> S +NP -> O +CK -> C +BS -> F +VS -> B +KH -> O +KC -> C +KB -> N +OC -> F +PP -> S +HK -> H +BN -> S +KO -> K +NC -> B +PK -> K +CV -> H +PO -> O +BB -> C +HS -> F +SH -> K +CN -> S +HN -> S +KP -> O +FP -> H +HF -> F +PS -> B +FH -> K +PV -> O +FS -> N +VF -> V \ No newline at end of file diff --git a/inputs/15.txt b/inputs/15.txt new file mode 100644 index 0000000..b9adc42 --- /dev/null +++ b/inputs/15.txt @@ -0,0 +1,100 @@ +1611211251115912246318291351712232221112291225613417396681596333922111215456315139438667612549131941 +8932114117311575142243171112817226232119863432221628251318261661191181914131437113236733419511921113 +3311112319881299126138992415428219269217291531671353324111619434247412712947881243552169128135998191 +2519114235316687331115265422264283428712233596112945181199111152385542971123592212311162661421311721 +1382461356912146511842319166317957261971229314621394111613112824713571111351337871924493182613432256 +5114711863712392214191153831119241119273761167659431242745167938327311529213316381831112912163261726 +2133551185321341121928148131837914911121496412338312251193532149215486158331691323639142596645122111 +1711569246152189932234173111631965298489584111312431711132154431213342671841478551877131719115182119 +9122149481122135915537133111611623234859281656147415218627843119137181419118649192615139557824552374 +4911523117167829117391221297181113512124212111923552525313422843324691463742313599316131243752253684 +5414417111829212132324935672161432171112458323991236122391625212798322322229323469836523865422521221 +6411419531652111283121918212256619646644819331891775249312384935234199392273946162322562911231297881 +2128729415918832321163943197715389275338541111113951736132921133694314913712199421116532211811753165 +4155523539192111125923842191181996311591936139684321893331918133513841219121725123321178229123219131 +9479285145913396251237128221525362732111772949515352815229526959117541561311121638422294521121411186 +5361431713278166762792211821131161119224248551162317662211612621114112115836126641192459222212113327 +2494757131117376374123218127935211421161131174291195896246235724212194112343914127851943372836444151 +1126333352124135364191315839321423442739332131119751918814928429539165252271192793931114699193141352 +7993476425955975972523385123991731131227922419193851353711242334711754713176123716252617514911343624 +3837633187113119153159621661333345499733158211731234919113375757122732611351412411224458275312113323 +1213823111311973291166152828314699226174131294182312323228596132434921226112127148541491997311661191 +1941285148119221112175922114193977135939237888391111177353313353689991314261133271214122191599821736 +8119315121159215398141511314171194211295753133431893571741116342288969422281953477211127122222213973 +3211111167199143898758411863181981129346176513322864719479111538191232861611116115119312419947645553 +1116492399643291188637718819419298121111918367194662558912163995311127427114328911165321911938295897 +5221341524613111111223219421487242918173161311123534127423239989283232112859413129411118482547249611 +2221112419417121234321411525226131119681871293873972521124131841952617392731118211645272733175695623 +9612345322815334929511532521673436495145189314311416112129421593214128111119235149113134463374743313 +1244221693131322581451147117421391191864425622293214124341731361291125663915221114141621411362821278 +2172253112327761111869591591622634435924853217231815881111128255855675618865529681213195121163164521 +5743111872122589683117162112882841163318223322251188355331721123578419616834686786529121123113218593 +3321161112491141116159313111431514931151434445121713391782311211112188453711967181121569227119699721 +7512453185178912811919718138316122226148122383921386636142313119496642377384231129986892299376621781 +3113599931452121119619213654414531351118185111248215332182424311317111178972225269831323284339236238 +9912366294321341583781633214743179594932161437249186115152411911369753336382255511323199954813623728 +1314711821143992615365323742237972221289177334988151971416866117414415987181446288212921318291872287 +1624323218114569968532411252451323154227171182184321146819515242113128613341112811137258318916548332 +1195511352111831237947711128751752123921434481581332911154674751178836895113494129677169311468467511 +1863122261482612323595412171126851273311324418253578198211196382173948331667691631411433864291121391 +3122131239163387493384638361292847829627718461433891215125431265311315821112996425882765126561237115 +9911861321475453331414812557311159914929131473161814111427321154399431161191225423116724752189845823 +8151641221153511138821713126551323968737187495942257223319592116321152816393654749195121842859351561 +1166117415617912214512233311622311349827111971281785282815252122131242554221212241132169312158111271 +2233996127755859511239121167379563381398219339928131397735621213582199233313911145982592291244594129 +8569151891541511111461248226124157912265892366222218221872634432811432182612229317181291524711139591 +5412311262782192614933281411582713218722165267517317328522142495131291471384412276125722597121434111 +4173541913248981189134359164156111911121424819924627122149411627829189431144112131161789527537415321 +6199541772813361931132121169128154757113922428416775411215491988894985711765281981294312137712596211 +5251419132285971615119119177942242443621167411481133191239129831611177111334811322714342335212111579 +1211672567181413837159338619362214593438571282737841891171811922112975413195436813376511357913889116 +6914528121947132224243611758351474856334243631714152291226249163141142233286146216271151727381151169 +1871184111221765954832861441175634212721111212163252244115391345154411384118131211297436312614113428 +3557196222191552169112122212625667121963141445463531367892145241154113939211239289676471619622335121 +8567338617111541261391871614787255952111293114637631145121311622153232556918911718514211615412216141 +3944121182193414694117121173381311212142432119146149621727971611129135332923129117951215298211269685 +1111592571437471142981893366164971251413314142436483167321549514181212232343999516918983819933236711 +2375115619131214293975661177135192182233622431221411615114284928141121112272113151119724411224972212 +1145312314943244314182211125113132121152177139345496164699415321632281441514462841822959821322912811 +1128221793138934439154535119891154314517512192822451911664244177187311411881591162215129524277142942 +6921947132116612163531511516186151192965868417146111719495941314413311391186879899168572141191251821 +3186112191177114711191511274113892212111986111184132611486471323117534245765967313831244815411149751 +7211143432211162819111341412884428411157442849137112139891933941951342191473171151339821319247144849 +1131113162196912112827566145361732144314447154315612293272485153184992426631931523811115124359133865 +2281351241119151142551963821187631141146729957878815111212296647772312131896111211121435246213415112 +6613911666125516111611198421146871358716222211126181284827422512433151939174162969714755332383281551 +1314838958146117922189891941512614221122283989927215899611211552121843851111181341741142862615891571 +1184414114322239212541616362157152294513233374491318461448714111519235422661798718171439241333431296 +9311816362385233444141981596131861168924891222652896114258832451273331121448932163431364431164713512 +1712984142627979443581394797712382615719949171481235263498912867711341219911315133743566529611474376 +1718233118179567122847133769922353161321539632555611121981121731282117121198481422621181544275958977 +1965611713311299491119831837156322619154487176611728193194757471222195131333111191133639479288145129 +1925143767879899127119296284583131662912411236971684115512125122995914975232517512847426331989161132 +4499267153717255561739216833131923245176337118314966821513423353715111317591526423211571894215118187 +6579124183396925714615176324644214696647734416475522221315511135949232212422214239431992312238376121 +9422683256329462113113721585689491163835132226239324123952341945732131113122223192114515783614231313 +2155691356142542121131351729332713931122531151137795833172153367423193842872211218197921147111831296 +2316296411941633442127418259415912992294191164991361512885441591856325534682915231823857139781651122 +9145636137281236355296215512749138944731311141277711621121111498691212276268831522715182159527772777 +3224122132239918842916762517116151661619122978482962411115113411995381473218465123135111322141134939 +6582351117483126471318349319471541111917442217717826322613365376294124112591671131243119511279414331 +6423952732261724348136382963134472539218234399242771194234392191432797697271349538712139262173323939 +5995413228134633761812711113695646455338171181624111194996368911812318641817184264325113531133191771 +1161351263343243681321468581721652196519161223416276521842811111224136921281256361216611912232865513 +2185132121111682961259657424131224958141284152159882687111141923263321231218111258572158565191221314 +2817225411782624419714272493347261556461522152931965215218223824912411171151744891113912194137111423 +1579421337169822546441817285517972381181324434929391762124311161134381199823232531412315824999419213 +3397433594321463666814912371119113783382222111221112984248888113935751232163134138754215731563528193 +3142471143234221613116412482441787257711122117635393189121212512552831411161239125913133111811135743 +3892129761474512987363928223283161741741136114411532151214231333431431221937142357114251112998852553 +5541195316631416357251394178322219446412481895123714849951917522182335426248194849111296984119159115 +6135415326645125142212956869181913111276972623139411379444646921626426393126519431231627738414519415 +7251911292354759133915441134817595316198333184811718729171311322429315768358628238138131651543153821 +1429314149329291981111115452911258119831371787279311981671662216716411183121183216117779949145194819 +9446771212175891141141332112891165219141111999616597311271116422955215881561111292111311146215473192 +2521861131871723318434421918715152965195611181488289421611546398635412427117931218893287513626244111 +8153191121156911192812112313211137214128163295685421243114341139614913113191157196121836348767226615 +7191223694191111525131311232587511392919411121716188943799133588811321333393142496522191428461621541 +4311991831229124542211761611121912789517192135112141341544155561111164536149942489792274122235211192 +1955255328184197192291393141191318135231142911827322211178376698122131997147521924327551211333124525 +2327268121248272713243282411262957517495392942118222115384214211191592248992511958919114295121113911 \ No newline at end of file diff --git a/inputs/16.txt b/inputs/16.txt new file mode 100644 index 0000000..bef9be8 --- /dev/null +++ b/inputs/16.txt @@ -0,0 +1 @@ +A20D5080210CE4BB9BAFB001BD14A4574C014C004AE46A9B2E27297EECF0C013F00564776D7E3A825CAB8CD47B6C537DB99CD746674C1000D29BBC5AC80442966FB004C401F8771B61D8803D0B22E4682010EE7E59ACE5BC086003E3270AE4024E15C8010073B2FAD98E004333F9957BCB602E7024C01197AD452C01295CE2DC9934928B005DD258A6637F534CB3D89A944230043801A596B234B7E58509E88798029600BCF5B3BA114F5B3BA10C9E77BAF20FA4016FCDD13340118B929DD4FD54E60327C00BEB7002080AA850031400D002369400B10034400F30021400F20157D804AD400FE00034E000A6D001EB2004E5C00B9AE3AC3C300470029091ACADBFA048D656DFD126792187008635CD736B3231A51BA5EBDF42D4D299804F26B33C872E213C840022EC9C21FFB34EDE7C559C8964B43F8AD77570200FC66697AFEB6C757AC0179AB641E6AD9022006065CEA714A4D24C0179F8E795D3078026200FC118EB1B40010A8D11EA27100990200C45A83F12C401A8611D60A0803B1723542889537EFB24D6E0844004248B1980292D608D00423F49F9908049798B4452C0131006230C14868200FC668B50650043196A7F95569CF6B663341535DCFE919C464400A96DCE1C6B96D5EEFE60096006A400087C1E8610A4401887D1863AC99F9802DC00D34B5BCD72D6F36CB6E7D95EBC600013A88010A8271B6281803B12E124633006A2AC3A8AC600BCD07C9851008712DEAE83A802929DC51EE5EF5AE61BCD0648028596129C3B98129E5A9A329ADD62CCE0164DDF2F9343135CCE2137094A620E53FACF37299F0007392A0B2A7F0BA5F61B3349F3DFAEDE8C01797BD3F8BC48740140004322246A8A2200CC678651AA46F09AEB80191940029A9A9546E79764F7C9D608EA0174B63F815922999A84CE7F95C954D7FD9E0890047D2DC13B0042488259F4C0159922B0046565833828A00ACCD63D189D4983E800AFC955F211C700 \ No newline at end of file diff --git a/inputs/17.txt b/inputs/17.txt new file mode 100644 index 0000000..65e5855 --- /dev/null +++ b/inputs/17.txt @@ -0,0 +1 @@ +target area: x=32..65, y=-225..-177 \ No newline at end of file diff --git a/inputs/18.txt b/inputs/18.txt new file mode 100644 index 0000000..889631d --- /dev/null +++ b/inputs/18.txt @@ -0,0 +1,100 @@ +[3,[5,[7,[3,9]]]] +[[[[7,0],0],[2,[2,8]]],[[[7,8],1],3]] +[[[[2,7],0],7],4] +[[2,1],[9,0]] +[[[[7,1],[3,2]],[[9,8],5]],[2,7]] +[[[8,9],[[8,7],0]],[[[8,7],[6,3]],[[1,7],[8,9]]]] +[[8,6],[[9,[1,7]],[6,[3,9]]]] +[[2,[[5,6],6]],[[4,[5,9]],[3,[4,5]]]] +[[[[2,0],[1,1]],[6,6]],[[1,9],[[2,7],[6,8]]]] +[[[4,6],[[6,3],[3,9]]],[[[2,6],[6,1]],[[9,9],[1,5]]]] +[[[4,[3,1]],3],6] +[[0,[[5,2],8]],[1,[9,[4,3]]]] +[[[[8,6],[2,1]],[2,[8,6]]],[[[7,1],[3,9]],0]] +[[[[4,7],[2,7]],[[8,9],2]],[[[2,4],[7,2]],[3,7]]] +[[5,[2,2]],[[1,6],[[9,1],[5,0]]]] +[[5,[[1,2],[6,4]]],[6,8]] +[[[5,[1,7]],7],[7,[8,1]]] +[[1,9],[[0,3],[[6,7],[2,4]]]] +[1,[7,[[0,6],0]]] +[[[[5,7],9],[[3,2],7]],[[5,1],[9,9]]] +[[[[0,4],[9,6]],[[8,3],[7,4]]],[7,[6,2]]] +[[[[1,6],0],[[8,0],[3,4]]],[[3,[0,3]],4]] +[4,[[7,8],[4,[9,7]]]] +[[[2,[3,7]],5],[0,[9,9]]] +[[[2,0],[[5,8],[7,6]]],[[9,[6,2]],[3,2]]] +[[[3,1],3],[[[3,7],6],[9,8]]] +[[7,[[2,5],5]],[5,[3,[4,5]]]] +[[[6,7],6],[2,[[9,3],9]]] +[[[[5,6],7],[[3,2],5]],[[9,[4,3]],[3,8]]] +[0,7] +[[[4,6],[2,9]],[[[7,6],[5,1]],7]] +[[0,5],[[1,[4,1]],[[7,3],9]]] +[[[2,[3,8]],5],[[[5,9],8],[7,0]]] +[[[6,[8,6]],[[3,6],7]],[[2,1],[6,[7,5]]]] +[[2,[[6,3],[8,9]]],[[[5,6],4],[[7,0],1]]] +[[[[7,1],[5,6]],8],[[[8,9],4],[8,3]]] +[[[9,2],[1,0]],0] +[[5,[5,[8,5]]],4] +[[3,[5,[4,9]]],3] +[[8,[[7,7],6]],5] +[[4,[[5,1],1]],[1,[1,[9,8]]]] +[[[7,[3,6]],[[2,8],[4,7]]],[[[8,8],[4,0]],[2,4]]] +[[[[3,6],3],[0,9]],2] +[[2,8],[[8,[8,6]],[[1,1],[4,5]]]] +[[2,[1,[1,0]]],[[[6,2],[7,4]],[[7,1],6]]] +[3,[8,[7,[8,6]]]] +[[1,0],[[[0,4],[0,5]],[1,5]]] +[[[[5,0],4],[[7,8],[8,8]]],[[1,7],0]] +[1,[[[4,1],7],[6,[9,0]]]] +[[[1,8],2],[[5,5],[8,5]]] +[[4,[9,[0,6]]],[[[8,9],[4,5]],4]] +[[[[5,4],[1,7]],[[3,1],[7,9]]],[[[0,8],[4,7]],[[5,9],6]]] +[[[[8,0],9],4],[[7,[1,3]],5]] +[[[[5,0],6],[[6,1],8]],[[9,1],7]] +[[9,[6,[8,8]]],[7,[[7,1],6]]] +[[[5,[1,5]],[3,[4,2]]],[[[5,2],7],[[6,9],[2,8]]]] +[[[5,[5,5]],[5,7]],[4,[[2,9],7]]] +[[[[0,4],0],[[0,6],[3,0]]],[0,[[8,1],2]]] +[[[7,[4,6]],[[7,2],[4,6]]],[[[9,3],[4,9]],6]] +[[6,7],7] +[[[4,1],[8,[1,5]]],[[4,6],0]] +[[[4,[5,5]],5],[[0,[2,7]],[1,1]]] +[[[[0,1],3],[6,7]],[4,7]] +[[4,[6,4]],[[[9,8],1],[9,3]]] +[[[4,9],0],[[[7,0],[0,9]],[1,[1,0]]]] +[[[7,9],[[9,5],[6,9]]],[[0,[3,0]],[0,[5,9]]]] +[9,[[0,0],[[1,9],9]]] +[[[5,[0,5]],[[9,8],[9,5]]],[[0,[2,5]],7]] +[[[[5,8],6],9],[[[2,7],7],[[7,8],5]]] +[[8,[[4,7],6]],2] +[[[[7,1],[9,0]],[9,[1,7]]],[[8,[6,7]],[2,5]]] +[[4,[2,9]],8] +[[[[7,6],[5,3]],[5,[9,7]]],[[6,[8,1]],[[6,4],9]]] +[[7,[[7,8],4]],[[1,3],[4,[9,7]]]] +[[[6,[6,7]],[[2,8],3]],[7,[6,[0,3]]]] +[[9,8],[[0,[4,8]],[[9,1],1]]] +[[[[4,0],[5,9]],7],[6,[[5,9],[9,6]]]] +[[8,1],[1,[9,[8,3]]]] +[[[1,[5,1]],[6,7]],[[5,9],[2,[6,7]]]] +[[[3,7],[[7,8],1]],[[0,[6,3]],[8,0]]] +[[5,[[9,3],[1,2]]],7] +[[[1,[9,9]],3],[[6,4],[4,1]]] +[[6,[1,[3,6]]],[2,9]] +[[2,[0,2]],[5,[[9,4],[5,0]]]] +[[4,[[3,1],[7,0]]],[[9,1],[[5,5],[6,7]]]] +[[3,[[7,1],[3,4]]],[7,[9,[9,4]]]] +[[9,9],[[5,4],[[9,7],4]]] +[[[5,1],8],[[6,7],9]] +[[[0,[9,5]],[4,3]],[3,2]] +[[[6,[4,1]],[[8,7],[5,3]]],[[[1,2],5],[[9,2],5]]] +[[[[7,4],[9,0]],[[1,8],[2,9]]],[[5,[1,9]],[4,0]]] +[[[4,[3,8]],[[3,3],[2,8]]],[[[1,3],9],[[8,5],6]]] +[[[[6,4],[7,9]],[[7,6],8]],[7,[9,8]]] +[[7,[3,5]],7] +[[[[5,0],[2,3]],[3,7]],[[4,[6,3]],[7,[4,4]]]] +[[6,[3,[7,6]]],[[[5,8],[8,1]],[3,[1,5]]]] +[[8,[9,[5,2]]],2] +[[1,[5,4]],[[7,[8,0]],8]] +[[[[2,7],4],3],[[1,4],[8,4]]] +[3,[9,2]] \ No newline at end of file diff --git a/inputs/19.txt b/inputs/19.txt new file mode 100644 index 0000000..d8699df --- /dev/null +++ b/inputs/19.txt @@ -0,0 +1,856 @@ +--- scanner 0 --- +536,703,543 +-132,-41,-64 +-429,350,-809 +-477,567,455 +-369,-732,-732 +-806,-680,810 +502,729,469 +-417,400,-831 +497,-739,-564 +-545,-726,-743 +271,357,-605 +13,-26,94 +508,-654,-647 +-581,-685,774 +396,-908,355 +-481,568,418 +-634,-665,910 +306,410,-668 +540,739,539 +465,-656,-423 +-474,-628,-795 +-463,568,426 +254,306,-662 +358,-788,353 +-396,313,-691 +251,-873,452 + +--- scanner 1 --- +405,377,-919 +-471,604,350 +479,506,644 +495,326,707 +-407,-663,-846 +618,-537,318 +-584,506,-618 +-577,-375,640 +682,-442,283 +-579,-587,598 +612,361,-928 +-253,-680,-729 +512,382,-895 +531,379,751 +-468,-460,659 +-262,-699,-913 +974,-376,-550 +539,-333,326 +917,-437,-630 +-422,787,372 +48,7,-59 +-451,618,404 +-697,390,-626 +-766,485,-587 +971,-556,-663 + +--- scanner 2 --- +-652,-598,521 +680,708,-671 +401,-847,-328 +-666,588,522 +-629,-292,-571 +256,-750,-363 +-576,-428,-551 +-698,690,-828 +640,385,384 +698,679,-614 +-801,-392,-556 +490,-475,680 +-594,-543,549 +27,-15,66 +-878,546,524 +-703,476,-864 +741,661,-790 +-793,527,633 +506,-675,668 +-736,691,-860 +-646,-597,737 +650,579,455 +363,-849,-448 +-77,-44,-102 +636,387,485 +609,-565,657 + +--- scanner 3 --- +-694,-480,675 +-79,48,-39 +-713,754,292 +329,-686,-566 +352,-717,-653 +689,385,454 +-736,862,-562 +-619,615,350 +687,515,-478 +754,359,540 +-741,-551,707 +-416,-641,-826 +780,-406,714 +757,427,547 +-766,670,-548 +376,-703,-591 +-676,-675,645 +616,-364,628 +-413,-651,-750 +-645,601,324 +-837,864,-558 +618,546,-543 +651,-444,702 +-438,-700,-839 +735,493,-571 + +--- scanner 4 --- +-530,746,312 +786,-443,556 +-889,-559,548 +707,-625,-700 +-597,746,-565 +-695,733,324 +797,-456,613 +521,468,-520 +798,-448,530 +-820,-811,-882 +-905,-712,-989 +700,666,439 +759,795,432 +637,796,456 +-877,-533,314 +-887,-526,362 +671,-621,-704 +-575,696,330 +-940,-809,-844 +-478,699,-504 +-654,717,-547 +-56,111,-123 +529,444,-427 +618,407,-518 +697,-695,-738 + +--- scanner 5 --- +-622,-664,638 +91,56,-46 +-584,-588,503 +-597,-542,-844 +637,-732,382 +541,-389,-695 +608,849,773 +-824,472,329 +-715,664,-901 +-807,472,398 +696,824,658 +-748,513,423 +734,-704,553 +-603,-571,-996 +702,-641,519 +-564,648,-902 +-546,-560,-802 +529,757,-875 +-774,670,-893 +710,934,780 +-633,-647,616 +45,186,-187 +571,805,-747 +469,-300,-758 +548,722,-801 +470,-365,-800 + +--- scanner 6 --- +-63,90,49 +498,853,-791 +578,-569,-624 +-655,-638,533 +625,-555,-405 +612,-558,-546 +481,703,-791 +472,508,699 +-676,-594,581 +641,-783,554 +689,489,688 +-597,648,491 +-588,829,-432 +447,-795,466 +-611,-448,-552 +-628,702,-523 +517,666,-715 +-730,-425,-642 +-606,719,-512 +-714,-437,-442 +-537,611,499 +-462,665,425 +597,478,703 +460,-784,616 +-648,-556,677 + +--- scanner 7 --- +845,881,-301 +-501,-349,486 +-315,-608,-344 +-480,685,-388 +718,980,-308 +915,979,627 +-279,-529,-320 +749,-436,411 +-508,-323,638 +-557,-346,709 +744,-481,476 +738,-636,412 +-431,775,-306 +-486,759,-520 +378,-599,-409 +-575,569,537 +538,-579,-380 +94,37,37 +-656,696,463 +931,951,534 +931,865,728 +448,-570,-525 +-739,579,511 +-301,-469,-277 +782,925,-452 + +--- scanner 8 --- +-642,587,781 +449,768,-502 +-541,-248,454 +-652,688,-666 +-657,-301,345 +388,565,306 +-711,575,-617 +-597,592,716 +31,60,-133 +-705,-303,534 +-728,553,-628 +518,471,325 +-449,-629,-686 +-462,-608,-643 +399,395,424 +573,-579,-519 +-49,145,4 +485,-560,410 +365,-564,556 +408,793,-443 +-580,-592,-693 +542,-671,-541 +408,862,-426 +380,-463,470 +-442,598,780 +580,-773,-513 + +--- scanner 9 --- +511,-520,557 +831,490,487 +-549,-659,-680 +536,-615,-490 +165,-84,33 +652,-552,474 +-516,602,-544 +-439,-556,-691 +-267,-451,305 +-822,579,548 +-571,544,-572 +-16,-6,-106 +841,452,-616 +-517,596,-760 +-364,-306,340 +584,-594,-534 +820,314,481 +680,-622,-572 +883,419,585 +-722,751,533 +-639,-540,-703 +735,-563,559 +947,393,-650 +-686,526,528 +905,520,-588 +-265,-413,425 + +--- scanner 10 --- +-737,650,-388 +799,760,694 +-389,-453,768 +-667,-803,-543 +537,-419,977 +573,-564,910 +699,461,-254 +-644,698,-366 +-657,-874,-737 +556,-410,793 +-672,581,-419 +-653,-773,-735 +680,814,727 +78,-167,23 +-376,-475,827 +861,-734,-576 +649,-736,-534 +776,-625,-595 +-649,292,813 +860,817,614 +-624,339,830 +50,-20,162 +-465,-450,778 +-562,315,844 +903,382,-262 +794,525,-219 + +--- scanner 11 --- +99,76,34 +-676,680,608 +-416,-818,449 +-383,-733,-582 +-278,-673,-485 +-263,-587,-586 +-297,-719,373 +610,574,866 +544,-363,576 +743,689,-672 +-817,391,-552 +-607,706,535 +601,429,776 +-805,494,-602 +-779,332,-498 +699,-427,570 +703,798,-570 +759,-798,-323 +643,-689,-270 +-605,648,465 +648,653,-655 +-286,-837,543 +-21,-98,124 +581,458,936 +807,-609,-325 +744,-362,565 + +--- scanner 12 --- +-425,-551,749 +399,-500,-745 +621,-564,617 +458,551,789 +-771,404,712 +-635,-782,-410 +141,-60,-11 +-407,-500,691 +427,311,-461 +434,438,-362 +-786,391,773 +-533,-750,-406 +578,374,-417 +420,485,830 +376,378,782 +-602,225,-477 +535,-509,559 +-733,594,734 +652,-499,714 +-466,-660,638 +375,-461,-524 +-501,241,-363 +13,-15,-141 +392,-416,-592 +-585,-935,-464 +-408,225,-391 + +--- scanner 13 --- +-869,-562,284 +-626,-660,-761 +863,541,-592 +-615,-577,-676 +594,-454,-831 +-713,476,667 +915,554,-452 +621,-462,713 +528,750,450 +680,-516,627 +-640,407,641 +-783,478,609 +866,578,-609 +-705,797,-876 +-875,786,-758 +662,-561,828 +-658,-801,-678 +524,593,486 +-852,-619,335 +-799,667,-857 +-817,-556,388 +479,-362,-887 +490,705,572 +101,-76,-131 +-40,-1,16 +414,-474,-816 + +--- scanner 14 --- +441,817,-678 +-598,650,753 +371,-553,781 +-510,-749,-608 +9,-9,185 +364,-412,661 +-698,-767,-537 +-695,787,-546 +-93,144,106 +676,-367,-546 +-564,746,-667 +478,752,-535 +-588,-350,394 +565,773,-725 +-587,-306,537 +-678,698,-692 +-773,-762,-605 +-393,632,689 +597,749,893 +827,-282,-517 +-490,578,681 +380,-405,668 +808,-318,-662 +578,692,850 +579,917,825 +-578,-442,497 + +--- scanner 15 --- +711,434,636 +-814,919,616 +-367,796,-569 +667,-597,612 +637,-360,-736 +668,-381,618 +699,-371,-662 +-351,789,-562 +591,759,-398 +786,439,704 +128,62,-70 +-793,-527,-586 +722,-569,670 +-754,-553,694 +600,895,-438 +601,851,-295 +-796,-491,821 +-663,834,645 +-795,883,761 +-690,-470,-654 +-728,-676,-612 +-690,-525,762 +639,-287,-734 +-358,648,-682 +523,452,707 + +--- scanner 16 --- +509,-793,667 +878,553,565 +-582,760,-790 +-599,-400,-777 +581,-549,-837 +-498,-416,-891 +-405,-400,-863 +-530,575,-848 +769,655,525 +-8,-11,-79 +538,-953,687 +90,-139,81 +-529,308,461 +402,325,-509 +-282,-582,524 +-347,-587,569 +654,-883,658 +-718,306,509 +-609,253,625 +-283,-593,724 +-632,607,-844 +430,-486,-793 +395,241,-662 +437,-613,-892 +733,638,620 +378,286,-730 + +--- scanner 17 --- +754,602,-677 +-722,-580,-369 +-439,722,669 +-372,731,-647 +16,-1,-34 +164,118,125 +433,-796,-390 +474,-459,828 +943,619,739 +-765,-605,576 +-402,923,-633 +697,631,-695 +873,649,-738 +-700,-639,-356 +592,-518,899 +-756,-789,557 +566,-719,-309 +475,-540,761 +-725,-590,-445 +692,-807,-381 +-611,-722,593 +-550,783,796 +911,620,701 +-441,764,881 +-301,925,-637 +947,834,706 + +--- scanner 18 --- +113,-179,93 +-709,565,-575 +-585,-728,588 +812,527,-496 +-496,315,704 +-367,364,615 +939,-532,762 +727,472,-351 +701,704,557 +-312,-886,-799 +944,-633,873 +-779,594,-691 +-533,-891,548 +499,-602,-827 +-608,-769,451 +-375,-930,-648 +-619,574,-720 +829,432,-460 +460,-823,-851 +757,693,547 +415,-755,-834 +950,-664,733 +-439,-985,-792 +702,691,743 +-341,400,702 + +--- scanner 19 --- +765,-723,-476 +-795,553,792 +640,682,-495 +138,123,77 +648,-491,767 +617,736,-578 +-556,-542,581 +-679,-488,-787 +-738,-463,-828 +-755,-394,-828 +508,578,559 +779,-845,-366 +-638,-549,725 +489,795,570 +611,-431,759 +665,-356,833 +478,703,555 +80,10,-59 +-594,-570,677 +-783,747,704 +-705,828,-630 +677,-838,-451 +-784,566,642 +-495,837,-652 +598,810,-543 +-646,836,-636 + +--- scanner 20 --- +698,-671,896 +-629,-578,570 +882,-690,887 +633,-486,-344 +815,-654,742 +862,582,-466 +-307,396,-533 +-671,-366,572 +556,494,383 +-327,471,-605 +-403,796,727 +-526,-508,-812 +-690,-451,681 +-48,50,4 +595,399,452 +-741,-541,-816 +-435,627,698 +-381,613,678 +611,-348,-461 +-527,-546,-780 +587,515,565 +887,614,-414 +-361,524,-418 +552,-419,-343 +867,468,-504 + +--- scanner 21 --- +591,695,-643 +-461,-434,378 +876,-525,845 +447,688,-725 +-609,715,615 +858,-320,-565 +-724,-437,365 +752,-379,-599 +725,-496,760 +816,-447,-627 +413,806,524 +-598,737,632 +-528,629,-524 +-660,-471,-643 +-649,-505,360 +405,746,561 +-606,-523,-455 +-605,-529,-671 +-638,732,-535 +339,881,578 +-110,154,-71 +857,-380,809 +38,67,-3 +-518,755,742 +495,667,-681 +-728,613,-512 + +--- scanner 22 --- +417,869,-670 +-390,-523,-643 +668,-601,466 +-449,460,555 +-411,652,-704 +757,407,838 +-332,-429,-504 +-399,817,-717 +-14,26,-96 +-635,458,588 +549,-578,556 +-401,470,562 +-674,-468,562 +-687,-471,703 +-364,-497,-657 +460,693,-688 +508,-376,-588 +902,442,741 +478,750,-717 +518,-305,-394 +652,-589,666 +109,117,38 +-417,772,-667 +795,527,840 +-640,-457,484 +522,-406,-396 + +--- scanner 23 --- +-800,-816,-415 +486,376,-362 +-411,496,636 +260,419,326 +-938,-671,519 +1,-24,20 +359,-713,278 +-930,-835,-509 +-611,650,-431 +668,-637,-556 +429,325,-345 +-833,-731,616 +423,429,-397 +282,369,338 +-953,-585,620 +400,332,305 +296,-609,383 +-437,334,532 +-919,-717,-339 +348,-707,454 +527,-720,-588 +444,-635,-599 +-540,682,-574 +-186,11,-59 +-399,393,586 +-609,708,-501 + +--- scanner 24 --- +661,560,-615 +-838,-878,-425 +756,-980,519 +-430,-499,528 +-840,792,-299 +-891,-834,-389 +730,337,599 +-711,491,690 +-613,-477,577 +-835,768,-406 +-827,499,803 +792,592,-663 +-711,-771,-373 +656,286,631 +-856,801,-506 +-42,-81,88 +841,216,626 +-599,-531,557 +767,-854,387 +754,-461,-726 +-732,460,872 +859,-869,436 +668,-426,-620 +626,-548,-657 +802,511,-703 + +--- scanner 25 --- +871,758,-518 +-441,-709,335 +458,576,380 +704,-742,-632 +-721,571,786 +-803,-452,-835 +-752,658,763 +-711,565,-686 +828,638,-529 +-687,377,-660 +392,-542,358 +-686,530,-584 +818,761,-520 +-888,-342,-883 +480,483,428 +-798,-414,-880 +324,-535,361 +-399,-623,499 +-54,-43,48 +511,548,497 +350,-449,426 +807,-776,-756 +-738,596,739 +81,137,-43 +716,-700,-860 +-479,-697,464 + +--- scanner 26 --- +-901,-451,391 +-534,-435,-744 +-383,810,622 +-7,71,53 +474,684,458 +-861,602,-891 +-769,-567,440 +-571,-578,-679 +-457,735,676 +605,-576,840 +-920,-596,355 +417,-505,822 +680,-508,835 +384,612,-707 +471,-446,-673 +462,781,-698 +565,644,585 +-864,517,-869 +554,666,568 +-909,737,-873 +-658,-388,-700 +-449,675,639 +585,-421,-625 +602,-567,-714 +397,746,-782 + +--- scanner 27 --- +-490,-562,-654 +501,516,490 +-310,-612,762 +560,738,-569 +587,-506,-667 +-782,970,-551 +-729,935,-614 +-289,-544,-609 +424,433,614 +606,-412,-491 +-833,987,-608 +378,-468,689 +-404,-503,-708 +391,546,639 +487,738,-654 +-436,705,597 +451,-491,621 +-400,701,593 +-321,-555,775 +567,-397,668 +81,40,90 +582,667,-630 +-410,739,523 +-309,-529,770 +657,-413,-678 + +--- scanner 28 --- +69,84,-59 +-289,-502,-551 +595,-623,583 +-456,920,-639 +583,-423,567 +778,439,713 +-576,755,732 +714,-491,-517 +-307,-690,-480 +-693,808,704 +879,437,717 +739,598,-801 +-377,912,-843 +-645,786,797 +741,640,-589 +-544,-542,669 +742,-546,-575 +-520,955,-734 +606,-513,686 +526,-545,-569 +-671,-633,709 +-561,-553,691 +-294,-427,-483 +808,631,727 +630,579,-716 + +--- scanner 29 --- +554,-452,430 +712,317,-664 +554,-470,422 +-577,514,-619 +-735,-733,754 +-625,-635,-349 +419,547,547 +-441,819,564 +-504,514,-704 +-518,736,440 +809,-385,-687 +30,-54,-66 +722,-406,-827 +-599,585,-680 +772,-418,-805 +-123,-145,56 +765,282,-601 +-662,-695,652 +-660,-788,804 +383,551,543 +-650,-675,-301 +-723,-747,-314 +-408,706,589 +555,-466,459 +393,513,473 +-30,28,95 +816,265,-658 + +--- scanner 30 --- +648,439,-720 +-883,-704,-653 +760,676,623 +681,-717,482 +288,-461,-535 +739,-762,425 +752,755,827 +-682,-622,380 +-665,-711,526 +278,-470,-658 +-587,838,467 +-793,461,-725 +588,-655,448 +-850,825,464 +-702,588,-685 +-662,843,535 +-870,-779,-787 +795,612,718 +-796,-670,405 +595,556,-748 +5,-51,26 +235,-459,-538 +-131,33,-79 +-805,-695,-822 +-713,571,-707 +626,487,-813 \ No newline at end of file diff --git a/inputs/20.txt b/inputs/20.txt new file mode 100644 index 0000000..2e2b2bd --- /dev/null +++ b/inputs/20.txt @@ -0,0 +1,102 @@ +###.#####..###..###.....##.##.#..#.#######..#...####.....#.#.###..##.#....####.#...##.#.#..##.###..######.#.#.#.##..#...##..###....####.##.##..#.#..##...##.#..#..#...#..#....###.####.######..#..#..#..#..........#.####...#..####.##.....#.#..#..#..####.##..#...####..#....#...##.#####...##.#.##.#..#....###....###..#...#....###.#....#..##....#..#..#..#..#.......###..##..##..####...###..#.....######.#.#.#.####.####.#####.....#..#...#.#.###...#...#.##.##.....#....#..##.###..#.##.#.##..#.#......####.#....#..#.#... + +...#.####...#...#..#####..#.#.##........###..#.....##..####.###.#####......#.##.#..###.#####..#..### +#...#.#....####.##.#...###..##...#.###...###...#..#.##.#.###..#.#.##..#.####.#..#..#.####.##.#..#... +....#.##..##.#####.#...#########..#.#.####....#..#.#..##.##.###.#.####.##.###.##...#.######..#.#.#.. +..#.##.###.##..#.###..#.#..#.#..###..........#..#..###.#.......###.##.#.#..#####.##.###.###.###..#.# +##...#...#.###.#####..#.#####.#..##.#.##.#..#.##.#..#...##...####.#.#..#....#########.#.##...####.## +###.##...#.###...#.####...#.#.##..##......##..#.###..#####..##...##.##..##..##.##...#.#.#..#.#..##.. +.#.#####....#...#...#..##..##..#....#..##..##.##..#..#.##..#.#.###..##..###..#...#....##.##...##.### +.##.#..#####.##.#.#..#..#.#####.....##.####.....#######.#.####.####..#.#.###.#....###.#...##..#.#.## +#.#.#..###..###.#.###..###...##.##.#....##.#.###..######....##.##......##.#..#..######.###.##..###.. +#..######..##..####..#.#....#...#.#.###....###....#.#..##.###.#..#.#..#.##.#....#....#....##..##.... +.##....#...###...##..#...#....##.####..#.##..#.....#....####.#..#...##.#..###.#.#.####....##.#...### +##.#######...###...........##.###..##..######..###..#.##.###..#.##...#.####...#....###.#..#.##.###.# +.#..#..#..#...###....#.#..#.####.#.#....###...#.#...#..##.##..#...###.#.#.....#.#.#.###....###.#...# +###..##.####..####.#.##..#..#.######.#.#####....#..#.#......#........#.#..##.#.####...###.#..#.##..# +.##.#.####.#.##.###..#..#....#####.#.....#..#....###.....#.#..######..#..#....#.##....####.###.#.##. +.#..#.....##....#.#.#...######...####.#####..#.#.#.##.#..#####.#.#.#.##..#..##.##.......##..#.#.##.. +###..##...####....##.#...#..##.##.###.#......##...##.....#.#.#.....#.###.##..####..##.####.#.###.### +..#...#...####.....####.#.#.#..##..##..#....##.##.###.#.#####.#..##.##.##...##..#.###..#.#...##....# +.#.##.#..####.#.#..##...#......###.#..##.##.........####.###.#..##.####..#.#.#.#.###...#.#...##.##.# +##.#..#...##.##.##.#...###.....##.#####.#.#.##...#.#.###..#.##..#.##...#...#..#..#..####..##..###..# +...#####.##..##.###.#.#..###......#..##..#..#######.#.#.......##.#.#.###.##.#.#.####...##.#..#....## +#.#...########.##.#.#..####.###.####.##.#####..##.###.#.#.###...#....##..#..###.#.....#.###.##.....# +.#.##.##.##...#####..##..##.###.######.......#.#.#....##.###..###..##.###.#.#..#..#..####...#..#.#.. +##.###.###....########....#.#...###..#.##.#....###..#.#.....###..#.#..#.##.#.......######.#.#.##.... +##.#.##..#....#.#..##.#.###.##...####.....#...#.#######....#..#.#.#.#.#..#.#.#.##.####..#..#...###.. +.#.######.##.#..#..###.#.###..#.#.#..#...#..##.#######.#...#...#..####.#....###...#.###.##...##....# +.#.##.#.#.#..#..#.####.##..####..#..###.#.##..#..##........#.#.#.#########.#..####..#..#.##.##....#. +..###.#..##.##.##...###.##...##.##.##.#.##.###.#####.##..#####.##..######..####.##.#.##..#.....##... +##..####..#.##....##.#..##..#.#.#..#.##.....#..#....#.#.###.##.##.####.##....#.#.##......#....#..... +..#.......#.#....##.#.#.###..####..###..#.#.####.....#...#..##.#..#..#...######...........##..##...# +...#.#...#....##.#....##.##.##.#.#..#.##.#.###.#.#.#.#.#######.#.##.##..#..##.#.....#..##..#.##.#... +.#.#..#..#..##..#....#.#..#....##....#.###.###...#..#...####.###.....#.##.#..###.....##..#.#.##..#.. +.#....##..##..#..#...##.##.#.##..#.##.#.#...#####..#....##...##...#...####.###.#..#####.#..##..#..## +###.#####.#.#...#.#.#######.#.....#####.#...#..#.##.###...#..#..#.#..##..#.#...###.##.#..##..###.#.# +.#####.###.#######..#.#......#.##.#.##.#.#...##....##.#.#.#...#..#....##...#..#...#...###....#..#.## +###...##.##.##.##..####.##.######.#.######.##..#.#...##...#....####...#..##....#..#..#####....#.#..# +#...###.#.#.###...####...##.#.#..###..#######.##.####..#.####..##.#.##.###.######.........###.#.#.## +####.###.#.#.#.####...#..#..######.#..####..##.#.###...#.#.#.##....#..#.#.##.#..#....#...##.##..###. +#...#..##.#...#..##..##.####.#..###.##.#...#.#.#...##.##.#.#....##...###.#...#...#..#.#.#.##.##....# +...#...###...#..######.#.####.#.#..####.....#.####..###.#.######..##.......##.#...#..##..#.###..###. +.##.##.##..#..###.#...##..#.#.#..##..###.#.###.#.#.##.....#.#.###....#.#..##.##..##.###.###.####..## +###.###....####..#..#.##.#.#..#.####..##.##.#..##..##.#.#.#.##..###...#.#.##.#..##.##..#.#..##.##.## +##...####.##.##...#.###...##..#.##..#.##...####..###.....#.##.#.##.#.#....###.........#.#.#..###.### +.#..##.###..##.#..#.#####......#..#####.#.###...###.#....##...#####..###.####.###..##.#.#...#...#.#. +..#...#..####....#..#......#.##...######.##.###.##.##.##.#......#####.#..##.#...##...###..###...#### +..#..###.####.####.####.###..##...#########....######..#....##.###...#.#........##...##...#..##..### +.##..#......###.#...##.#..#.#..####.###.#.###..##.##.#...###.#.....##..#..#.#.#..#......#.####.##.#. +###..##.#.#.###..#....#.##.###.........#.##...#.###...##...#.##....#.#.#.#..###....###.###..#.##...# +###.#..##.#...####..##..##.#...#.##..#..##.####.#..#.#.#..#.##....#..#......###....####......#.#...# +.#######...###...###.##.#.#..#.....##...#...#.####..##.#.##..#.#...#..###........##..##.#.##..#..... +..####.#####...##..##.###.##.#..#..##...#.#....##.#.#...##...###...##.#....###.#.##....#.....#.#.#.# +...#.......#..#.###.....##.#.......#...#..##....#####.##.###.....##....##.#....#.#.##.#.#.#..####.#. +.#..#.#..#...#.#.#..#..#..###..#####..###.#.#.####.##..#.#....####.##...#...#....##..##.##...###.#.# +.#.##..#######..#.......#.###..#.#.###.#..##.##......##.####.##.###......#.###.#.#...#...##.....##.. +#..####.....#..#...###.#.###..#...#.###.#...###...##.##....##.##..#.###.###.###.#.##...####.#.##.##. +.###.....#####.##.#...####..#.##..###########..#...######.......###.......####.###....#.###.....###. +.#.####..#..#.##...#.#######.#.###....#.###.#..#.#.#..##.#.#.#..#.#.#.....#..#..###..##..#....####.# +.#####..#..#....#.###.#.###...#.###..#.#.##.#....#.####...##....##.#####.####.##..#.#.#####..####.## +#...##....###..###...##...#..#......#..#.##..####..##.#.#......#..##.#..##..###.##..###...#..####.## +....####.####..........#...#..####..#.....#....##.####.#.##..#..#....##...#.#...##.#.#..##.##.##...# +.....#.#...#...#.###..#..#.#....#....#..#.###.##.#.##.##..#.#.....#.###....####.#....#.....#.#..#.## +#...#.##..#.#..##.#.....#.#.#.#..#.####..#...#.#.#...##.....#.#####..##..##..###.##.#....#.....#.... +.####.##..##.......##.####..##......##...#.#.###..#.....##.#..#.##.#.#.#.###.......###.##.#......... +#.###.#.#.###.#.#.#..##.#..#.######..#...#....#..###.##.#...#.#.#.#.####....##..###.###....#.#.###.. +.#.#..#.....####.#####..##..####....###....#....##.##......##..#.#.#...#.#...##.##.##.######.#.#.### +###..#.#..###..#..##..###.....#####.#.#...#.##......#.#.#........#.#...#.....##..##...#.#....#.#..#. +##....#####...#.#..###.####...#...##....##..#.#...#...##.##...##........#.#....#####..#.....####..#. +.#..#.#####.#...#.#.#..###.##...##...##..##......##.#.###...#.#..#.#####.#.#..##...##..##...###..... +.##..#..##..#.###..####.....##.#..##.#.#...##.#########..#..###..#.##.#.#..#.#.#.###.###..####..##.# +##..#..#...#..##...#.#.##...#....##..#.#.##.....##.#####.##..##....#.#......#.###.....#.###.....#... +#.#.#..#..##...#.##.##.###.###......#...###....#.#..##..#.##..#..#.##.#####...#...###.#####..#...### +...#..##.######.#..#..##..#..##..#....#.#.#..#...#.##....##.#.##.##....###.#.######..#..###...##.#.. +###...######..#.##.##.#.#.###.#.#.#...###.##...##.#.##.#.#.#..#....####...###.#..##.##.#.##..#..#..# +#.##..###.######..#..#.##.##.#.##..##..#.##..#.##..##.######.#.#....#.#...#...##..#.#.##.#.#...#.#.# +..##.#.#...###.##.....#.#.#.#.#####..###.#..##..##.#.#..##.#.###..#..#.##....#....##...#######.#.#.# +.#.###.....#..#.#.....#..#.....#....#....##..###.##.##.#.#####....#.####.....##....#.####.#.##...##. +#.####.##..#..#....###.#.......####..##.##..##...#...#..##..##.#...#.#..#..#.##.##.#..########..#### +.###.#.#..#######...#.#.###.#.#.##.....#.#..##.#..##..#.#....##..##..##..##.#.#.#..#.#..#.#...#..#.. +###.#.#.#....#.#..#..###..#..#.####.#.#....#.#####..#.####.#.##.#######.##...###.#...#..#.####..###. +.#.....###.##.##..#..###...####....####...#..#...###..##...##.###.###..#.##.#.#.####.....##.#....... +.#..##.#.#...##.#..........##.####.#.###..##....#.....#.####........#.#.#.##.##.##.#...##..#..###... +#.#.###.###..#.##..#.##..##...#..#.......####...#.#..#...##.#.##...#..##.###.####.#......#.......### +..###..#..####.#.#...#..###..#.#.#...#####..#..#####..#.......#.#..#.###..#..#.##.######.###.#.#..#. +#.###.##.#..#...##.#.##.##..###.#.#.#..#.....#..##..#...#.#####.#.#.#.........#.#####.#..#####...#.# +#..#.#...#####.#.##.##.#..##..###.##.#...##..#.##.#..#.###.#.##.#.#..##.###.###..#.#..#..#...##.##.# +#...##.###..#.#...##.##...##..#..#.#.##.#.#..####..#####...##.##.####...#.###.#.##...##...#.##.##.## +#.##..###..###.#...#.....#...##...#..##.##.#..##...###.#.....#.##.......#####.#####....#.###.####### +..#...##.#..####...###..#.##...#.##.#.....##..##...#.#..#.#.#.##.......#...#.###..#....##.######.... +###.#..###..##.#........##.#.#.#..#....##.#...#....#.###..##.##.##.###..####.#####.....##...#..#.##. +.####.##.....##............##.#...##.###...#.##..########.#..###......##..##.##..##..#.###....#.##.. +##.##.##.#..#...########.####.####.#.#.###..#...#.#.###..##.#.#.####.#..#.#.....#..#..##.#..##.##... +##.##.#..#.....##.#####..#........####.#.#.##....#..#..#....###....#.......#.###.##.##...#..###..### +##...#..#...#.#...##.#..###..###....#.#.......#...##.....#...#..#.#..###.##.##..###..#.#########.##. +.#######...##.#..##.#####.....#....###.####.#.#.#..##.#.#..##...##.##.#.###.#.#....###.##.#.###.#..# +..##.##..##.##.#.#..#.#..#.##..####..###..#######..#..#.#.#...###...#.###.#...#.###.##....##..#.###. +#.......#...#.##...#.#...##....#.#....##.#.###.#.#...#...#######...###.#.#.##....###.#.##.#...##.##. +##.##.#..##....#.######..##...#.##.#...#.#.####..####.##...####.#.#.#.##.#....###..##.#######..#..#. +.....##....#.##.##.#.##....#.#.##.##......####.##..##.#....#..#.##.###.#..#....##.#..#.#.#.#.##...#. +.#.#..#...#..#..#.....#####...#####..##.#.##.#.#....##..##............#.##...######..#.###..#...#..# +#.#####.##.#.#.....#...#..#.#.#....#....#..##.#..#..#....####.#...#.##.####.#.##.#...#.#.#.#..#...## \ No newline at end of file diff --git a/inputs/21.txt b/inputs/21.txt new file mode 100644 index 0000000..fa3a8ea --- /dev/null +++ b/inputs/21.txt @@ -0,0 +1,2 @@ +Player 1 starting position: 2 +Player 2 starting position: 5 \ No newline at end of file diff --git a/inputs/22.txt b/inputs/22.txt new file mode 100644 index 0000000..b856ab6 --- /dev/null +++ b/inputs/22.txt @@ -0,0 +1,420 @@ +on x=-25..22,y=-37..17,z=-38..8 +on x=-1..45,y=-43..11,z=-22..28 +on x=-20..26,y=-29..24,z=-16..29 +on x=-49..4,y=-9..40,z=-3..47 +on x=-36..10,y=-30..18,z=-14..30 +on x=-45..2,y=-32..16,z=-33..18 +on x=-7..39,y=-7..47,z=-31..17 +on x=-13..35,y=-41..13,z=-8..39 +on x=-20..27,y=-11..42,z=-2..48 +on x=-16..32,y=-9..42,z=-18..30 +off x=-11..5,y=-35..-25,z=15..30 +on x=-27..17,y=-9..39,z=-45..2 +off x=-40..-25,y=21..35,z=-24..-10 +on x=-12..38,y=-30..19,z=-38..11 +off x=8..19,y=25..37,z=6..23 +on x=-17..34,y=-10..43,z=-45..4 +off x=-44..-31,y=-22..-5,z=-22..-13 +on x=-8..43,y=-6..41,z=-25..25 +off x=-17..0,y=28..47,z=19..34 +on x=-45..0,y=-44..6,z=-33..15 +on x=-7874..5506,y=-20379..-3039,z=59810..88971 +on x=-21433..-6261,y=-46900..-34324,z=50271..88746 +on x=38450..68609,y=-7656..11913,z=-72939..-50513 +on x=10810..32231,y=62915..80230,z=27306..45793 +on x=16240..33178,y=-69605..-65010,z=23182..41140 +on x=74585..88021,y=-33713..-11811,z=8878..14352 +on x=8952..26425,y=-5524..18862,z=-92382..-59599 +on x=-5011..17567,y=-62318..-50559,z=47882..72780 +on x=74303..97592,y=-15251..3184,z=-10887..11253 +on x=-71741..-56752,y=-14773..-2871,z=44590..48159 +on x=7145..26216,y=-73908..-47204,z=45148..72408 +on x=3353..11909,y=70884..90962,z=-42418..-30798 +on x=-86705..-60907,y=-13957..4192,z=-47576..-27852 +on x=45879..55901,y=-64766..-35760,z=-50770..-23619 +on x=43802..76492,y=43658..54364,z=-29093..-11590 +on x=10370..26860,y=45297..57854,z=38221..70721 +on x=-63998..-46603,y=-20267..-6000,z=-59847..-56863 +on x=-18630..18378,y=40771..60137,z=62275..69541 +on x=55671..80730,y=-27426..-12642,z=-60454..-41374 +on x=-34693..-14417,y=-79191..-69262,z=-26703..3282 +on x=-38261..-30043,y=-31904..-3317,z=60552..74101 +on x=-63295..-41017,y=-66142..-47664,z=17578..31398 +on x=-13577..1488,y=54526..61735,z=-65440..-38952 +on x=48354..70605,y=14703..31697,z=-65071..-40580 +on x=62691..92710,y=3173..42903,z=-27555..-15004 +on x=-34060..-14740,y=-80185..-57343,z=17703..26938 +on x=-88335..-73992,y=7675..23682,z=-29991..-17731 +on x=-64720..-47504,y=45814..72187,z=-26042..-1648 +on x=57030..64993,y=35410..49151,z=-13732..9894 +on x=-77291..-65322,y=-25591..-24178,z=26942..36225 +on x=-11274..13032,y=-60620..-45108,z=-82331..-52549 +on x=-88590..-60753,y=-7850..4911,z=23234..57969 +on x=26408..43629,y=49378..89017,z=5396..16841 +on x=69300..87125,y=-47624..-20717,z=-6957..27242 +on x=43326..53338,y=41342..68666,z=-29928..-8141 +on x=-69964..-57576,y=-44817..-7703,z=24558..49911 +on x=-5529..3405,y=-70486..-57793,z=38667..71794 +on x=72365..86627,y=-25567..-16003,z=-13583..-4327 +on x=9348..39319,y=-73553..-55808,z=-30116..-18951 +on x=20947..43924,y=68210..91134,z=-10996..26549 +on x=-80994..-60522,y=-17003..2655,z=-6840..18812 +on x=7928..33299,y=54071..62569,z=29146..61880 +on x=-73188..-48824,y=33993..63516,z=-25454..-8089 +on x=-82484..-65282,y=-9918..10639,z=20102..31437 +on x=53747..68021,y=-49346..-36316,z=-21310..-15842 +on x=-5298..6291,y=-56004..-49801,z=-59794..-43568 +on x=37703..55636,y=-48346..-37782,z=27178..43960 +on x=28973..48768,y=30630..54886,z=-48787..-38801 +on x=40085..42058,y=58803..86868,z=-7156..-3537 +on x=-5244..14514,y=-17017..4800,z=71648..82401 +on x=66637..87713,y=-28138..-11871,z=22841..29706 +on x=-73391..-56078,y=-42567..-24073,z=-34558..-8746 +on x=-46758..-10848,y=-37005..-29780,z=-83643..-48720 +on x=32265..48746,y=44256..70123,z=40711..65344 +on x=7095..34285,y=47014..76227,z=-58356..-43652 +on x=30778..34567,y=-75173..-60339,z=-50645..-26616 +on x=-95002..-66778,y=-6534..21540,z=9811..31414 +on x=-78525..-56832,y=-52209..-37537,z=-27987..-18272 +on x=34941..61589,y=-66061..-52884,z=16427..26746 +on x=26607..44757,y=56550..76152,z=9943..15669 +on x=65247..79688,y=-1198..18004,z=-38529..-28860 +on x=-39043..-33901,y=-41363..-15844,z=57226..73240 +on x=517..18030,y=72575..94894,z=-32607..-9450 +on x=-48138..-33957,y=-8725..23156,z=-74829..-64476 +on x=14674..40415,y=-10310..8599,z=55548..76889 +on x=5411..28795,y=39926..72819,z=43387..60574 +on x=-11735..1244,y=-81181..-73820,z=-28100..-4131 +on x=-94982..-74210,y=6396..18510,z=-2618..15316 +on x=-14012..-6314,y=-84572..-63156,z=31111..52228 +on x=-118..20059,y=34462..58751,z=-80546..-56745 +on x=-42424..-16763,y=-61392..-46124,z=40506..70305 +on x=-68200..-52902,y=-53715..-33370,z=500..10204 +on x=-78742..-74311,y=-749..26775,z=-17380..-1983 +on x=-45225..-18627,y=-10476..6301,z=71396..78161 +on x=-41962..-13258,y=5655..31861,z=48787..82853 +on x=-4287..23298,y=-39395..-12857,z=-89437..-61466 +on x=70684..81806,y=1617..22727,z=-9322..17632 +on x=60320..64982,y=-11794..2549,z=35758..64707 +on x=-50895..-17858,y=-34644..-9840,z=-85306..-64871 +on x=12118..28830,y=-73335..-43482,z=29166..45459 +on x=11184..43399,y=-84603..-53931,z=13762..37604 +on x=42155..53212,y=38257..63651,z=-39259..-31414 +on x=-80486..-58420,y=-37408..-30208,z=-27620..-6908 +on x=-12226..5972,y=-82320..-53208,z=30951..48037 +on x=-72814..-45894,y=-51715..-34510,z=-29165..-7498 +on x=4315..28593,y=-50405..-29388,z=-72958..-48216 +on x=7546..29936,y=-32734..-29248,z=-88518..-50920 +on x=26049..50278,y=-65601..-42011,z=-55923..-45671 +on x=-14665..5917,y=63952..90182,z=5320..26209 +on x=-64305..-32115,y=-67815..-54683,z=15642..41774 +on x=40402..72364,y=-48615..-32584,z=11970..43341 +on x=-36423..-21574,y=27425..31751,z=-86149..-56524 +on x=38326..62079,y=45689..52640,z=38903..56896 +on x=-18427..3353,y=6007..19691,z=-85062..-73139 +on x=-4191..20389,y=-47833..-14927,z=65632..75890 +on x=57372..78099,y=-2471..13074,z=50..19993 +on x=-30736..-13109,y=-67034..-52066,z=27271..58053 +on x=-71822..-41486,y=-69702..-55488,z=15902..29808 +on x=-31535..-20720,y=75586..92489,z=-26956..-1456 +on x=-80124..-61667,y=-47297..-19803,z=-2412..28939 +on x=-24308..1478,y=-79483..-76964,z=-34232..-15794 +on x=56194..75420,y=21437..47033,z=25529..49225 +on x=4079..40058,y=-24280..5057,z=65772..77187 +on x=-62180..-45533,y=-51608..-32908,z=30378..45483 +on x=-13480..28,y=-75291..-63119,z=16709..51335 +on x=58818..66910,y=-62369..-43633,z=8382..17832 +on x=-43387..-27774,y=28522..39561,z=45765..73429 +on x=-64923..-30680,y=-62106..-53157,z=28636..45166 +on x=54328..67007,y=-74271..-36618,z=-12995..3637 +on x=-77163..-45508,y=26641..51588,z=7513..28872 +on x=-87028..-61596,y=-23424..-6875,z=29267..57373 +on x=-32999..-2171,y=-51771..-28704,z=-80305..-51440 +on x=-1213..13360,y=62211..71724,z=-52865..-26389 +on x=-59595..-40976,y=608..38385,z=-67678..-39972 +on x=-51375..-40493,y=52834..78732,z=-32478..-20512 +on x=-59461..-51678,y=-57205..-51776,z=-18552..6908 +on x=-67103..-58469,y=2666..27721,z=-59857..-31316 +on x=-31553..-20945,y=-56604..-41792,z=46058..64858 +on x=-82863..-52103,y=1792..32261,z=13005..32987 +on x=-53436..-31839,y=31585..55069,z=50592..61674 +on x=41525..49552,y=-25674..-19103,z=52676..72349 +on x=65926..70611,y=-37803..-18555,z=20771..41361 +on x=64024..83956,y=-37756..-22888,z=21054..36415 +on x=41255..70996,y=-60030..-36048,z=12729..25474 +on x=40757..43045,y=34970..56717,z=-44253..-30030 +on x=-58784..-42274,y=-73761..-50142,z=11208..29144 +on x=-34430..-8005,y=57336..71214,z=18509..46142 +on x=224..27032,y=-40856..-23310,z=-73458..-63394 +on x=-94313..-58262,y=-36381..-23880,z=-12765..10563 +on x=-3922..21855,y=22784..35285,z=56549..82919 +on x=-25358..1966,y=-82528..-76828,z=-13146..-10953 +on x=34104..47312,y=44304..79133,z=-48368..-24337 +on x=39991..75751,y=-46352..-19595,z=44418..52968 +on x=-39306..-16416,y=-26164..-186,z=61105..74914 +on x=55569..75595,y=24301..43891,z=-47519..-35261 +on x=26093..41420,y=57621..71127,z=-51351..-25437 +on x=35996..57167,y=-64743..-46879,z=-1650..7206 +on x=-28855..-11320,y=76234..80807,z=2935..13504 +on x=-67054..-36441,y=-63873..-43786,z=-28254..8947 +on x=-14509..3328,y=-73695..-39712,z=-55836..-51258 +on x=68827..93867,y=3505..11168,z=18139..41193 +on x=-62902..-53742,y=-62316..-29660,z=20939..50463 +on x=-49675..-30208,y=45417..70955,z=-37743..-14049 +on x=46586..53764,y=-33379..-5171,z=-72062..-39028 +on x=-20911..-1427,y=49674..65860,z=-63296..-37531 +on x=-54985..-36111,y=37281..62377,z=30172..45519 +on x=-4397..18030,y=-84894..-61794,z=10830..21585 +on x=11750..38443,y=-82567..-66253,z=13438..29233 +on x=59514..67757,y=-51804..-35103,z=7019..24467 +on x=27432..50977,y=-42003..-30595,z=-63979..-42141 +on x=-15819..-5759,y=-61346..-42796,z=-54195..-34015 +on x=-76984..-52460,y=28797..64073,z=-7149..25332 +on x=-52158..-26040,y=11304..26896,z=-80266..-51382 +on x=-9558..1461,y=72523..94866,z=-43893..-23592 +on x=-66298..-44000,y=25979..47853,z=-53578..-42707 +on x=6988..18659,y=51164..69431,z=33837..57752 +on x=-38858..-13161,y=-56417..-38120,z=-69115..-48732 +on x=40312..77361,y=42382..59137,z=20671..36281 +on x=-37374..-16194,y=-6138..22213,z=57535..93920 +on x=4822..17630,y=-78489..-55730,z=31282..65954 +on x=-51269..-21808,y=51723..72289,z=31278..65239 +on x=67584..92800,y=-7980..-46,z=-37946..-5803 +on x=-11191..7756,y=50336..65372,z=60030..68673 +on x=-35391..-26531,y=6204..17520,z=61001..78026 +on x=-28728..1160,y=-84803..-59728,z=-54020..-32667 +on x=59337..65724,y=33773..45079,z=21264..50548 +on x=-64482..-40710,y=47616..59937,z=8139..31218 +on x=-16863..13681,y=-30676..-9757,z=-92073..-59935 +on x=-24997..-9374,y=17287..40966,z=-84648..-60166 +on x=-25337..-3767,y=-74787..-62296,z=-35829..-10718 +on x=63697..85710,y=953..32652,z=20768..32117 +on x=-44147..-19389,y=-60163..-35869,z=-83248..-50697 +on x=-57894..-53539,y=48553..53550,z=26409..38273 +on x=48679..55245,y=15109..50451,z=35152..65388 +on x=25604..62419,y=-20961..7848,z=-79350..-64190 +on x=-22084..-10836,y=12754..33323,z=-83535..-61512 +on x=21009..43671,y=-32733..-5575,z=65432..73204 +on x=-7178..29385,y=-48608..-17272,z=-80620..-69880 +on x=25772..50009,y=65383..86566,z=-32131..-5636 +on x=634..12760,y=52120..69063,z=48427..64000 +on x=-5534..7408,y=57575..74937,z=-38916..-22273 +on x=-32741..-17540,y=-40077..-31838,z=-76144..-56680 +on x=40310..65131,y=-47993..-25612,z=40235..71257 +on x=44408..77248,y=13423..34189,z=-53040..-34392 +on x=70803..96452,y=9302..24010,z=-11413..9911 +on x=15449..37539,y=48012..67955,z=46095..64173 +on x=7151..40444,y=-25065..6244,z=-91166..-75247 +on x=-90737..-75720,y=-5475..16668,z=4153..29576 +on x=-33261..-13080,y=55167..75616,z=24910..40299 +on x=-65599..-40401,y=-18178..-728,z=-78145..-51418 +on x=-58978..-34779,y=-59342..-42300,z=-191..21488 +on x=18497..38363,y=-21451..-14602,z=-92202..-55994 +on x=-73368..-42678,y=45965..58851,z=-35584..-25807 +on x=68712..81585,y=-27605..-8858,z=20493..44638 +on x=-49956..-15982,y=-34609..-16081,z=52125..71155 +on x=-72367..-47140,y=32980..52447,z=22136..36531 +on x=-41906..-21763,y=-60745..-33327,z=-74200..-40503 +on x=74281..82455,y=-24387..-3961,z=-20290..15753 +on x=-6850..14006,y=29406..50293,z=-79525..-70587 +on x=-19273..13527,y=32325..50356,z=-76866..-55145 +on x=-58958..-39262,y=-12206..10909,z=59320..69684 +off x=52775..62708,y=-22725..-18131,z=-64772..-51042 +off x=-7316..18889,y=-9236..18079,z=75734..84988 +off x=-68904..-56803,y=7963..21320,z=28299..44607 +off x=56738..81745,y=-33655..-19734,z=27734..54876 +off x=-26307..-4399,y=-90257..-66498,z=-8368..6190 +on x=-63424..-48935,y=51182..61255,z=-35303..-9366 +off x=-59497..-39391,y=-48595..-21538,z=-65637..-43222 +off x=10314..35649,y=5352..24478,z=66042..95448 +on x=66990..86515,y=-26082..-17705,z=-18769..-11276 +off x=37208..65114,y=-31814..-16425,z=50870..76166 +off x=-6163..11246,y=-77431..-59123,z=-61149..-39103 +off x=-65580..-57918,y=-42189..-20880,z=-49370..-41832 +off x=-68181..-47291,y=-43131..-24122,z=-52032..-39969 +on x=-28183..-20075,y=55733..67672,z=-45712..-26158 +off x=-20854..-3684,y=10595..33536,z=62130..75618 +on x=-1550..8093,y=64709..84232,z=-13210..4539 +on x=-14584..8934,y=-89926..-70898,z=10403..26190 +off x=-23968..-2269,y=55599..70257,z=46101..49355 +on x=63447..78212,y=-1665..5767,z=-49492..-33869 +on x=-76609..-63970,y=11730..33874,z=-31397..-933 +off x=-81830..-56014,y=-53112..-33489,z=1528..28062 +off x=-8280..-4015,y=47133..68418,z=-64354..-42733 +off x=48414..73285,y=-28088..-1338,z=48697..64341 +off x=38375..56868,y=-75954..-47951,z=-13590..9529 +on x=43124..69757,y=45938..57740,z=-28736..-4974 +on x=-9344..-3482,y=55482..85763,z=-39420..-38492 +on x=-43081..-29483,y=9548..30431,z=61108..88470 +on x=-37982..-17628,y=48715..75366,z=36941..48193 +off x=-8331..2546,y=-78987..-61305,z=-30626..-2011 +off x=-81700..-62256,y=-10742..6586,z=722..26440 +off x=-24912..-11729,y=-25032..-3413,z=-88232..-75563 +on x=58167..74001,y=15467..21830,z=-37657..-16140 +on x=9988..37527,y=-48291..-30477,z=54921..80713 +on x=62474..73375,y=-17054..1407,z=35366..53946 +off x=-83614..-64521,y=29149..33522,z=-38377..-14053 +off x=-53987..-32165,y=11117..19957,z=-75785..-68730 +on x=42103..70775,y=-73724..-54732,z=-5872..7872 +on x=20494..44429,y=11307..21039,z=-76857..-61050 +on x=-20646..11084,y=62264..88883,z=26886..41113 +off x=-88900..-69393,y=1605..20025,z=-36353..-23657 +off x=-5057..19004,y=63779..92275,z=-19254..13570 +on x=-57000..-34567,y=-71407..-61402,z=-25281..-23453 +on x=-3652..25227,y=-26409..-7375,z=-78623..-67258 +off x=53792..79784,y=-46089..-39765,z=8293..18162 +off x=-76199..-59669,y=-45245..-28456,z=-13993..15531 +off x=12995..45491,y=56914..91086,z=-30682..-5699 +off x=15637..32089,y=-59007..-37524,z=-75718..-52527 +off x=-73386..-49956,y=-39740..-16542,z=-69266..-46619 +off x=-19602..6141,y=-6868..8551,z=67012..92514 +on x=21642..48389,y=-64658..-42774,z=34948..63725 +on x=-20429..-2111,y=9416..26675,z=71825..81116 +off x=-2501..21349,y=49578..64417,z=51184..71703 +off x=46241..68960,y=-27030..3257,z=-60862..-44951 +on x=-27054..-11006,y=59976..79200,z=5931..18842 +on x=-24276..-2701,y=-66183..-52326,z=-49472..-34192 +off x=-68877..-53836,y=-28126..-15302,z=-46581..-34719 +off x=-73359..-34792,y=13665..36009,z=-56369..-46033 +on x=32103..49141,y=-79415..-57451,z=-40343..-18996 +on x=73069..82323,y=-9569..9367,z=-14857..7647 +off x=-56161..-38162,y=29352..48859,z=43169..72145 +on x=-66774..-55959,y=-65235..-30961,z=13584..33678 +off x=27548..45916,y=-26792..283,z=-75012..-66571 +on x=-80711..-66751,y=-29628..-15357,z=-41564..-15914 +off x=71552..81414,y=-7863..9193,z=-14213..10187 +on x=36611..56676,y=45719..53058,z=-57614..-36899 +off x=62768..88220,y=-49020..-30531,z=138..22494 +on x=15720..31386,y=-31469..-20942,z=-79951..-69439 +off x=20888..41231,y=-64104..-39191,z=-58681..-44918 +on x=64912..75468,y=22232..45193,z=-29893..2078 +on x=361..31325,y=63314..77907,z=-54330..-28730 +on x=-19404..15732,y=73142..90411,z=25581..35682 +on x=61748..71694,y=19771..38115,z=13843..22810 +on x=-6187..8381,y=-42494..-25695,z=-86533..-60639 +on x=63798..82990,y=-40381..-13733,z=4229..28270 +on x=-81663..-57842,y=-666..22557,z=-68350..-41120 +off x=-47003..-20315,y=-62845..-55753,z=-52267..-35229 +on x=-94464..-67322,y=-40490..-19348,z=-5254..10478 +off x=43705..67726,y=-24299..-700,z=-75234..-57148 +off x=-41646..-12552,y=-68007..-46831,z=-43270..-39325 +on x=8135..18536,y=43749..52328,z=52189..74451 +off x=12530..45202,y=42121..58623,z=-64757..-34726 +on x=-38525..-6498,y=-85547..-69786,z=-3153..19751 +off x=28152..47986,y=57588..66161,z=25607..39999 +on x=-81199..-63920,y=-10524..3660,z=-1797..9134 +on x=-25334..-13304,y=58421..89837,z=-32681..-21215 +on x=-73427..-47035,y=26359..48721,z=-8616..13879 +on x=-35010..-13996,y=11972..23992,z=-91842..-56559 +off x=61555..72930,y=15378..28117,z=-45130..-33545 +on x=-76375..-71158,y=25706..30056,z=-5494..385 +off x=-32602..-6222,y=-79216..-72287,z=-9505..12380 +off x=-88346..-67085,y=-14944..7502,z=-27154..-10379 +off x=-31807..-5298,y=65364..79818,z=29230..47308 +on x=-57443..-23960,y=59901..70861,z=12729..28027 +off x=13199..37843,y=67820..79799,z=-5787..6066 +on x=-54982..-33556,y=56857..84194,z=-5511..17250 +on x=22920..41679,y=4390..24163,z=58350..76766 +on x=-59743..-28439,y=-84006..-54986,z=-7949..14308 +on x=61639..80928,y=16361..30223,z=2020..26391 +off x=-10984..10732,y=-89468..-59751,z=9884..41102 +off x=-79212..-64694,y=14128..32527,z=28460..47157 +off x=64235..86210,y=-42383..-17290,z=-28514..-12861 +off x=-1388..7043,y=61942..90427,z=-20381..-12457 +off x=63544..80468,y=-37417..-9915,z=36144..49273 +off x=-35734..-19033,y=53057..72367,z=-60953..-41489 +on x=35159..48100,y=-76380..-55607,z=-2127..3715 +on x=-75962..-58571,y=-54185..-42931,z=-7049..26522 +off x=40155..77172,y=-42052..-32487,z=37159..57286 +off x=28393..39783,y=-358..22551,z=-75711..-64727 +off x=-49182..-19539,y=-19313..11789,z=51776..88876 +off x=6323..22117,y=-66212..-50296,z=34106..55484 +off x=26923..57572,y=-84808..-57461,z=8216..22262 +off x=-55268..-27345,y=-34331..-26689,z=-66095..-50926 +off x=-16773..7149,y=40517..69874,z=57767..64060 +on x=-7644..5711,y=57323..80843,z=-46902..-23267 +on x=12990..46040,y=-85031..-65525,z=-14638..2525 +on x=36838..61816,y=43624..45798,z=-56805..-30128 +off x=-16625..-13438,y=15198..26225,z=56760..89970 +off x=-47586..-8125,y=38595..61503,z=-79954..-54733 +on x=68425..94332,y=-23770..-10888,z=-15853..-1516 +off x=45879..72720,y=10249..22803,z=31170..65673 +off x=-66838..-47717,y=22029..54053,z=17894..34996 +on x=-27131..-15091,y=-72018..-41671,z=-69529..-45135 +off x=49858..81214,y=-40371..-32977,z=12446..29253 +on x=-49045..-40498,y=35803..50496,z=-54698..-45453 +on x=37056..66261,y=-37677..-19546,z=49803..65703 +off x=-28190..-3348,y=-73123..-58301,z=30508..41418 +off x=-78271..-57241,y=-18397..11460,z=-41270..-21406 +off x=48500..57434,y=-15736..22263,z=55834..67267 +on x=-94862..-73351,y=-7423..9149,z=-27569..1987 +on x=43486..56652,y=39047..56815,z=17045..40948 +off x=-2337..16612,y=42633..69610,z=45684..73188 +on x=21127..49270,y=-30808..-25029,z=-81791..-62703 +on x=-30891..-21855,y=-28949..184,z=69030..89093 +on x=44543..50914,y=20954..34529,z=-70573..-46226 +on x=5780..19766,y=50550..70469,z=-48331..-34703 +off x=56501..93443,y=-4621..18563,z=11287..38665 +on x=42327..58505,y=-70210..-42337,z=-35047..-1223 +off x=18423..36939,y=-8454..6658,z=-91865..-58242 +off x=58609..79717,y=34512..43834,z=19543..51200 +on x=30744..40798,y=43451..74091,z=21225..50983 +off x=-16052..-514,y=-28879..585,z=67792..93741 +off x=-5109..4752,y=56092..80738,z=-56908..-27027 +on x=-91998..-65044,y=-497..38054,z=-22159..-5072 +off x=67089..80512,y=11116..39389,z=24842..41259 +off x=17874..33524,y=47720..80311,z=-53378..-23314 +on x=11894..29924,y=-80907..-60120,z=22583..34522 +off x=26908..30896,y=-78232..-56487,z=3888..26400 +on x=43517..74781,y=32409..38655,z=38475..57762 +on x=-33512..-10912,y=39239..68119,z=50194..76546 +on x=-31556..-23733,y=55040..76570,z=34651..56813 +on x=59734..87601,y=-46068..-27321,z=13508..43534 +off x=-28179..-2124,y=25183..50241,z=58671..87869 +on x=-69791..-45293,y=-74163..-44289,z=-17713..4452 +on x=-17404..695,y=45309..60367,z=-58557..-48788 +on x=-21736..-18077,y=68659..70975,z=21432..48567 +on x=23875..54273,y=-75359..-45864,z=-54931..-27989 +on x=-35409..-24375,y=-82394..-43946,z=31058..42523 +on x=-8343..13717,y=31327..58902,z=55577..83325 +off x=-48926..-32870,y=42263..59054,z=41809..53373 +off x=48808..87204,y=-57303..-27371,z=-32342..-7317 +on x=-67008..-39098,y=-51403..-26899,z=-54475..-39811 +on x=6581..35901,y=-85829..-56275,z=-41133..-19639 +off x=-88954..-64372,y=20411..33836,z=3213..34345 +on x=-7765..15787,y=59696..72865,z=46260..65892 +on x=-41030..-16419,y=72963..77043,z=793..25599 +on x=-34743..-14557,y=-71490..-52461,z=16977..35464 +on x=52820..76139,y=-16895..8754,z=-67504..-46523 +on x=26561..43699,y=35122..47583,z=-69853..-60751 +off x=53935..80807,y=-50668..-40940,z=-9088..11134 +on x=-9256..18245,y=-82833..-74237,z=-8555..9806 +off x=-54561..-36968,y=-16270..15979,z=49514..84021 +off x=-71537..-60947,y=-34759..-10335,z=16287..34069 +on x=62156..92714,y=71..22995,z=-2786..24138 +off x=-93224..-70481,y=-17263..-11214,z=-8572..14568 +off x=27687..38549,y=66418..78828,z=-26765..-1993 +off x=6373..44479,y=-20716..411,z=56296..85091 +off x=-10240..9238,y=76954..86558,z=-20574..-9567 +on x=59824..81660,y=42481..53777,z=12226..39439 +on x=10464..38714,y=-66090..-35600,z=-63269..-48994 +off x=10086..26680,y=-67885..-33884,z=-73115..-35932 +on x=46274..62715,y=-21783..14328,z=-66177..-46199 +on x=-45939..-26665,y=606..21920,z=47479..84070 +off x=67911..87660,y=-19150..18476,z=-7232..16762 +off x=-62714..-52605,y=-63367..-33979,z=-48407..-23827 +on x=55656..77456,y=-1928..20756,z=-59425..-29123 +on x=22311..52656,y=56599..78053,z=-8060..16138 +on x=-90012..-72349,y=-25411..-2567,z=-18968..1095 +off x=-75165..-59317,y=-35674..-8599,z=-42017..-25631 +on x=74039..92478,y=-4796..7717,z=-23856..-14498 +on x=37389..46931,y=50038..78098,z=-9817..5995 +off x=29297..54007,y=54429..66539,z=3163..26930 +on x=16320..36328,y=54585..75579,z=-30097..-3297 +on x=6120..22699,y=63678..70653,z=38784..45811 +on x=23070..32721,y=-41792..-30954,z=-66040..-45827 +off x=20355..29767,y=66334..89377,z=-28998..4344 +off x=5478..21486,y=-25991..5188,z=62514..90823 +off x=59573..72444,y=39402..64676,z=-17460..-4643 +on x=13708..27225,y=-57113..-21835,z=57734..67702 +on x=-67885..-35556,y=28851..63688,z=-56125..-21746 \ No newline at end of file diff --git a/inputs/23.txt b/inputs/23.txt new file mode 100644 index 0000000..3b25139 --- /dev/null +++ b/inputs/23.txt @@ -0,0 +1,5 @@ +############# +#...........# +###A#D#B#C### + #B#C#D#A# + ######### \ No newline at end of file diff --git a/inputs/24.txt b/inputs/24.txt new file mode 100644 index 0000000..78fe59a --- /dev/null +++ b/inputs/24.txt @@ -0,0 +1,255 @@ +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 11 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 6 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 13 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 14 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 15 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 14 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -8 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 10 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 13 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 9 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 15 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 12 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -11 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 8 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -4 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 13 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -15 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 12 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 6 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 1 +add x 14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 9 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -1 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 15 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -8 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 4 +mul y x +add z y +inp w +mul x 0 +add x z +mod x 26 +div z 26 +add x -14 +eql x w +eql x 0 +mul y 0 +add y 25 +mul y x +add y 1 +mul z y +mul y 0 +add y w +add y 10 +mul y x +add z y + + 101011000001011100001001101 +10001011110100101011011101110101 \ No newline at end of file diff --git a/inputs/25.txt b/inputs/25.txt new file mode 100644 index 0000000..08bc1ca --- /dev/null +++ b/inputs/25.txt @@ -0,0 +1,137 @@ +v>.v.>.v..>...v..v>>>.v..>.>>vvv.v>..v.v...>v...v.v>>.>.v.>.>.vv.>v..>vv>.v>>>>.>...>.>>v..v>>vvv.v......v..>v..>>>.vv.vv..>.v.v>v>>.>v.v>v +>...>v.>.>..v>v.v>v..vvv..>>>vv>>..vv.v>>.vvv>v..vv.>>.>>.>>.....>.vv..v>vv.v>.>>.....vv.v>.v.>v.....>.>.v>.v..>>.>......v>.v.v>.v>v.vvv..v +vvv..vvvv>>>..v>>>>..>.v.>>v.v>>>..>>...>vv.>.vv..>....>>v.>..vvv>v.v.>...>>.>>...vvv..>>vv.v>>.>..>>v..>v>>>v.>>...v.v>...vvv..>..v.>..>.. +v...vvv..>.........vv..>>>>>>..>v.v.v...v..>..>.v...>.vv.>v...vvv.>.vvv....v.v....v>v>>vvv....>.vv.v..vvvvv..v......v.>vv>v>...vv.v..>>..>v +.vvv.v..>.>.v>v....>v.v.>>.vv..v.>.>.v.....v>..v...v...>>>.>....v.........vv.vv..>v>..>v.>>..vv.........>.>.vvvv...>...>v>..>vv.v...v.v...v +>>..v.v>>..>v.v...>.v..v.v..>v.>.>.>>.v.>v>>..>.>v.>v.v>.>vv>v.v>>>.>vvv>v>.>v..>..v..>.vv.v.v..>>.>>..v.v>.v.>.v....>vv.>v....vvv.>.v.v>>. +>>>>>v>>.v.vv>..v.>.v.>vvv.>v>..v.....vv..v>........v..>v>v.vv..>>>v.>>v..>v.>vv.v..>>>v..v>v>...>>..v>>..v>.vv>.vvvv.....v>.vv....>v.v..v. +v>.v.v...v.>vv.....vv.>.>..>..v.>v..>...>>.v.>...>.v.v>v.v.....>.>>v>>v.>v>.>..vv>..>.v.>v.......vv.>.>v..>>.>>.v..vvv>v..>v.v..v..v.>v.v>v +.....vv>>>..>..>..v.v..v>.>.>..>>....vv.v.v..>.vv>>vv.v...>.>.>>v>.>.>v.v..>.>.>.v.>.>>v.>.>.>vv..>...>v>.v>.>>....v.>.vvv>v>..>>>......... +vvvvv.......v.....>v.>.....>v>.>>...vv>....v.....v>.v..v>..>....>v.....v.v.>.>v>>.>.v.v...>.>>>..>v....>>vv...>.>v.v>v>.>.v..vvv>......vvvv +...>>v>...v...>.>.v.>..>.v.v.v.v...v.>.v>.v>....v>.v>>>..>>...>>...v..vv.......v>..>>v.v>.>.v.vv..>.>v>>.>vv...vv.>v.>v.vvv.>vv..>v>>....v. +v.....>....v>v>v.v.v..vv..v>.>....v>.vv..>..v.v>v>...>vv.>>.v.v>>v..v>.v...>.v..>>..>v>>vvvvv.v.>vvv.>>....v>>>v...v.......v...vvv...vv>..> +.....>.v.vv>v.>.v>...>.>v...>v.>.....>.v........>..v>v..v>>vv..>.....>>..>vv...v>v...v>..vv...>>..>>>..>.v>v>v>>.vv..v..>>vv.v>vv.v>>..v>>v +..v....vvv.>>.vv.....v...vv>.>>vv>.vv..>>>>.v...>.v..>v.>>>>....>>v.vv>v......>v.v>..v>..v.vv....>>v..v..>.>>...v.>..>vv.v....>v....vv..>.> +>..>v>..>>>.vv..>>>...>.>v>>vv.>v.v...>.>.v>..>....v..>>v>vv..v..v...>..v.vv>v.vvv>>vvv.......v.>>..>>.>>>>v>>>>v....v.>v..>..v.>.v>..v...v +v.v...>..v..v.vv.>>v.>.v.>>.v..>...vv..v>.>.>>v.v>>>>v.>vv..>.v..>>...>vv..v.v.>........v>.>.>>vvv..>vv>vv>..v.v>.v>...v.v.....v>>.>.>v>>.. +.>vv.v>......>.vv..vv....v.>v>v.>v>.v...>.>v..v..>v.v..>...>>.v>.vv..>.......>v..>.v.>vv...>v...v>..vv.>.>>.v.....vv>v.>v.>..>.>.>vv>.>vv.v +.>v.v.>..v>.>>.v>>.>v.vv..v......vvv>>v..>..v..vv>..>vvvv..v>...>.v..v..>.vvv..>.v.>.>>.>vv.v.vvv....>.vv.....vv.>>>..vv....>vvv.>..v..>vv. +...>>.v>>v>.>vv..>....v...>>...v>..v..v..vvv..v.>>>v.>..>>v>>>.>>...v.>..v>..>.v.v>>vv..v.vvv>>........>..vv..vv.>v.v..v.>>..>>..>v>...v..> +>.>.v..vvv...>.>>>>.>v.vv>>.v.>vv.>>..>...v..>...>...>>.>v..>v.>.v>.v.....v>..v..>.>.>>v>...v.v>..v.v.vv.>>v..v.>>.v..v>v...>>v.>v.>..>.... +>.v.vv.v.vv...>..>v>>..v>.v.>.>v.>..>>.>vv>...>>.v..>v>..>v...vv....>..>v>v>.v>..>>..v.>>>.v.>>>>.v..>v....vv>....>>..vv..>vvv>v.>>>.>...>v +.vv...v.>.vv.>..>>..>>>v.v>......v.......v.v>>..v>.>......v.v..>vvvv>>..>..>..>..vv.>vv.....v...vv>v.>v.>...v>v...v.vv>..vv>>>vv>..v.v>.>.v +.>..>.>...>.>.v....>>..v>.>>.>....v>>>v.>v>.>>v.v.v..v...>.>....>vv.v...v....>..>vv....v...>.>......v>.>>v.v>v.>>v...v..>v.>..>..v.>.vv...> +>>.>>>v....v..v..>...v..>................>.v..v>v.vv.>vvv.>..v..>v>>v.v......>v....>>>...>v>.....v>>......vv.....v..>v.v.v>>...v.v....v...v +..>..vv>>.v>v..>.v..v..v....v>.v.v>.>>.>>..>v>..>.v..>....>..>v.>>v.vv..>...>.v>..>>.vv>vvv>...vvv>.....>.v>v>..>>vv>.....>vv...vvv.>.v>>.> +v.v.v....>>v.>>v>vvvv...v>>v.>..>.....>v>.>..>>>v.vv..>..>...>..>>>.vv.....>...>vvv>>.>>....v.>v>v>...>..vv>.>v.>.>..v>..>.v..>..>..>vv.... +>.vv..v>...vv>vv.....v..v>....>vv.v>>.>..v>.>>>>vv>>vv.....>....v..>>v>.v......>..>v.v>.v.vv>...>v.......>.>.v.vv>>..v..vvv..v>...v>>....v. +.>>.>.v.v.v.>>..vvv.v.>>v..vv....v.v.v.>..>v.>>....>......>>..>.v.v>..v..v..>.>>.>..v>.>v....v.>v>v.v.>.>>vv.v>v>v.....>>v>.v>...>...v.>.v. +v>..v>...>..>....v.v.>>......>...>>.v>v..>...>.v....>.>..>.vvv.>.v..>>.>>.>>...vvv.v.>.>...>.>...v.v.>>>v.>.>.v...>>v>>>..v>.>.>>....>>>.vv +v..>.v..>v>.>.>>.v.>..>...v.>.v>vv..>>.vv...>>>>>..>.v.>.>>...>..v.>vv..>v..v>..>vv>..>>>..v>.>v...>v..v>>v>>.v..>>..v...>..>>.vv..vv>..vv. +...vv..>v.>v..>..v.>.>>>.>>..>.v..>.>...>.>.vvv>>.>vv>v..>>.>>.v>>.>>v>.>.>>>v..>..>>>....v.v.vvv>.>>.....>...>....vv.>vvv.v..>.>>.>....... +.>>..vvvv..vv>>>vv>.v.>vv...>>.v..v......>v.vv>>v>>v....v>>.v>>v.v.vvv>vv.v>.>.v..>.>>v>>>.v.>v....>.v.>v.vv....>>..>>v.v.v>v.v.v.v.>...>>. +>>..>>v.v.>>vv>>>.>>...>v>v.v..v>>>v.>vv.>.vv..v>..>vvvv>>.>..v.v>>.vvv.>>..v>>>..v>>...>>>.>v>.>>>...>v.v.vv.>.vv.vv>.vv.>..vv>v.>vv>.v... +v>>..>.v>..v.v..>.vv.>v..v...>v>v...vvvv.v>.v..v..v>..v>>.>.v.vv.....vv..v>.....>>.>.v.vv>.v...v.v.v.v>>...vvv>v..vv>>.....>.>..>..>v.v>>.. +.>>.....v>>..v>v...v.>.v.>.v>>>>>>>v..>.>..vv.......>>.v>vv..>v.v>.>v>>v>.v..>..>...>vvvv...>.v.vv>..vv........>....v.v..vvv...v...v..vv..> +..v...vv>v.>v>..>>v...v>v>v...v>v>>>v....v..>v.v..v....v..>..>>..>..>.>.vv.>>>v..vv.vv..>.v..v.>>.v...v>....>..v.>...vvvvvvv.>>>v.vv.....>> +..>.v>..v.v.vvv.v.v>.v..>.vv>.>.>v>.vv.>v>....vvv.vv.v....v..>....>>vv..>..v.v...v...v>v..>..>.>....>>>>>>>>.>.vv.v.v>vv>.v>...>.>.>>.....> +.>....>...vv>>v.v.v>>..vv.......v>>..v..vv>.>>v>v....v>.v.>..v..>..>>v.v...>>>....>>v.vv.>..>>...>>>...v.>v..v..v...>....>>>>vvv......v.... +..>.v.>..>>v.vvvv.>>.>.>>.>>v>.v.vv>v.>v.vv.v..v.>.>>.>v>..v...>.>...v>vv.>.>>>.v.>>v>...>v..vv>.v.vv..v.>>v>..v>..v.>>>v.>.v....>v..v>.... +v..>.>>>vv.>>vv..>v>..>...>v..vv..v>>..>v>..v.>.........>.v.>..v..v>>..v>>>.>..v....v.>>v......>>..v.>.>>.>v>>>.>>vvvv>.>v.>.>.v>.>..>>v.>> +..v..>.v..>>>..v>v.>..>>vv>..vv..vv.>v>..v.v.vv.>>....>..vv.>..>.>.>...>vvv>..v....>.v.>vv>.>.v.v>..>>..v.>.v>...v>vv>>.>>.>.>....>...v>.>. +vv.>..v.v...v.vv>v.....v>.>v...v..vv>...>>>....>>>.....>..v.>.v>>.>....>v>....vv>.>.vv>..>.....v.v..>.....vv.v.>v.v.vvv.>v>...>v.....>v..vv +v.v>>.>.>...>>>...v>v.v.vv>.v...vv.>.>.....>..>>.>.>vv..v>>.>v.....>..v......>v>.v.>.v>v..>v.v..>..v.>>..v.>v.>vv>....v.>....v..>..vv.....> +v>v.>.......>.>>>...>.>......vvv...>..>..v>>>vv.>..>>v>.>>.>v>v>vvvv.v>.>.>v>.>vv.....>........>.v.>..>>.>.v...vvv.>>.>v.>....>.v.>.......> +>>...>vv>>>v.>>...v>.v>...>v....>>>>..>....>>..>>>>.v>.>...vvv>.....>>...v..v..>>>v.>vv>.v.>>v>vvvv.>.>vv..>.>vv.>v.>..>..v>vv.>.vv.....v.. +v..>....>..>..>>v...>.>...v>v..v..v.>>....>>vvv..>.v..v>...>..>....v>v......>.v>v.vv..>.v...>v>>.v.>.>.v.vv>>v>>......v>.v.>...........v>.. +v>.vv.>....>>..>.>>.vv..>....v>vvv>...>.>..>>.v>....>.v..>...v>>.v..>v.v.v.v>>.vvv.v.>v>>.>..v>v..>v......v...>.>>>>>v>v>.>..>v.>v>v>vv>... +..v.v.>v.>..>>..vv....vv.>.>..>...>v>>v.>.v>.v.>.>..>>......vv.>......v>..>v>.>.v.>>.....>v...>>>vv>.v>..vv.>.v.>.v..>..>.....vv.v>vvv>.... +>.v.v..>>>>v>...v....>.>v>..>........>..v>>>.vv....>v>vv>>>>..v...v.v.>>v>v..v...vv.v.>v.v.>..>>...>.vvv..>....>...>v>v>.v.v.vv.v>v.v.v...v +..vv>.>.>...>v..v.>>>>.>.......>>v..>.......>>.v..v>.v...>.....v>v.v...>vv.>.v.>..vv>..v.vv..>>.....v.v....>..>>.v.>>>>.vvv.v>>>.>v.>>..>>. +>.>v.v>>.vv>v..v...>>..v.>v..v....>..v.>>v...v>.v>.....>......>.vvvv.v>>..>>...>...>>v>vv..v>v>.v>.....vv.....v...v>.>..v.>vvv>>vv>..v>.>.. +v..>.vv.v..>>.>.v..>v.v.>v>>..>.>vvv..>.vv.vvvv>>v>>vv>.>>.>v.>.v.>>......>v>.>v.>v.>..>..>.v>.......>v.v..>.>v>...v..>...v.>...v>>v>.v>.vv +>.>>.v>.>v>.v..>>.vvv...>.>v>vv...v.v>vv>vv.>....v...>..v..>>.v..v......>vv>.>v>..v.>.>...>.>.vv...>>....>...v.v....vv..v..>>>>>.>.>..>v>.. +.>.vvv>.>.>>v>v..>.v.>.v.....v..>..>v.......v.v>.>..>vv.v...>.>>.>.v>>.....v.>>vvv.v>.v.>>>.>.>>.>>.>>vv......vv.>vv..v.>>.v>...>.>.v>>v.vv +.>........>vv.v>v.v.>.v.>v.v>....v..v.>.....>v...v.vvv..>...>v>..>.vv.vvv...v.v.v>vvv.vvv>vvv..v.vv..>..v.v>...v....vv>.....v>..>>.v>...... +v>v.v.v.>.>v>>v>..vv..>.vv......v..v...v..>.>>.v.>...>.......v...>..v.>.vv>.>>..>...vv.>v....>.vvv...>>.v...vvvv>.>..>>...>>>...v.>......vv +>.v.>..>v>vv..vv..>>..vvv.>...v..v.>.>vv.v.v.>.v.vvv.>.>>..v....>..v>v>..vv...v>>v..v>v.>>v>v..>.>.>.vvv.>....>v.v..>v...v..>.vv....vv>>.v> +v.>>...v>.v..v.>..>v.>..>.>...v..v.>>>...vv>>>>>.v.>.v>..v..>.vvv.v...>.>>v..>v...v.v.....>.vv>>.>..v.v..>.>.v>>v>>.>vv.>>...vv>>..v>>v>>v> +>v.>...v..>........v..>vvv..vv...>..v.vvv.v.>..>>v.>.v.v.>..>..>.vvv.v>v....>>>>.v>.v>vv..v..v.v.v.>>>>.........v..v.>v.vv>vv.v.vv....v>.vv +........>.>..v....v.>.v...vvv.v.v.>v..>>...v......>...v>......>v.>.>v..v.>>vv>.vv.>>.v>...>>.>>v.>..v>...v....>vv>.vv>..vvv.v>>.vv..v.v.v>> +>>.>..>vv.v.v>>v..>>....>..>.>...v.v.>..v>.....>...>.v.v>....>vv...v....>..v.>v....>.v.v.....vv>>vv>..v>.v.>..>>>>.v>.v....>>..>.v....v...v +....vvvvv.>.>>....v..>..v>....>...v.v>.>v..>.v.v...vv...v.>>.....vv.v>>.>>>>..vv>.v.>.>..>v..>.>...vv.vv.v..>..v.>v.>>v>..v.>.>.vv>..v..v.. +..v...v..vv....vvvvvvv.v>.v>.v>>..v...v..v>vv.vv.v...>>v.>>v.v...v.>>v.>.v>.v>.v..>vv....v>.>.>...v>>..v.>>..v.v>>..>>>.vv.>vvv.>.v>...>>>. +.>v>v.>..>v>....>v>.v...vv...vvvv>v..v>.v..>.vvvv.>>.v>.v>.v.>>.v>.>>>>v..v....>>..>.>>>.>.vv.>..>.>.vv>.vv..vv..v.>>v>v..>>v>>>.v..v..v.v> +vv...>vv>....>>...v..v.v.vv...>.>v.>...v.vv.....v.>v.v.vv.v.>>>..v..>v>>>vvv....v.v.v.v.>vv.>...>........v.>..>vv.>.v.v>v>.vv>vv.>>vvv>v... +v.>.>.>>.>.v..>>>v.>v>.v..>v...v.>.>.v.v.>>>vv>...>.>.v..>..vv>vvv..>..v.>>.v...v.>>...>v>.v.>..>.v...v...>.>>v.>>....v.v.>>>>...v..v..>..> +vvv.>v..>v..v>.>>vv..v..v.>..>.>v>v.v.>..>.vvv..>>.>v..v.vv.>v.vv.>vv......v...v.>.>>>>v>...>.v.v.>>.>v..>..>...v.v.v.>.>v..v.>...vv...>.v> +>v.........v....>>>.>...>.>vv>..>.v.>>vv>...v.>v.>...>..v.>v.>.>v>.....>>>.>...>.v>....>v>>v>>.v.vv.v.>v..v.>>>v>v.v>..>>v>.>v>vv.v.vv....v +v.>.>v..v.vv..>>...>..v...v>..vv.>.>>>>..v>>vv>....>..>v>v>>..v.>.>>.v.>v.v...v>.>.>>vvv>>.>.>>v....>v...>v>...>>..>.v.v...v>>v.vv..v...v.> +.v.vv>v.>...>v>.v.>.>..>.v......vvv.....>.vv>>>..v...v.v.>....vv.v.v.vvvv.vv..>>..>..>....>.vv>>.>.>>.vvv.vvv.>..>>>..v.v....v..........vv> +..v.v.>..>...>...v....v.>>>...>>...v.v>.vvvv.>v.>..v>.>>...vv.>....vv...>>.>..>vv>v>.>.>..v>.vv.>>v.>>vv>..>..v>v>...v>.>>v.v..>>vv.>....>> +>.v>.....vvv..>>>>v.v...>.v.>....>.>v>>.>>..>.>vv>.....v>v.v...v.v>.>..v>...>vv>..v>>..>..>>>.v.>>>....v>v..>vv..v.v..>v>v>.>.v...>v.v..v.. +....>v>>>v>>..v.>v>..v>.........v>>>>..>.>.>.>.v.>.>v..v..>..v.>......>v.v.v>v.vv....v...>........v>...v.>>...>.>v.>.vv...>.v.>>v...>.>.>vv +>...v.vv>.>..v.>>..v.>v.v>....>....>.>>.vvv..>.>..v>.>.>...vv>....v.vvv.>...v..>.v..>....>..v.>v.>.>....v.vvv>.v>v......v..>vvv..vv.vv>vv.. +.....>vv>v....vvv..v>v>.v..v..>...>..v>>>......v..v.>vvv.>v.vv>.v....>.>v>..>v..>v......vv.>.>>>.vvvv...>...>>v....>..>>.>.v>v>.>.v..>.v.>v +...........v>>.>vv..v......>vvv>.v.>.>..>.v..v.v....>v>.>.>>..v..>vvv..v.vv..>v.vv.>v.v..vvv>.>..vv.vv.v>v.>>.v..>....>v..>v.....>.>.>vv.>> +v.>.v.v.v...vv...v....v....v.>v>v.>...>v.vv>v..>v..>>...vv>...vv.v.....v>.....>...>>...v.v>.>v>v........>...v.v..vvv...>.v....>vvv.>....>.. +v..v.vv>.vv.v...>>...>..>vv>v>>..>v.>...v.>v..>.v....vvv...vv..>vv.v...vv>v.>>..>.>>>>v>>v>.>vv>v>.>.>...>v>.vv.>..v>.vv.v....>.....v.v.... +..v......v>vv...v>.vv...vvv>>.v>>>>>v...vv...>v.>>.>..vv>vv.v....v>vv...>...vv....>>.vv......v>..>.v.>..>vv.vvv>vv..>v.>..v.>vvvv>...v>vv.. +...v.v.>>....>...vv>.v.....v>...v.......>>.>...v.v>vvv..>..>.>..vvvv..>...>..v..>vvv.......>vvv>>..v....v..v>>>>.v>....>>vv..>....v.v..v>.. +.>v>.>..vvv.>>>>...>>.>..>>.vv>..v....>..>......>.vv>..>vv>.>v>v>.v>v....>v.>.>.>vv.>v.v.>>v...v.>.v...>>.....v>.vv>v.v.>vv.>.>.>....>>v>.v +vv...v..v.....v..>>v....v.vv..v>.>....>>vv>.>.>..>.v....v>>v......>.v>>>>.>>.>>>.>..>.>.v>.>...>>.vv.v.vvvvv.v.>v>>v.v>.v.......>.>>..>.>>> +>.v.>...>..v..v..>.>v...v.>v.>.>....>.v>>v.vv>v.....vvv>v...vv.vv>..vv.v>...>vv>>>>.v..v..>v.v..>v..v>v.....vv.>..v....v...v>....v>>.v..v.> +v>.>.>v>.>>..>v>.>.>>..v......>.>>..>.>..>.v....>...vv>>...v.>.>.v>.vvv.v>vv>.>v>>.>v.vvv>v.vvv>..vv..>.>..v.....v>.....>>....>>vv...v.v>>> +.v...>..v...>v...>...>.>.>.>>>>..v.>.vv..>..v>>..>..>v...>...v.v.vv.v..vv..v>....>.>..>>.v..>...>v>v>.>.>v.>.v>..>...>..v.v>...>...vvv..>>. +>>>..v>>vv.>v..v.>.v>.v>.>v>>.v>>v>v>>.v..>.v>..v>..>..v.>v..v.>.vv>.........vvv...>>.....v>..>>.>v.>.>...vv>..v.v>>..v...>v....v....vv>..> +>v....>>....v..v..>..>vv............>>...vv.>.v>..v>...v>.>v>>..>.....>>.v>..v..vvv>...vv>....>>vv..v.vv>....>.v..v..>.vvv..v...>>v.>.>v.>. +>...v>.v.v..>...>.>>.>..>..>..v.v..>>>.v>>vv.>...v>>.v.>vv....v..vvvvv...>vv....>.>.v...>>.>.>vv...>>v..>vvvv>.v>>...vv>.>v.>>vv...>....v>. +...........v..vv...>v..>.>>..v.....v.>...vvv.>.v.....>>>.v>..>..>..v.vv>v..>v>>..>.....>vv>v>.>v.>...v.>v.vvv....>v>...>...>..>.>>..>...>.> +.>...>....v....v.v>.>>.>.v>>.>>v..>v.>>>>.v.>.v..v>..v>>v...v.vvvvvv..vvv.>..vv.v...>..>>..>v.>>...v>vv>v.>.>.>>v.vv.v......v>v.v..v>vv>.>v +.v>vv>>v..v.>>..v.....>v.v>vvv.....>.......v>..v>v.vvv>...>..>...>.>.>.>v>.>..v...>v..v...v..v.v..v.v>......v.>...>.>vvv>>>.v.v.>.>.>..v>.. +..v>v.v>>>..>vv..>.v.v.>v>...v.v.vv.v..v..v>.v.....>...>..>>>v...v>>.v>......v>>>v>>...v>.v>>.....v.v..vvv.>>.v>..>..>vvv.>vv..>.>......v.. +.>..v>.v..>v...v..>>..v..>.>.....>...vv..v.v..>>v...v>.>v....vvv...>.>.vvv>vvv..vvv..v>vvv>v>.>..>v>>.>>>.v..>......>v>......>.>v.>.v>>>..> +v.>>>...>..vv.>..>vv.v.v..>>.>.v..v..v..>>vv....v...v.v>...vv>.>.>.>>vv.vv.>..>vv.>v.>>>.v.v.>....>v>v....>>>v..v>.>.>>....v.>.>>>.v..vv>v. +>vv.>>>........v>>v...>..>..>.............v..>>..vvv..>..>..v.>>v.>>v>..v>>>....v>.>v>>....v...>..>>v..>v>>..>>....vv.vv>v........>.>v>.vv> +v.....v.v.v..>...>>>..>>v...v..>v.v..v....vv..>>..>>vv....vv.>>>vvv>......>...v>v.v..v>.>...v>>.>.>v....>.>v...v.v>..>.>...>>>.>.v>.>...v.. +.>.>.v.>vv...>v>>v.....v>..>..v>>>.v>>..vvvv.....>.v>.vv..>..>v..v>>..>v>...v.>.>v..>v.v.v.v>>v.>.>>.vvv..>>>vv...v>>v>...vvv.>vv..vvv..>.v +...>.>......v..v.v...v>.v>>v..>.v..v>.>.v.>>>..>.>v........v.v.v..>>..v.v.>...v.>....v...v.>vv>.>.v.>v...>vv>....vv.v..>v.v.>v>.>....>..v>> +......>...v...v.vvv....v>..>>.v...vv.v>>..v.>>>v.>>v.v>..vv.>v.v....>.>v.v..v>.>.>v.>..vv........>..v..v.vv...>v>.....>.>>.vv..v..>v.v>>v.. +v.vv...>.....>.>.>>v.>..>v...>.v.>>vv.vv.v.v...>>>...v>>.v..>.>>>...>>>vv>........>v...>v>vv>.>v.>v>>v...>.>>.>>.vv>>.>>v>.>>>>v..v.v.vv.v. +v...>>.v.vv.vv>..>.v.v>...>v.v>v.v.v>>v.v>v.>...v..vv.....vv..>v>>>...v...>.v.>>>>.v>v>>>>>>...>....>.v..>v.>.v....>>.vvv..>.>vv......>>... +.>v..v....>>>>vv>vv..>v.v.>.v>.>..>.v.v..>..v>...vv..v.>>.v....vvv>v>v>>>..v..>>>>vv.>.v>..vvv.>.>>....vv...>..>>v>vv>.>...v.>.>v..vv...>.. +....>....>>..v...>>>.v.>.vv.vv.>>>>>....v..v..vv>>..>...v>...v>..>.v...v....v>.vv....v...>...v.....v..>.v...>..>..>vv.>v.v>...>.v.v>.v..v>> +..>...v...v.>vv........>v.>..>>.>.v.v>..>v....v.>.>vv.>.v>.>v...>....>.v..>..>vv.v>v....vv>>>..v.......v.>vv>>v..v.>>.v.....>>>...>..v...>> +>.v..>v...>........>v..v.v..vv>v>.>>..>>..>v>v..vvv.v....v.v...>>>..v..>..>>.>>v.>..>..>vv.....>..>>..>........>v.vv>......vv......v.vvvv>. +.>..v..>..>v.v..v.v..v.>>v..>>.v>>.>v.v>>..v>vv>.vv>>.>>>>>>.vv>v..>.v.>...>>>.v>v>v..vv.>v..........v..>.>.>v....vv>...v..>..>...v...vv..v +v.vv..v.....vv....>>v.>v.vv>...>.>v.v...>.>.....v>.vv...>..vv.v..>v........>>vv.>vvv.>...>..>..v.>..v.>vv>..v.>.>v.>.>.v>.>.>.>.>vv>v.v>.>. +.vvv.>>>.>.vv.vv..>.>..>..v.....>.v>......v.>vv.>.v>..>.>.v>.vvv.v>.v..>..>v..>.v..>v..>..>vv.>v>>v>.v...>.v..v>>vv.>.>.>vv....>.v.>....vv. +>>>v..v.>.v..vv>..v...>..v.vv>.>.v>...>..vv>.>..v..>...>.>vvvvv..v..vv...v.>.v....v>>>.vv.>..>.............>>..v>.>>>.v>v..>.>>.>v>>v..>.>> +>.>.....v>v.vvv.vv......vv.>..v>..>vvvvv.....vv..v.>v>.v>vv...>..>>v...>v.>>.v>..>>vv.....>>>vvv>.>...>.>..>.>..>>>>.>>.vvvv..>>.>..>..v..v +.v>v...>vvvv.v>..v.vv>v..v...v..>.>...v>...>.>>.>..v..v..>v..v...>.vvv.vv.>>.v>vv.v....>>.>.>.>..vvv.>v.v.>v>.>>..>v>vvv>.>>>v>v..vvvvv.>.v +...>>>v>>>..v>...>>..>.>.vvv>vvvv>v..>>...>>..vvvv..v.>>.....>>..>>.>v.>v...v.v..>.v>..v>v>.>.v.v..v.v....>...v..v..v>..v.v.v...>v.v..>v... +.v.>>>..>v>>>>...>.vv......>>.v.v......v..v>.>...vvv>vv>v>v.....v>.......>>>>.v>..>..v..v>>>..>.vvv>v>>.>>.>...>vvvv>v.>...v.>v>..vv..v>vvv +.>.>..>.....v..v.>..v>..v..v>vv>..........>v.v...v>>.>v.v.vvv>v.vv>>vv....v...>v...vv>.>>>>>vvv>..>...>>>.v>>....vv.>.....>>..>v..v>vv..>.> +>>v>v..>...vv...v>.>.>>....>.>>vv..>.....>.v.vv..v..>.>v.v...v.>.v.>>....>...>v.>v>>...>..>v.>.>.vvv.>v.>>>vv>vv.vv>...v>.>......v.v.>>.... +.>v..>>...v>>.>..v>...v.>..>>>.v.v..v>..>.v..v....v>>vv>.>>>.>..>..v..>.v.v.>v.>v>>..>.v...v.v>>...vv..v..vv.>>>>v..>...vv>>>>>v..v.vvvv>>. +>.....v.v>....vv.>.v>.>>>>...>v..>.v....>>>.....>...>>>>.vvv>.>v>...>v.>..v>v.>vv...>>....vvv..v........>....>...v>..v>v>v..>v..v..>.>.>>>v +.vv>.vv..>>>vv>.vv.v..>.>v.v>v.>vv..vv.v..v.vv.>v>>>....v.....>v.v.>.>v..v..v....v.v.v..v.vv>>>v.>>..>v...>...v..>...>>>.>.>v..v..>.....>v> +..>.vv.>.>v....v.v..>v.>..>.>.>>..vvv>......>v>>>.>.v.v.v...>v.v>........>>>..>......v.v>>....>>.>v..v..>.>v..vv>>.>.v.>..v..v..>v..>v....> +v>vv..vvv.>.vvv..>.>..>.v.v.v.>..>v..vvv>.>>.v>v>vv..v.v>.v.>>>v>.>..v>>....v...vv>.v..>.v>>...>>....v.v....v.>v...>..v..>>.....>>v..v.>>v. +.v>.........>.v>>v..v>.....vv>vv.....>.v>.>>..>..v>.vvvv...>..>.v>.v...v......v>v..>.v>.v>v>vv....>v.....>>v..v>..v.>...v>...v..>.vv>v>v>>v +..>v.v>..v.>...vv>>.>..vv>>>>.>.v.>.>....>..vv.v.>.v..>.>.....>>v.....vv.>.>.v..v>.>>.v.>.>....v.>>.v.v.vv>v.v.>>v>v>>..v>.>..v.v>.>>.v.... +...vv>.v.....>vv............v....vvvv...>>v.v.v..>v.vv.vvv>>v.v...>v.>.>.>.v.>.v.>.>v>..>.v>v>v.>>...v>>>>v.v.>..v..v.>.>..v>......v>vvv>vv +..>.v.v...>..>vv>>>..v.vv>...>....v>.>>.>>...v>...v..v>>vvv......>.>.....>.>.>>.v.v>v.....>>v>v>>vv.v.v>.>v..v>v>.....v.>..vv>>....>>vv...v +>..>vv>>v>.>v....>v.>...v...vvv..v.v>.>.>>vv...v..>.....>....vv..>.vvv.>.vv>...v>.>...>..>>>.v>....>>v.v.>vv..>.>>v.....v.vvvv>.>>vv.>v...v +.....vv.>v.>..>>..........vv>>.>.>..>.>..>>......>..>...v.v>vv>.v..>>v>vv.vvv.v...v.>vv>...vv.>v.>.v.v...>vv.v>...>..v>...vv.vvvv.>...>v.v> +.>v>>.vv.v.v....>>>>..>>v>>.>>.>v.>>.>..v>.>..>..v.v..>v.......v>.>..v.v...v.vv.>..v...v.v>v>>v.v>.>..v..v.>v.v.v>v..>.>...>.>.>...>.>.vv.. +.v>v...>....vv>>.....>.vv........>.v.vv..>.>>...>.>vv...v>.>..vvv..>>vv.>>...>.v>v>..>>vv...v..v.>>.>vv..v..v>>.>.>v>>...v>>vv.>>.......... +.v...>.v>>vv>>v...>v...v...v>>.>v>>v.>>..>>vv>.....v.vvv.>v.....>..v.v.v.>..v>..v....>>..vvv..>v...>>.>v.v.v>..vv.vv.>.v.v.>..>.v.v>v>vv>.. +.>..>v>>>.>...>>v..vv.v>v>.v>vvv.>..v.>>.vv>.v>...v.>>>..vv.v.......>>.>v...>.....>>.>v>v.>..>.>.>.>..vv.>v.>..vvvv....>.v....>>.v.>.vvv... +>v..>.v..>>..v..vv....v...>vvv>>....>.>..vv.>..vv...>...>v>>.>.>..>v>....>>>..v.>>.>..v..>v..>.vv...v.>.>..v...>...>..>.....v....v..>.v.v.> +>v>v......v>..v>..>.v>...v.....>.>v.>>....>v>>.>>vv..>vv.v.v....>v.v>v..>v>..v>v>>.>..vv.....vv..v.v.v....>v..v>vv.....>.>>.v..v>>...>..vv> +...vv>vv..>..>v.vvvvvvv.>.>..>.v.vv>>v.vv...>>.....v.>>.v...>.>....v.>.>>.>v>.>.>..>>...>vvv..>..>.....>..>.>..v>v.>.v>v>>....v>....>>..v.> +>v..>...vv.vv>>>v...vvv.>..>.............v>vv.v.vv.vv.>>.v>>...vv>...v>.>..v.v...v>v.....>vv.>vv>..>.>v.v>..>..>....vv>.......v>>vv.>>>>..> +>v..>vvv.v.>v>.....>..v>v..>.>>>.>.v..>.v.>...v.v....v>.v.v>.v.......vv.>..>..>v.>.>.v.v>v..v>..>vv.>>.vv>>.v..v>.>.>.>.>v...>.>v...vv..v>. +..v..v>v>>vv.v.v.v.>v.>>v.vv........>v.>.v...>.>v.>>.>v.vvvvv>.>.>>...>.>..>>...v.vv..v..v...>>v>>.>>.>.vv>.v...>.>.v..>...v.>>..>>.v>>>v.v +>vv..>..v...>.vv..>........>..vvv....>v..vv>..v.v.>>v>>.>>.vv.v...v>.v>>>...>.vv.v.v>..v...>.vv>..v.v>..>>.>v>.....>>.>..v>vv..v.v>vv...... \ No newline at end of file diff --git a/src/01.cs b/src/01.cs new file mode 100644 index 0000000..2049fa3 --- /dev/null +++ b/src/01.cs @@ -0,0 +1,62 @@ +namespace aoc2022; + +internal class Day01 : Day +{ + IEnumerable? lines; + + internal override void Parse() + { + lines = Util.ReadAllLines("inputs/01.txt"); + } + + internal override string Part1() + { + int lastDepth = 0; + int numIncreased = -1; + + foreach (var line in lines!) + { + var depth = Convert.ToInt32(line); + if (depth > lastDepth) + { + numIncreased++; + } + + lastDepth = depth; + } + + return $"<+white>{numIncreased}"; + } + + internal override string Part2() + { + int lastTotal = 0; + int numIncreased = -1; + int num1 = -1; + int num2 = -1; + int num3 = -1; + + foreach (var line in lines!) + { + var depth = Convert.ToInt32(line); + num1 = num2; + num2 = num3; + num3 = depth; + + if (num1 < 0 || num2 < 0 || num3 < 0) + { + continue; + } + + var total = num1 + num2 + num3; + if (total > lastTotal) + { + numIncreased++; + } + + lastTotal = total; + } + + return $"<+white>{numIncreased}"; + } +} diff --git a/src/Day.cs b/src/Day.cs new file mode 100644 index 0000000..6503482 --- /dev/null +++ b/src/Day.cs @@ -0,0 +1,55 @@ +using System.Diagnostics; + +namespace aoc2022; + +internal abstract class Day : IDisposable +{ + public void Dispose() + { + Logger.Log(""); + } + + internal void Go(bool runPart1, bool runPart2) + { + Logger.Log($"{GetType().Name}"); + + using (var parseStopwatch = new Timer("Parsing")) + { + Parse(); + } + + if (runPart1) + { + using var stopwatch = new Timer(); + var response = Part1(); + stopwatch.Stop(); + if (!string.IsNullOrEmpty(response)) + { + Logger.Log($"<+black>> part1: {response}"); + } + else + { + stopwatch.Disabled = true; + } + } + + if (runPart2) + { + using var stopwatch = new Timer(); + var response = Part2(); + stopwatch.Stop(); + if (!string.IsNullOrEmpty(response)) + { + Logger.Log($"<+black>> part2: {response}"); + } + else + { + stopwatch.Disabled = true; + } + } + } + + internal virtual void Parse() { } + internal virtual string Part1() { return string.Empty; } + internal virtual string Part2() { return string.Empty; } +} diff --git a/src/Extensions.cs b/src/Extensions.cs new file mode 100644 index 0000000..bffa1e0 --- /dev/null +++ b/src/Extensions.cs @@ -0,0 +1,41 @@ +using System.Diagnostics; + +namespace aoc2022; + +internal static class Extensions +{ + public static void ForEach(this IEnumerable enumeration, Action action) + { + foreach (T item in enumeration) + { + action(item); + } + } + + public static (double elapsed, string unit) ConvertToHumanReadable(this Stopwatch stopwatch) + { + var elapsed = 1.0d * stopwatch.ElapsedTicks / Stopwatch.Frequency; + var unit = "s"; + if (elapsed < 0.001) + { + elapsed *= 1e+6; + unit = "us"; + } + else if (elapsed < 1) + { + elapsed *= 1000; + unit = "ms"; + } + else if (elapsed < 60) + { + unit = "s"; + } + else if (elapsed < 60 * 60) + { + elapsed /= 60; + unit = "m"; + } + + return (elapsed, unit); + } +} diff --git a/src/Logger.cs b/src/Logger.cs new file mode 100644 index 0000000..89a808f --- /dev/null +++ b/src/Logger.cs @@ -0,0 +1,72 @@ +using System.Diagnostics; + +namespace aoc2022; + +internal class Logger +{ + private static readonly Dictionary colorCodes = new() + { + { "r", "\u001b[0m" }, + { "black", "\u001b[30m" }, + { "red", "\u001b[31m" }, + { "green", "\u001b[32m" }, + { "yellow", "\u001b[33m" }, + { "blue", "\u001b[34m" }, + { "magenta", "\u001b[35m" }, + { "cyan", "\u001b[36m" }, + { "white", "\u001b[37m" }, + { "+black", "\u001b[30;1m" }, + { "+red", "\u001b[31;1m" }, + { "+green", "\u001b[32;1m" }, + { "+yellow", "\u001b[33;1m" }, + { "+blue", "\u001b[34;1m" }, + { "+magenta", "\u001b[35;1m" }, + { "+cyan", "\u001b[36;1m" }, + { "+white", "\u001b[37;1m" }, + { "bgBlack", "\u001b[40m" }, + { "bgRed", "\u001b[41m" }, + { "bgGreen", "\u001b[42m" }, + { "bgYellow", "\u001b[43m" }, + { "bgBlue", "\u001b[44m" }, + { "bgMagenta", "\u001b[45m" }, + { "bgCyan", "\u001b[46m" }, + { "bgWhite", "\u001b[47m" }, + { "+bgBlack", "\u001b[40;1m" }, + { "+bgRed", "\u001b[41;1m" }, + { "+bgGreen", "\u001b[42;1m" }, + { "+bgYellow", "\u001b[43;1m" }, + { "+bgBlue", "\u001b[44;1m" }, + { "+bgMagenta", "\u001b[45;1m" }, + { "+bgCyan", "\u001b[46;1m" }, + { "+bgWhite", "\u001b[47;1m" }, + { "bold", "\u001b[1m" }, + { "underline", "\u001b[4m" }, + { "reverse", "\u001b[7m" }, + }; + + public static void Log(string msg) + { + Console.WriteLine(InsertColorCodes(msg)); + Debug.WriteLine(StripColorCodes(msg)); + } + + private static string InsertColorCodes(string msg) + { + foreach (var code in colorCodes) + { + msg = msg.Replace($"<{code.Key}>", code.Value, StringComparison.CurrentCultureIgnoreCase); + } + + return msg; + } + + private static string StripColorCodes(string msg) + { + foreach (var code in colorCodes) + { + msg = msg.Replace($"<{code.Key}>", string.Empty, StringComparison.CurrentCultureIgnoreCase); + } + + return msg; + } +} diff --git a/src/Template.cs b/src/Template.cs new file mode 100644 index 0000000..6e718e4 --- /dev/null +++ b/src/Template.cs @@ -0,0 +1,25 @@ +namespace aoc2022; + +internal class DayTemplate : Day +{ + IEnumerable? lines; + + internal override void Parse() + { + lines = Util.ReadAllLines("inputs/##.txt"); + } + + internal override string Part1() + { + + + return $"<+white>"; + } + + internal override string Part2() + { + + + return $"<+white>"; + } +} diff --git a/src/Timer.cs b/src/Timer.cs new file mode 100644 index 0000000..71cc51c --- /dev/null +++ b/src/Timer.cs @@ -0,0 +1,48 @@ +using System.Diagnostics; + +namespace aoc2022; + +internal class Timer : IDisposable +{ + private readonly Stopwatch stopwatch = Stopwatch.StartNew(); + private readonly string? name; + private bool stopped = false; + public bool Disabled { get; set; } + + public Timer(string? inName = null) + { + name = inName; + } + + public void Stop() + { + if (stopped) + { + return; + } + + stopwatch.Stop(); + stopped = true; + } + + public void Dispose() + { + Stop(); + if (Disabled) + { + return; + } + + var (elapsed, unit) = stopwatch.ConvertToHumanReadable(); + var color = ""; + if (unit == "us" || (unit == "ms" && elapsed < 10)) + { + color = ""; + } + else if (unit == "ms" && elapsed < 250) + { + color = ""; + } + Logger.Log($"{name}{(!string.IsNullOrEmpty(name) ? " t" : "T")}ook {color}{elapsed:N1}{unit}"); + } +} diff --git a/src/Util.cs b/src/Util.cs new file mode 100644 index 0000000..8a8dc23 --- /dev/null +++ b/src/Util.cs @@ -0,0 +1,95 @@ +using System.Diagnostics; +using System.Text; + +namespace aoc2022; + +internal static class Util +{ + private static readonly char[] StripPreamble = new char[] { (char)8745, (char)9559, (char)9488, }; + internal static void ReadData(string filename, Action processor) + { + if (Console.IsInputRedirected) + { + string? line; + bool processedSomething = false; + for (int i = 0; (line = Console.In.ReadLine()) != null; i++) + { + if (i == 0) + { + var preamble = Encoding.UTF8.GetPreamble(); + if (Enumerable.SequenceEqual(line[0..preamble.Length], preamble.Select(x => (char)x))) + { + line = line[preamble.Length..]; + } + else if (Enumerable.SequenceEqual(line[0..StripPreamble.Length].ToCharArray(), StripPreamble)) + { + line = line[StripPreamble.Length..]; + } + } + processor(line); + if (!string.IsNullOrEmpty(line)) + { + processedSomething = true; + } + } + + if (processedSomething) + { + return; + } + } + + foreach (var line in File.ReadLines(filename)) + { + processor(line); + } + } + + internal static string ReadAllText(string filename) + { + string contents = string.Empty; + ReadData(filename, (line) => contents = line); + return contents; + } + + internal static IEnumerable ReadAllLines(string filename) + { + List lines = new(); + ReadData(filename, (line) => lines.Add(line)); + return lines; + } + + internal static IEnumerable ReadAllLinesAsInts(string filename) + { + return ReadAllLines(filename).Select(long.Parse); + } + + internal static void StartTestSet(string name) + { + Logger.Log($"test: {name}"); + } + + internal static void StartTest(string label) + { + Logger.Log($"{label}"); + } + + internal static void TestCondition(Func a, bool printResult = true) + { + if (a?.Invoke() == false) + { + Debug.Assert(false); + if (printResult) + { + Logger.Log("x"); + } + } + else + { + if (printResult) + { + Logger.Log(""); + } + } + } +} diff --git a/src/main.cs b/src/main.cs new file mode 100644 index 0000000..198e476 --- /dev/null +++ b/src/main.cs @@ -0,0 +1,74 @@ +using aoc2022; + +var types = System.Reflection.Assembly + .GetExecutingAssembly() + .GetTypes() + .Where(t => t.IsSubclassOf(typeof(Day)) && !t.IsAbstract && t.Name != "DayTemplate") + .OrderBy(t => t.Name); + +bool runAll = false; +bool? runPart1 = null; +bool? runPart2 = null; +string? desiredDay = null; +foreach (var arg in args) +{ + if (arg.Equals("-part1", StringComparison.CurrentCultureIgnoreCase)) + { + runPart1 = true; + } + else if (arg.Equals("-part2", StringComparison.CurrentCultureIgnoreCase)) + { + runPart2 = true; + } + else if (arg.Equals("all", StringComparison.CurrentCultureIgnoreCase)) + { + runAll = true; + } + else + { + desiredDay = arg; + } +} + +if (runPart1 != null || runPart2 != null) +{ + if (runPart1 == null) + { + runPart1 = false; + } + if (runPart2 == null) + { + runPart2 = false; + } +} + +if (runAll) +{ + foreach (var type in types) + { + using var day = (Day)Activator.CreateInstance(type)!; + day.Go(runPart1 ?? true, runPart2 ?? true); + } +} +else +{ + Day? day = null; + if (string.IsNullOrEmpty(desiredDay)) + { + day = new Day01(); + } + else + { + var type = types.FirstOrDefault(x => x.Name == $"Day{desiredDay?.PadLeft(2, '0')}"); + if (type == null) + { + Logger.Log($"Unknown day {desiredDay}"); + } + else + { + day = (Day?)Activator.CreateInstance(type); + } + } + day?.Go(runPart1 ?? true, runPart2 ?? true); + day?.Dispose(); +}