diff --git a/inputs/day1.sample.txt b/inputs/day1.sample.txt deleted file mode 100644 index 60ac9b8..0000000 --- a/inputs/day1.sample.txt +++ /dev/null @@ -1,11 +0,0 @@ -199 -200 -208 -210 -200 -207 -240 -269 -260 -263 - diff --git a/inputs/day1.txt b/inputs/day1.txt deleted file mode 100644 index f850264..0000000 --- a/inputs/day1.txt +++ /dev/null @@ -1,2003 +0,0 @@ -148 -167 -168 -169 -182 -188 -193 -209 -195 -206 -214 -219 -225 -219 -211 -215 -216 -195 -200 -197 -226 -231 -234 -248 -249 -265 -262 -275 -271 -283 -297 -302 -306 -307 -309 -313 -306 -307 -310 -307 -306 -284 -291 -296 -297 -298 -302 -297 -295 -296 -297 -293 -294 -295 -303 -302 -304 -305 -303 -288 -289 -290 -291 -290 -288 -302 -304 -282 -283 -290 -301 -304 -301 -330 -337 -341 -340 -337 -341 -342 -343 -301 -311 -312 -302 -317 -318 -319 -345 -347 -354 -358 -356 -357 -362 -361 -357 -375 -376 -383 -384 -382 -383 -384 -391 -400 -410 -413 -419 -421 -424 -426 -425 -427 -429 -432 -433 -434 -440 -446 -444 -453 -461 -463 -461 -464 -463 -489 -486 -485 -486 -499 -498 -493 -494 -485 -490 -499 -498 -506 -510 -519 -524 -520 -521 -543 -550 -551 -553 -564 -567 -568 -572 -597 -579 -592 -597 -618 -620 -628 -651 -674 -671 -684 -719 -718 -730 -727 -729 -724 -720 -737 -740 -753 -763 -764 -762 -772 -774 -773 -771 -777 -774 -783 -791 -792 -791 -801 -822 -821 -814 -811 -812 -817 -835 -844 -837 -839 -841 -855 -872 -881 -895 -910 -900 -902 -913 -914 -911 -917 -918 -923 -933 -932 -931 -915 -912 -923 -939 -940 -941 -943 -947 -948 -931 -933 -944 -933 -947 -948 -949 -956 -949 -948 -969 -973 -989 -993 -994 -993 -1007 -1010 -1020 -1024 -1026 -1031 -1032 -1028 -1045 -1015 -1018 -1024 -998 -1000 -1006 -994 -995 -993 -1010 -1011 -1010 -1015 -1021 -1039 -1045 -1041 -1049 -1044 -1050 -1063 -1066 -1051 -1056 -1059 -1060 -1059 -1064 -1067 -1066 -1067 -1069 -1072 -1074 -1077 -1078 -1080 -1086 -1079 -1089 -1093 -1099 -1102 -1103 -1108 -1119 -1138 -1139 -1144 -1148 -1151 -1152 -1151 -1155 -1154 -1153 -1157 -1159 -1164 -1168 -1172 -1171 -1182 -1189 -1190 -1192 -1194 -1196 -1197 -1222 -1216 -1220 -1206 -1205 -1196 -1200 -1210 -1203 -1200 -1212 -1218 -1219 -1205 -1211 -1212 -1213 -1176 -1187 -1174 -1175 -1180 -1181 -1187 -1185 -1211 -1212 -1199 -1231 -1234 -1249 -1250 -1247 -1235 -1234 -1236 -1237 -1266 -1265 -1286 -1289 -1282 -1283 -1273 -1282 -1267 -1271 -1278 -1291 -1307 -1294 -1292 -1320 -1323 -1314 -1317 -1342 -1344 -1319 -1326 -1330 -1329 -1331 -1335 -1338 -1360 -1364 -1381 -1389 -1386 -1387 -1388 -1389 -1391 -1395 -1398 -1404 -1405 -1408 -1412 -1427 -1410 -1425 -1409 -1410 -1412 -1411 -1394 -1406 -1407 -1404 -1413 -1418 -1417 -1442 -1443 -1444 -1445 -1458 -1452 -1453 -1466 -1465 -1466 -1465 -1476 -1484 -1487 -1490 -1494 -1495 -1502 -1498 -1501 -1496 -1498 -1492 -1501 -1499 -1477 -1480 -1483 -1484 -1483 -1488 -1494 -1491 -1489 -1503 -1535 -1544 -1547 -1549 -1550 -1557 -1542 -1540 -1542 -1543 -1544 -1542 -1541 -1546 -1542 -1540 -1526 -1534 -1536 -1549 -1542 -1552 -1553 -1554 -1569 -1568 -1569 -1563 -1560 -1572 -1568 -1544 -1552 -1559 -1563 -1556 -1577 -1594 -1596 -1581 -1580 -1570 -1552 -1560 -1561 -1558 -1559 -1560 -1561 -1560 -1554 -1562 -1565 -1561 -1570 -1571 -1572 -1568 -1565 -1574 -1616 -1607 -1604 -1606 -1609 -1607 -1608 -1609 -1618 -1621 -1622 -1623 -1628 -1637 -1648 -1656 -1653 -1649 -1651 -1654 -1693 -1697 -1705 -1706 -1705 -1712 -1709 -1708 -1715 -1717 -1721 -1723 -1730 -1729 -1740 -1732 -1733 -1740 -1746 -1747 -1744 -1748 -1746 -1745 -1747 -1749 -1750 -1744 -1747 -1749 -1751 -1749 -1751 -1782 -1783 -1767 -1769 -1799 -1777 -1783 -1784 -1786 -1790 -1791 -1802 -1804 -1807 -1824 -1825 -1840 -1852 -1872 -1874 -1871 -1866 -1861 -1860 -1861 -1842 -1840 -1841 -1842 -1841 -1832 -1848 -1851 -1834 -1846 -1844 -1826 -1829 -1840 -1841 -1844 -1848 -1820 -1831 -1833 -1822 -1814 -1819 -1833 -1832 -1824 -1814 -1815 -1818 -1829 -1832 -1833 -1847 -1846 -1848 -1850 -1880 -1889 -1887 -1888 -1881 -1880 -1883 -1885 -1882 -1881 -1868 -1870 -1855 -1862 -1863 -1870 -1866 -1875 -1894 -1896 -1880 -1898 -1917 -1918 -1914 -1919 -1907 -1905 -1893 -1901 -1899 -1909 -1910 -1918 -1921 -1930 -1929 -1935 -1917 -1919 -1917 -1907 -1911 -1910 -1911 -1930 -1958 -1964 -1971 -1972 -1950 -1963 -1967 -1968 -1965 -1973 -1975 -1965 -1963 -1949 -1950 -1953 -1952 -1957 -1974 -1992 -2022 -2021 -2022 -2025 -2024 -2032 -2048 -2074 -2068 -2072 -2068 -2085 -2091 -2111 -2095 -2091 -2089 -2103 -2107 -2117 -2123 -2128 -2136 -2134 -2140 -2141 -2140 -2141 -2122 -2125 -2129 -2142 -2106 -2101 -2104 -2122 -2131 -2156 -2178 -2187 -2182 -2180 -2177 -2178 -2179 -2197 -2198 -2197 -2198 -2202 -2204 -2210 -2211 -2212 -2207 -2206 -2211 -2216 -2209 -2210 -2202 -2207 -2206 -2207 -2210 -2213 -2185 -2187 -2188 -2203 -2206 -2213 -2233 -2238 -2249 -2250 -2252 -2253 -2240 -2246 -2248 -2235 -2237 -2255 -2257 -2235 -2245 -2240 -2246 -2237 -2255 -2282 -2283 -2291 -2304 -2305 -2306 -2309 -2319 -2321 -2323 -2318 -2317 -2316 -2317 -2323 -2314 -2326 -2313 -2314 -2316 -2317 -2320 -2317 -2326 -2322 -2348 -2349 -2335 -2331 -2338 -2343 -2344 -2345 -2335 -2332 -2339 -2340 -2335 -2346 -2347 -2343 -2342 -2344 -2333 -2326 -2351 -2355 -2363 -2366 -2364 -2393 -2410 -2411 -2433 -2440 -2413 -2407 -2403 -2404 -2407 -2427 -2425 -2430 -2446 -2449 -2450 -2448 -2453 -2454 -2456 -2455 -2456 -2455 -2460 -2451 -2464 -2463 -2468 -2471 -2472 -2456 -2467 -2471 -2481 -2505 -2524 -2534 -2533 -2531 -2526 -2527 -2522 -2534 -2535 -2538 -2537 -2538 -2541 -2542 -2544 -2543 -2529 -2519 -2508 -2522 -2526 -2554 -2560 -2554 -2558 -2562 -2576 -2580 -2581 -2589 -2573 -2596 -2600 -2601 -2606 -2607 -2611 -2606 -2624 -2631 -2634 -2663 -2661 -2663 -2676 -2680 -2678 -2680 -2677 -2672 -2685 -2716 -2713 -2690 -2698 -2699 -2716 -2720 -2719 -2720 -2724 -2722 -2724 -2725 -2727 -2733 -2736 -2739 -2740 -2753 -2762 -2763 -2793 -2808 -2787 -2778 -2782 -2771 -2783 -2795 -2803 -2808 -2832 -2833 -2842 -2843 -2839 -2840 -2807 -2808 -2806 -2825 -2836 -2838 -2842 -2848 -2817 -2818 -2821 -2820 -2844 -2859 -2830 -2824 -2825 -2850 -2853 -2852 -2830 -2835 -2839 -2828 -2827 -2828 -2826 -2827 -2815 -2816 -2819 -2818 -2792 -2789 -2793 -2801 -2778 -2779 -2780 -2783 -2808 -2824 -2792 -2811 -2810 -2777 -2774 -2773 -2782 -2781 -2790 -2785 -2789 -2785 -2786 -2785 -2782 -2783 -2785 -2788 -2785 -2790 -2816 -2834 -2835 -2836 -2842 -2846 -2839 -2861 -2863 -2868 -2867 -2864 -2849 -2850 -2851 -2852 -2826 -2815 -2814 -2820 -2821 -2837 -2865 -2866 -2851 -2856 -2861 -2867 -2874 -2871 -2872 -2861 -2842 -2843 -2840 -2872 -2879 -2873 -2881 -2877 -2880 -2873 -2872 -2902 -2906 -2900 -2899 -2911 -2914 -2924 -2925 -2920 -2909 -2901 -2924 -2936 -2938 -2947 -2950 -2962 -2963 -2955 -2953 -2970 -2967 -2947 -2958 -2961 -2962 -2952 -2953 -2951 -2947 -2945 -2952 -2956 -2959 -2961 -2960 -2965 -2966 -2962 -2964 -2972 -2975 -2985 -2982 -2996 -2997 -2991 -2994 -2995 -2994 -2978 -2987 -2994 -3003 -2994 -2993 -2998 -3000 -3004 -3005 -3006 -3024 -3046 -3049 -3053 -3052 -3064 -3067 -3065 -3067 -3068 -3063 -3065 -3067 -3063 -3066 -3068 -3079 -3085 -3086 -3088 -3090 -3093 -3119 -3144 -3143 -3144 -3146 -3159 -3160 -3162 -3164 -3160 -3158 -3143 -3138 -3135 -3140 -3145 -3137 -3134 -3140 -3141 -3135 -3134 -3133 -3123 -3124 -3123 -3124 -3126 -3125 -3109 -3105 -3106 -3120 -3100 -3112 -3114 -3122 -3121 -3120 -3131 -3140 -3141 -3152 -3153 -3154 -3155 -3162 -3160 -3161 -3177 -3190 -3191 -3192 -3194 -3196 -3190 -3187 -3199 -3193 -3200 -3199 -3214 -3212 -3175 -3150 -3153 -3177 -3181 -3165 -3183 -3185 -3187 -3188 -3187 -3201 -3203 -3202 -3200 -3209 -3218 -3217 -3216 -3208 -3204 -3203 -3179 -3185 -3188 -3195 -3196 -3193 -3194 -3211 -3216 -3208 -3210 -3211 -3212 -3204 -3205 -3209 -3232 -3234 -3255 -3254 -3264 -3267 -3269 -3274 -3278 -3290 -3301 -3303 -3305 -3306 -3304 -3305 -3302 -3307 -3308 -3297 -3302 -3307 -3306 -3307 -3306 -3274 -3275 -3276 -3278 -3281 -3280 -3274 -3299 -3298 -3276 -3275 -3278 -3281 -3284 -3285 -3281 -3282 -3244 -3239 -3240 -3217 -3236 -3238 -3240 -3245 -3248 -3255 -3256 -3260 -3261 -3271 -3289 -3302 -3303 -3304 -3305 -3304 -3306 -3307 -3334 -3338 -3341 -3340 -3360 -3354 -3353 -3366 -3369 -3374 -3377 -3368 -3361 -3378 -3385 -3384 -3382 -3386 -3384 -3388 -3381 -3358 -3359 -3363 -3364 -3365 -3366 -3368 -3392 -3419 -3436 -3438 -3452 -3479 -3480 -3483 -3494 -3500 -3511 -3524 -3535 -3560 -3571 -3584 -3600 -3598 -3591 -3593 -3598 -3599 -3598 -3599 -3610 -3608 -3610 -3611 -3615 -3616 -3620 -3606 -3622 -3625 -3629 -3636 -3635 -3640 -3635 -3636 -3634 -3635 -3652 -3654 -3655 -3657 -3642 -3647 -3654 -3661 -3621 -3620 -3621 -3628 -3604 -3597 -3598 -3587 -3588 -3591 -3595 -3594 -3596 -3597 -3598 -3603 -3604 -3605 -3632 -3627 -3630 -3631 -3632 -3642 -3643 -3644 -3649 -3653 -3652 -3653 -3654 -3653 -3669 -3688 -3696 -3697 -3704 -3707 -3710 -3704 -3718 -3721 -3725 -3751 -3757 -3760 -3776 -3775 -3782 -3778 -3792 -3804 -3818 -3819 -3806 -3810 -3795 -3806 -3821 -3823 -3858 -3860 -3858 -3865 -3868 -3875 -3876 -3878 -3888 -3891 -3893 -3884 -3889 -3897 -3891 -3894 -3896 -3924 -3925 -3926 -3927 -3934 -3938 -3966 -3972 -3973 -3977 -3976 -4003 -4017 -4023 -4019 -4017 -3988 -3997 -4010 -4017 -4018 -3994 -3995 -3985 -3987 -3997 -4004 -4003 -4005 -4009 -4007 -4021 -4023 -3998 -3991 -4021 -4020 -4027 -4026 -4030 -4043 -4047 -4048 -4046 -4045 -4046 -4059 -4050 -4064 -4065 -4077 -4083 -4087 -4079 -4087 -4082 -4083 -4111 -4112 -4122 -4123 -4126 -4129 -4138 -4139 -4172 -4160 -4135 -4136 -4147 -4182 -4181 -4180 -4184 -4188 -4191 -4194 -4195 -4176 -4185 -4180 -4187 -4188 -4189 -4190 -4211 -4205 -4208 -4220 -4236 -4239 -4240 -4243 -4240 -4269 -4275 -4274 -4272 -4282 -4281 -4286 -4285 -4248 -4247 -4250 -4249 -4244 -4272 -4265 -4269 -4295 -4280 -4279 -4273 -4256 -4245 -4247 -4248 -4228 -4229 -4231 -4245 -4259 -4261 -4268 -4270 -4272 -4276 -4305 -4322 -4325 -4333 -4329 -4330 -4331 -4328 -4332 -4340 -4367 -4363 -4375 -4399 -4408 -4434 -4412 -4420 -4421 -4422 -4433 -4416 -4430 -4434 -4437 -4438 -4445 -4446 -4448 -4450 -4465 -4468 -4482 -4484 -4461 -4462 -4461 -4462 -4464 -4461 -4464 -4465 -4470 -4478 -4480 -4461 -4471 -4464 -4462 -4463 -4464 -4465 -4454 -4457 -4455 -4456 -4467 -4480 -4490 -4491 -4499 -4500 -4517 -4524 -4540 -4551 -4552 -4559 -4560 -4559 -4565 -4558 -4557 -4562 -4568 -4573 -4578 -4557 -4573 -4574 -4572 -4588 -4613 -4614 -4600 -4602 -4601 -4598 -4597 -4601 -4611 -4612 -4613 -4621 -4622 -4645 -4651 -4650 -4663 -4660 -4657 -4660 -4667 -4666 -4669 -4666 -4654 -4657 -4669 -4672 -4651 -4652 -4655 -4653 -4654 -4669 -4670 -4671 -4672 -4673 -4675 -4681 -4682 -4687 -4691 -4692 -4688 -4687 -4713 -4725 -4719 -4720 -4730 -4728 -4725 -4720 -4721 -4722 -4714 -4716 -4724 -4707 -4716 -4707 -4706 -4707 -4708 -4709 -4710 -4711 -4726 -4694 -4701 -4697 -4698 -4678 -4679 -4680 -4670 -4661 -4677 -4678 -4660 -4649 -4650 -4653 -4655 -4650 -4657 -4658 -4660 -4663 -4686 -4691 -4686 -4676 -4658 -4656 -4655 -4657 -4656 -4655 -4670 -4661 -4658 -4659 -4663 -4664 -4673 -4691 -4694 -4696 -4698 -4702 -4706 -4714 -4709 -4707 -4708 -4719 -4725 -4744 -4754 -4782 -4778 -4808 -4826 -4830 -4838 -4841 -4848 -4855 -4866 -4862 -4865 -4852 -4881 -4873 -4875 -4874 -4876 -4869 -4866 -4870 -4867 -4866 -4883 -4912 -4918 -4938 -4960 -4948 -4956 -4961 -4978 -4993 -4994 -4998 -5000 -5001 -5007 -5009 -5015 -5002 -5005 -5039 -5037 -5043 -5044 -5051 -5053 -5057 -5058 -5059 -5058 -5065 -5067 -5066 -5069 -5070 -5077 -5076 -5077 -5078 -5079 -5085 -5081 -5087 -5107 -5122 -5123 -5099 -5066 -5083 -5109 -5105 -5106 -5090 -5112 -5102 -5109 -5108 -5109 -5108 -5109 -5118 -5114 -5117 -5119 -5139 -5144 -5142 -5148 -5151 -5147 -5148 -5160 -5172 -5154 -5156 -5155 -5164 -5155 -5143 -5122 -5147 -5162 -5163 -5151 -5152 -5157 -5163 -5203 -5211 -5222 -5224 -5241 -5239 -5250 -5254 -5250 -5251 -5252 -5256 -5276 -5274 -5246 -5248 -5251 -5250 -5254 -5267 -5285 -5286 -5292 -5290 -5289 -5293 -5294 -5299 -5303 -5305 -5306 -5316 -5317 -5319 -5320 -5326 -5325 -5330 -5329 -5332 -5336 -5338 -5339 -5349 -5353 -5354 -5346 -5348 -5349 -5358 -5359 -5360 -5361 -5377 -5380 -5390 -5391 -5403 -5402 -5405 -5404 -5406 -5405 -5406 -5405 -5406 -5434 -5443 -5444 -5458 -5478 -5484 -5491 -5492 -5504 -5507 -5508 -5514 -5512 -5523 -5529 -5534 -5535 -5558 -5560 -5561 -5534 -5543 -5538 -5537 -5533 -5554 -5558 -5557 -5554 -5590 -5601 -5604 -5623 -5626 -5625 - - - diff --git a/inputs/day2.sample.txt b/inputs/day2.sample.txt deleted file mode 100644 index 7303f2a..0000000 --- a/inputs/day2.sample.txt +++ /dev/null @@ -1,8 +0,0 @@ -forward 5 -down 5 -forward 8 -up 3 -down 8 -forward 2 - - diff --git a/inputs/day2.txt b/inputs/day2.txt deleted file mode 100644 index 8e1352e..0000000 --- a/inputs/day2.txt +++ /dev/null @@ -1,1002 +0,0 @@ -forward 5 -down 7 -forward 8 -forward 1 -forward 1 -down 1 -down 9 -up 4 -down 5 -down 3 -up 1 -up 1 -forward 1 -up 2 -forward 5 -forward 4 -forward 7 -down 4 -up 9 -forward 5 -down 5 -forward 2 -forward 1 -forward 3 -down 6 -up 8 -up 8 -forward 8 -up 7 -down 3 -down 4 -forward 2 -down 9 -forward 9 -down 7 -down 9 -forward 8 -down 5 -forward 9 -forward 2 -forward 7 -down 4 -forward 8 -down 4 -up 7 -forward 7 -forward 7 -forward 5 -forward 1 -down 1 -down 5 -forward 9 -forward 9 -down 2 -down 2 -down 2 -forward 4 -forward 3 -forward 2 -down 7 -down 7 -forward 8 -forward 3 -forward 1 -up 4 -forward 9 -down 1 -up 2 -forward 3 -forward 7 -up 6 -up 9 -forward 4 -down 8 -down 5 -down 9 -forward 9 -forward 4 -forward 5 -forward 3 -down 9 -forward 1 -forward 7 -down 5 -forward 5 -forward 3 -down 6 -down 5 -down 8 -forward 6 -down 2 -forward 2 -down 6 -forward 1 -up 5 -up 3 -forward 7 -down 2 -forward 2 -forward 1 -forward 9 -up 9 -up 3 -forward 5 -down 5 -forward 9 -up 9 -down 7 -down 1 -up 9 -down 7 -up 4 -forward 1 -up 2 -up 5 -down 2 -forward 1 -down 3 -forward 5 -down 4 -down 1 -down 2 -down 4 -down 5 -forward 3 -forward 2 -forward 6 -forward 8 -forward 6 -down 4 -up 7 -forward 2 -down 3 -down 7 -down 1 -forward 7 -forward 1 -forward 9 -forward 8 -forward 3 -up 8 -forward 4 -up 7 -up 8 -forward 2 -forward 5 -down 2 -down 1 -forward 1 -up 6 -down 7 -forward 2 -up 6 -up 2 -forward 5 -down 5 -forward 5 -forward 3 -up 7 -forward 1 -down 3 -forward 4 -up 5 -forward 6 -forward 1 -up 6 -up 7 -forward 1 -forward 2 -up 6 -up 6 -forward 1 -forward 5 -up 9 -down 4 -down 9 -down 2 -down 5 -down 7 -down 3 -down 2 -down 7 -forward 8 -down 1 -forward 6 -forward 4 -up 8 -up 6 -forward 5 -forward 3 -forward 3 -down 9 -up 1 -up 3 -up 1 -up 8 -up 9 -down 5 -down 5 -forward 2 -forward 5 -down 9 -down 1 -down 4 -forward 5 -up 9 -forward 2 -forward 8 -up 1 -down 9 -down 9 -down 2 -down 9 -up 5 -forward 7 -down 3 -forward 3 -down 2 -forward 4 -forward 9 -forward 6 -down 1 -down 4 -down 4 -down 7 -down 6 -down 7 -forward 8 -forward 1 -forward 6 -forward 8 -up 1 -down 2 -down 8 -forward 4 -forward 2 -down 1 -down 1 -down 9 -forward 4 -down 3 -down 5 -down 7 -down 8 -forward 9 -forward 9 -forward 4 -down 9 -down 5 -up 3 -up 2 -forward 9 -down 6 -forward 4 -down 9 -forward 9 -up 6 -up 3 -forward 3 -down 1 -up 1 -forward 1 -forward 8 -up 4 -up 9 -forward 9 -down 9 -up 4 -down 4 -up 7 -forward 1 -down 7 -forward 9 -down 3 -forward 5 -forward 4 -down 1 -down 6 -down 5 -down 2 -forward 7 -down 2 -forward 1 -down 6 -forward 8 -down 3 -down 7 -down 1 -down 8 -up 4 -forward 7 -forward 9 -forward 1 -forward 9 -forward 8 -forward 9 -down 4 -up 6 -down 2 -up 8 -down 7 -down 5 -up 2 -up 7 -down 9 -up 1 -forward 1 -down 9 -forward 9 -forward 2 -forward 1 -up 9 -down 5 -down 1 -forward 7 -down 5 -forward 6 -down 3 -forward 2 -up 4 -down 8 -down 9 -down 9 -forward 6 -forward 6 -down 2 -forward 7 -up 2 -forward 4 -down 6 -down 4 -up 1 -up 5 -up 2 -down 7 -down 4 -down 4 -up 7 -forward 8 -up 5 -down 3 -forward 9 -forward 8 -down 5 -forward 2 -up 5 -down 6 -down 8 -forward 2 -forward 7 -up 8 -forward 3 -up 4 -up 8 -forward 8 -forward 2 -forward 8 -down 4 -down 9 -down 1 -down 4 -down 3 -forward 9 -forward 5 -down 8 -forward 7 -down 4 -up 1 -down 4 -down 9 -forward 4 -forward 9 -down 8 -down 4 -down 2 -forward 5 -forward 2 -forward 4 -forward 4 -forward 5 -down 4 -up 4 -up 9 -down 7 -forward 2 -up 5 -forward 3 -down 5 -down 8 -down 8 -down 4 -forward 9 -forward 4 -forward 3 -down 4 -down 4 -down 3 -up 6 -up 2 -forward 4 -up 8 -down 1 -forward 2 -forward 4 -down 7 -forward 7 -forward 3 -down 3 -down 1 -up 6 -up 7 -down 9 -up 7 -forward 9 -forward 6 -forward 4 -down 2 -forward 4 -forward 4 -forward 9 -down 5 -forward 4 -down 9 -up 9 -up 6 -forward 6 -down 6 -forward 4 -down 3 -forward 4 -down 9 -up 1 -down 5 -down 4 -forward 4 -down 7 -down 3 -down 6 -down 5 -forward 4 -forward 3 -down 5 -forward 6 -down 3 -up 2 -down 2 -up 5 -down 4 -forward 9 -forward 1 -down 8 -forward 8 -up 9 -down 3 -down 4 -forward 1 -forward 2 -up 3 -down 9 -up 9 -forward 3 -down 8 -forward 7 -forward 4 -forward 2 -up 9 -forward 5 -forward 7 -forward 9 -up 4 -forward 2 -forward 7 -down 6 -down 2 -up 5 -forward 3 -down 8 -up 9 -forward 1 -forward 9 -down 1 -up 3 -down 5 -up 8 -down 1 -forward 1 -forward 8 -forward 7 -up 9 -forward 6 -forward 5 -forward 9 -down 2 -forward 4 -down 9 -forward 1 -up 4 -forward 2 -down 9 -down 8 -down 5 -up 9 -forward 6 -down 7 -up 8 -forward 9 -up 5 -down 3 -forward 2 -forward 5 -forward 6 -up 5 -forward 6 -down 7 -down 4 -forward 3 -down 8 -forward 9 -down 2 -forward 7 -down 5 -down 2 -forward 5 -forward 9 -forward 3 -up 3 -up 7 -down 4 -forward 3 -up 8 -forward 8 -forward 1 -down 4 -forward 4 -forward 2 -forward 6 -up 1 -down 7 -forward 3 -down 6 -down 7 -forward 4 -forward 5 -up 9 -forward 3 -forward 6 -down 2 -down 1 -forward 5 -up 6 -down 3 -forward 9 -down 8 -up 3 -up 5 -up 6 -down 7 -forward 1 -down 8 -forward 7 -down 3 -forward 1 -up 9 -down 4 -up 9 -forward 9 -down 4 -forward 3 -up 3 -down 1 -up 3 -up 6 -forward 9 -forward 6 -down 9 -down 8 -forward 9 -up 8 -down 8 -forward 4 -forward 3 -forward 2 -down 6 -down 7 -down 1 -down 2 -down 2 -down 5 -forward 8 -forward 2 -down 4 -forward 4 -down 5 -forward 9 -forward 1 -down 9 -up 4 -up 5 -up 9 -forward 5 -down 6 -up 7 -forward 1 -up 8 -up 3 -forward 2 -down 1 -forward 3 -up 8 -up 7 -down 8 -down 9 -forward 7 -down 2 -up 5 -up 8 -down 3 -forward 3 -forward 1 -up 7 -down 3 -up 9 -down 8 -up 5 -forward 1 -down 8 -up 4 -up 7 -down 2 -down 9 -forward 3 -up 4 -forward 4 -down 9 -forward 1 -forward 3 -forward 9 -up 6 -forward 7 -up 8 -forward 5 -down 2 -down 2 -forward 4 -down 6 -forward 7 -forward 9 -up 8 -forward 2 -up 6 -forward 6 -forward 1 -forward 5 -forward 9 -forward 5 -forward 1 -forward 8 -forward 4 -forward 1 -down 2 -forward 3 -forward 8 -forward 6 -forward 1 -down 7 -forward 1 -up 2 -forward 6 -up 2 -up 8 -down 3 -down 9 -forward 2 -forward 3 -up 9 -down 7 -forward 6 -up 3 -forward 4 -forward 1 -up 4 -down 1 -down 3 -down 7 -down 4 -forward 4 -forward 5 -up 6 -down 4 -down 9 -down 2 -forward 4 -down 6 -forward 4 -forward 5 -forward 3 -down 9 -down 3 -up 8 -down 2 -down 8 -up 3 -down 1 -forward 1 -forward 3 -down 8 -up 3 -up 8 -up 1 -down 3 -down 9 -down 9 -down 6 -forward 9 -down 7 -down 7 -down 4 -forward 3 -forward 3 -down 2 -down 6 -up 9 -forward 9 -down 9 -forward 9 -down 8 -down 1 -up 3 -forward 4 -up 2 -forward 8 -up 9 -forward 8 -up 5 -forward 9 -down 7 -forward 9 -forward 7 -down 9 -down 6 -down 5 -forward 5 -forward 1 -forward 8 -up 1 -up 7 -up 5 -forward 3 -down 1 -forward 4 -up 6 -up 3 -down 1 -forward 4 -down 4 -forward 4 -forward 5 -down 2 -down 7 -down 1 -forward 5 -forward 2 -forward 5 -forward 1 -forward 1 -down 7 -up 7 -forward 8 -down 7 -forward 6 -forward 2 -down 9 -forward 2 -down 7 -down 5 -up 1 -down 6 -down 7 -down 6 -down 1 -forward 5 -down 5 -forward 6 -up 9 -forward 9 -up 1 -down 9 -forward 4 -down 6 -down 2 -forward 3 -down 9 -up 6 -forward 1 -down 2 -forward 8 -forward 7 -forward 4 -forward 2 -forward 7 -forward 1 -down 9 -forward 7 -down 4 -up 6 -down 7 -forward 1 -up 8 -forward 5 -up 3 -up 1 -down 6 -forward 9 -up 7 -up 5 -down 2 -up 9 -up 4 -forward 1 -forward 1 -forward 9 -down 3 -down 6 -forward 1 -up 6 -up 9 -down 9 -forward 7 -forward 8 -up 9 -up 4 -down 8 -up 3 -down 8 -forward 9 -down 3 -down 6 -forward 7 -up 4 -forward 7 -down 2 -down 6 -up 4 -down 8 -down 4 -down 2 -up 5 -down 4 -down 2 -forward 9 -up 9 -forward 3 -down 9 -up 1 -down 8 -down 5 -forward 5 -forward 3 -up 3 -forward 9 -down 1 -forward 1 -up 2 -down 9 -forward 5 -forward 6 -up 3 -forward 2 -forward 8 -down 9 -up 7 -down 8 -up 5 -forward 9 -forward 3 -down 7 -forward 9 -down 8 -forward 7 -down 6 -down 6 -down 1 -up 4 -up 1 -forward 3 -down 7 -up 3 -down 3 -forward 5 -down 8 -forward 2 -down 9 -forward 6 -down 6 -down 6 -forward 9 -down 2 -forward 6 -up 7 -down 3 -up 5 -forward 4 -down 7 -forward 8 -forward 9 -forward 7 -down 3 -forward 7 -forward 2 -down 6 -forward 6 -down 2 -down 1 -forward 4 -forward 5 -up 6 -forward 7 -up 3 -up 5 -forward 2 -forward 8 -forward 9 -down 2 -forward 4 -forward 5 -down 7 -up 8 -forward 9 -forward 9 -down 3 -down 1 -forward 2 -forward 2 -down 9 -up 5 -down 5 -up 5 -down 2 -forward 1 -down 2 -down 9 -down 1 -forward 2 -down 9 -down 1 -forward 7 -down 8 -down 5 -down 1 -up 5 -forward 4 -down 8 -down 6 -down 6 -forward 9 -up 7 -up 2 -up 8 -down 1 -forward 9 -down 9 -down 5 -forward 2 -down 7 -up 8 -forward 5 -up 2 -down 1 -down 8 -up 5 -forward 1 -forward 1 -down 7 -up 2 -down 3 -up 6 -down 6 -forward 7 -down 3 -forward 8 -down 1 -down 4 -down 3 -up 8 -down 9 -up 2 -up 5 -forward 2 -forward 5 -forward 8 -up 7 -forward 4 -forward 2 -forward 2 -forward 3 -up 4 -down 3 -forward 7 -forward 9 -forward 7 - - diff --git a/inputs/day3.sample.txt b/inputs/day3.sample.txt deleted file mode 100644 index a0d1556..0000000 --- a/inputs/day3.sample.txt +++ /dev/null @@ -1,13 +0,0 @@ -00100 -11110 -10110 -10111 -10101 -01111 -00111 -11100 -10000 -11001 -00010 -01010 - diff --git a/inputs/day3.txt b/inputs/day3.txt deleted file mode 100644 index 97121a1..0000000 --- a/inputs/day3.txt +++ /dev/null @@ -1,1003 +0,0 @@ -100000101101 -011011010101 -000000111000 -110101110111 -110000001100 -010111000011 -100010110010 -010010011011 -111011100010 -010100010001 -100000010011 -100000111100 -101110000100 -100000001000 -001111100101 -001000000010 -101001110010 -010111011111 -110110111000 -111100110001 -011010110111 -101111101000 -101000000001 -100111100101 -101000001101 -100111010110 -110011101111 -110111011111 -010000111000 -000001100001 -010011101111 -100011001101 -000011000101 -111110101001 -001011000111 -110101111010 -101011000100 -110000101110 -101001110110 -101001100010 -010100110101 -110011110011 -100101010010 -110100111011 -010111010101 -010111101011 -110000100011 -111011000101 -110111000100 -001110111101 -011000011001 -010111111110 -110111010110 -111111101001 -001110001011 -011001010001 -110001000101 -100010010000 -101101011100 -000101010000 -011010001001 -001100001000 -001111101011 -000100010101 -001111001100 -100010001110 -001010000101 -000100101110 -110011010110 -100010100010 -011000001111 -001101010000 -000111011001 -100010101101 -010100011001 -110010010010 -010111011001 -011110111001 -011100100101 -001110010111 -000110011011 -010100101001 -111101110000 -110111111111 -010000011100 -101110000001 -101111101001 -100100111001 -100100010110 -010010110110 -101101001000 -110001011011 -000110010111 -001100111110 -010010011101 -010101000110 -001001001110 -100001110100 -010110011101 -110111000101 -010110100010 -000100111001 -001011110011 -101110101011 -111100100100 -001101111000 -111110110001 -001100100000 -110010100100 -101000001001 -111001101100 -001101001100 -011000000000 -101111000101 -111110100100 -001001111011 -010110010101 -010001010011 -110001010101 -011011000101 -011110101101 -000011011100 -110000000010 -000110110000 -100011101111 -100000110001 -010000100011 -100111101010 -000111100010 -101101000011 -011101001000 -101101100001 -100011010101 -111110011011 -100100010000 -100011000111 -011100001010 -001011000001 -101001001000 -001101011011 -011101011101 -001011101111 -001011100110 -010000111110 -011010001110 -111101111001 -001100101000 -010001000000 -011111011101 -110111110011 -000110111110 -101001110100 -101101110111 -000110010101 -011000101110 -011010000011 -111110011100 -000101100010 -110000001011 -100100001100 -000000101001 -000001100110 -001000100011 -000110001000 -111001100001 -110001111110 -000011000001 -001101001111 -011111110110 -011001001001 -100110001111 -110010100000 -110100001100 -101000101001 -111110100010 -000000101000 -010101001100 -010001110011 -101100001000 -001110110001 -101000100111 -100111011000 -010000011110 -101110011001 -011000101100 -001000011100 -111101101010 -001000111011 -000100011001 -100100100000 -000001000010 -011101010011 -110110011001 -100100111011 -101010011100 -100011000101 -011111001111 -101011110001 -000100110010 -001101001001 -100010100111 -101001000111 -000001010001 -010010000001 -100111011101 -011111011110 -101100011100 -111001101000 -111101000001 -111111010001 -111111100000 -001100001111 -010111100111 -010001110101 -110100111110 -101101001100 -111010110110 -000011011110 -110101101110 -011100011111 -011000111111 -010100011111 -100010011000 -001100110100 -010000111101 -110000010100 -101101001010 -110001101001 -100101001101 -000111110001 -011010100111 -100111100001 -100100001011 -010110101001 -111001111111 -010110110101 -000110111000 -101101001111 -011110110110 -111110001010 -101011001000 -001111111100 -001010101011 -000001000011 -100000111101 -110111010101 -011000111000 -010101010100 -010000010011 -010011100110 -110110011011 -001111000101 -010111001100 -110001101010 -101100111111 -100011001100 -000101011000 -010011111010 -001111110001 -000000001010 -100100011001 -101011111001 -000010110111 -101110110101 -001100100011 -111110111101 -110100000000 -000010100110 -000000110000 -110110101011 -011110001100 -010100010111 -010100001110 -000111010010 -000000011010 -100000000011 -101101000010 -111011001111 -110010011001 -010110011010 -001001101100 -110000100110 -000111110011 -000001101111 -011010001010 -001100000011 -000110100110 -011101010111 -000010010100 -001010010001 -001110011011 -100001111000 -100010100000 -010001001001 -011100001001 -111001110000 -011001011010 -011000111110 -010000010001 -011000111010 -001001111100 -111101011101 -001000111101 -000110100101 -110110101000 -010110011011 -010010011110 -101111000011 -000011011010 -001010110101 -000110101101 -111001010111 -000111101000 -110100000110 -001011011001 -001111010101 -011110000101 -011001111110 -100010011001 -100100101100 -011010000100 -000010111110 -011111111010 -110101000110 -010110000110 -001111111001 -101011010110 -100111111000 -101110101110 -100001111110 -110101010111 -111010110000 -001110100010 -000011010101 -000110000001 -011001110011 -111101000110 -001111100001 -101001110111 -110101100000 -100101010110 -011011111011 -000110000110 -001011000000 -011111110001 -011011000100 -001010111001 -111110110000 -110100100011 -010001100001 -011000011101 -111101111111 -000101111110 -001000011000 -110001001111 -100001111011 -110111110010 -101011110000 -111011111011 -101111011101 -011110110011 -000001111011 -010000110100 -111001000110 -010001001100 -011101010001 -110001000000 -110110100011 -011011001001 -101001101001 -000000010000 -110010010101 -011001000010 -100011101011 -010111110101 -001101110100 -001111111111 -111100111001 -000111000111 -001001000001 -111101001001 -110000000000 -110000011100 -011111111100 -010111000101 -000011000110 -000010010110 -111110010000 -011001100011 -101011100011 -011010010101 -000001001111 -011110011110 -010100010101 -010011101010 -100001101001 -100001101100 -010110101101 -011001111101 -010010001000 -011111101001 -110010110111 -111010110111 -000110101110 -111110001100 -010100011010 -110101100100 -000100110000 -110101010110 -001101010111 -100101101100 -010010010011 -010001101001 -111000011000 -111001011010 -101101000001 -110111110110 -111100001001 -010011000011 -110110010100 -110011110100 -110010011000 -111101100001 -101100110001 -000100000010 -101100100111 -001101111110 -100110110010 -000000010100 -010010000011 -001000101111 -010110011001 -110001011111 -001011110010 -110110100110 -001000111010 -110010000110 -101110001100 -011101011000 -101100101011 -100010011010 -110000010000 -001111111010 -000001000100 -100010101000 -000100111010 -111100111010 -011100000001 -101101010001 -010000110001 -000111011101 -110000001010 -001101000111 -110100101000 -010101001110 -110000101000 -100110111011 -000100010000 -101100000011 -111011110110 -100000101110 -000011101100 -001100011100 -000010011011 -101100010110 -101100111101 -110001110100 -010111010011 -111100011100 -101101000101 -010100101101 -010000110010 -110110100100 -110110111110 -011011000010 -100100100110 -011100110100 -000010111011 -111000100001 -100110100001 -011111111101 -111111001011 -111110011010 -110100010011 -100111010011 -100110111001 -010101100010 -100101110000 -100001110111 -101110101111 -100010010001 -101000111111 -001010101001 -100101011010 -011010011011 -011011111100 -100011000110 -111011110101 -001000100100 -011010011101 -011010101011 -010101111010 -000001011100 -110100100000 -100110101001 -000010001011 -100110111110 -011000100111 -100111001111 -100100110100 -010110101010 -000010110000 -011101110100 -001011101100 -110111000001 -011101001101 -011101111010 -000011100001 -010100001000 -100110101011 -101000100101 -011000110000 -100110100010 -010001101011 -100011010110 -100000001010 -110100110101 -001110110100 -001101001000 -111111101011 -110001111000 -011100010011 -101000101011 -100100010001 -100100110110 -001000001111 -001001011101 -000101100001 -001010000010 -011001111100 -100000100000 -010110001111 -101011111101 -111001000101 -100100011011 -010101001000 -101110101101 -110010111010 -101101010010 -111001100101 -111011001101 -100010000011 -001100100101 -111010100001 -011011101101 -100001111101 -111010101001 -111001111101 -100110011100 -101101110100 -100110111010 -011111000110 -101010001101 -001111011101 -000100011000 -111001011001 -100001001110 -111000100101 -110110001101 -010110000000 -000110100100 -000000011100 -110001111011 -010010011001 -001000111001 -100101100111 -000110001101 -000011011000 -001011010010 -001110111100 -100000110111 -100010110101 -110111001100 -010101110000 -000111100001 -110110001001 -001011111100 -010110111010 -010100010000 -010100011011 -011011111111 -110000110101 -011101110011 -101101010110 -111110111010 -001000001110 -010001001010 -000000001011 -111010011000 -011110010100 -010110100111 -001010011000 -001011110000 -001001111101 -001101011010 -011011110100 -101011101011 -100110111100 -110000111110 -100110111000 -101000001011 -010011110001 -110100010010 -001001011110 -011101101101 -000001101110 -000010111111 -101001100001 -101000111110 -001001101101 -010000100000 -100110011101 -011010110100 -010111000100 -001110001100 -100111010101 -001111101111 -110001110001 -000110010011 -010110110001 -100110011010 -110001010100 -100010000100 -010101101110 -101100000010 -000101101100 -000110001110 -101000111100 -110110011000 -011011100111 -011110100001 -100011111001 -101010010010 -001000111111 -010111001110 -100011101001 -011110011011 -111011100011 -000000000111 -110101010001 -101001010011 -110110101111 -010111111111 -100111011110 -010110111011 -110111010010 -110110001100 -110000001111 -010011001001 -101101110011 -001001010000 -010110011000 -101000101010 -000110100000 -000010000000 -001000110110 -110011101100 -101101100110 -101000001111 -111000010010 -111100001011 -001100001110 -011110110001 -111010001100 -011100010100 -110001000110 -110100100110 -111111001110 -011101100011 -001100011111 -011110110101 -000110001010 -110101110110 -011101000010 -110000110001 -110011100111 -010000001101 -111001010110 -101001111111 -111101000000 -001111000111 -011011100001 -100100110111 -001100111101 -110011101001 -100010111001 -001100000001 -001010010010 -011000110110 -100110110001 -110010000111 -101110001001 -101110100111 -101111011011 -011001101000 -100011110111 -101101010011 -010000010100 -011100000010 -100011001111 -110100101010 -111001111100 -110110110110 -001100110010 -101010000000 -010011111111 -100110010001 -010011110011 -110101011011 -111101001110 -110001111010 -100101100011 -110100011110 -110001100100 -010001100010 -010010001010 -010000110110 -111000101011 -110011111001 -101101011010 -001010110011 -110011110010 -010111110100 -110001011000 -111110010111 -100100111101 -011001110001 -100010000110 -111000111000 -101111110101 -000101000010 -010110101100 -010111111101 -011001000101 -100101010011 -111010111011 -001101011111 -111010101010 -110100000010 -110100101011 -111001001110 -110001100001 -111010001001 -110011001101 -010011011110 -100001101011 -011010000110 -001100101110 -000000010010 -111000100110 -000011111110 -111000011111 -111011110111 -000000111101 -101000000000 -111010100101 -110011011000 -001011010100 -010001100011 -011101101111 -010100100010 -001010001101 -000000110100 -011110111110 -011101010100 -111110110110 -111011101111 -111110110111 -101110100010 -111011100000 -111111110010 -101010011011 -011010100101 -001011011110 -111100111101 -111110010011 -010000000111 -000101110010 -001110010011 -010010000100 -001100000110 -110101001010 -011111111011 -100011001011 -001100000010 -110110100010 -101101101111 -011000011000 -100010110110 -111100011101 -010101011100 -100110110000 -001001110010 -111110010101 -011110100111 -111100000000 -100011011000 -101001010010 -000000100000 -110100001101 -011100101111 -100110010101 -100110000111 -000111101011 -110110110111 -011001111011 -101100110111 -101001110101 -000001000101 -111100110011 -111111000100 -000001001001 -010111010110 -001101000011 -011010100100 -111001110101 -101111111001 -101000110101 -100001010110 -101100010001 -100110001101 -101110011100 -011001000110 -110011001011 -011001000011 -101000111000 -110001001110 -011110011001 -011110100100 -010010100000 -110010100001 -010010100111 -010110100100 -001000110000 -101111110100 -011010011001 -000101111000 -000000111010 -111100101100 -110101110101 -111110101010 -001001110111 -100001000110 -101111000111 -110101110001 -100100100001 -011110010011 -000100001101 -100000010110 -100011100001 -111100110010 -110000101011 -110010110010 -100000101000 -001000000011 -101110000111 -110001010110 -111010111110 -010010100100 -001010101000 -101010010110 -001011010110 -101100100011 -111011011001 -011101011001 -010111000000 -010100011110 -001011100011 -011100110111 -000111010011 -001101001011 -110100111100 -000000000001 -001001011001 -000000010001 -101100010111 -111011100100 -110000111100 -001101011100 -111110100111 -110100101001 -000010111001 -100110110101 -011100110001 -100010111000 -010000101101 -101101001001 -000100110111 -010010101100 -111010100011 -101010011101 -110000100000 -000110011110 -000110111111 -111111110100 -010011100010 -101001110001 -011000100101 -011111010111 -110101001001 -001111010011 -111110001001 -000001110110 -101010111000 -111011100001 -100000000010 -100100011000 -110100111000 -011000101011 -010100011100 -111010010101 -000101001101 -000011010001 -110000000001 -010010100010 -000010101010 -000000001001 -111000100111 -101010111100 -000000110110 -000010001000 -101011011110 -001110001101 -010011111101 -101110110111 -010011001101 -010001000100 -101100011001 -101010100011 -011100100000 -001011001101 -100111011001 -010010100011 -011100001110 -011001110000 -111001110011 -000100001000 -001101011001 -111111001101 -100011101000 -111001011101 -000111001100 -100011110011 -110111010001 -111100101011 -101010101110 -100100010111 -010101011111 -001111011001 -101010101111 -100111001101 -011011101111 -000000101100 -011100011011 -110010000011 -001000001010 -010000000011 -001011011010 -110011000101 -010100010100 -110110000111 -011000011100 -110001110111 -101001111101 -011011001110 -100000011110 -001111001110 -100010100101 -011010011111 -001110011111 -100100010101 -000011111101 -101101111111 -011000100010 -011100000101 -011111000001 -010010010110 -001010111101 -011110000010 -011111101111 -010100101100 -001010101100 -000100100111 -011111100100 -011001010011 -011000010001 -101001100101 -110100110010 -101111011001 -011111101110 - - - diff --git a/inputs/day4.sample.txt b/inputs/day4.sample.txt deleted file mode 100644 index 49d17bc..0000000 --- a/inputs/day4.sample.txt +++ /dev/null @@ -1,19 +0,0 @@ -7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1 - -22 13 17 11 0 - 8 2 23 4 24 -21 9 14 16 7 - 6 10 3 18 5 - 1 12 20 15 19 - - 3 15 0 2 22 - 9 18 13 17 5 -19 8 7 25 23 -20 11 10 24 4 -14 21 16 12 6 - -14 21 17 24 4 -10 16 15 9 19 -18 8 23 26 20 -22 11 13 6 5 - 2 0 12 3 7 \ No newline at end of file diff --git a/inputs/day4.txt b/inputs/day4.txt deleted file mode 100644 index 3ed817d..0000000 --- a/inputs/day4.txt +++ /dev/null @@ -1,602 +0,0 @@ -50,68,2,1,69,32,87,10,31,21,78,23,62,98,16,99,65,35,27,96,66,26,74,72,45,52,81,60,38,57,54,19,18,77,71,29,51,41,22,6,58,5,42,92,85,64,94,12,83,11,17,14,37,36,59,33,0,93,34,70,97,7,76,20,3,88,43,47,8,79,80,63,9,25,56,75,15,4,82,67,39,30,89,86,46,90,48,73,91,55,95,28,49,61,44,84,40,53,13,24 - -38 80 23 60 82 -25 35 28 47 39 -40 0 30 48 76 -32 41 49 69 4 -13 42 89 20 12 - -76 89 13 5 98 -87 48 2 59 20 -37 88 41 24 57 -16 85 31 73 95 -70 11 93 30 27 - -81 55 41 85 33 -67 97 71 90 52 -19 3 79 66 14 -49 96 94 26 25 -60 46 51 82 9 - -33 60 26 83 21 -91 7 39 19 41 -88 9 82 69 29 -93 79 12 34 11 -43 65 64 54 20 - -55 75 71 30 14 -42 67 3 73 13 -78 72 51 96 99 -95 10 84 0 31 -91 47 66 33 34 - -11 72 55 52 79 -94 34 53 61 40 - 8 31 49 68 71 -37 45 15 78 57 -21 88 65 24 56 - -65 59 4 41 69 -44 61 23 46 42 -10 68 37 54 25 -82 2 13 71 93 -87 90 89 57 74 - -75 70 40 68 30 - 5 28 58 52 19 -80 96 53 43 63 -33 60 66 64 56 -88 74 9 8 36 - -58 38 46 42 89 -98 85 17 51 2 -28 92 22 64 53 -27 97 43 10 54 -75 56 71 67 79 - -75 86 11 4 39 -14 80 41 26 2 -97 18 96 5 28 -44 68 54 88 35 -57 98 74 21 19 - -45 16 4 23 63 -44 37 99 21 85 - 2 82 58 10 84 - 0 47 53 33 20 -93 19 39 72 8 - - 5 25 24 32 44 -59 37 95 88 89 -68 69 8 96 99 -16 0 7 92 94 -65 15 55 66 31 - -65 14 92 66 69 -43 45 30 8 26 -87 47 18 82 76 -33 80 67 35 22 -38 62 84 96 52 - -39 45 15 57 53 -35 47 70 4 0 -50 17 65 78 3 - 2 7 28 36 42 -99 48 27 83 72 - -52 47 81 44 92 -35 86 36 71 29 -57 15 1 95 7 -68 77 6 3 31 -20 13 58 89 93 - - 2 56 27 4 64 -69 91 88 58 15 -10 92 61 63 6 -84 93 79 25 90 -16 31 55 46 53 - -23 42 93 12 30 -47 99 38 0 14 - 6 90 72 70 21 -62 61 96 87 22 - 5 55 51 28 17 - -42 12 58 95 92 -67 89 88 87 47 -32 72 11 83 97 -55 16 66 57 29 -54 64 96 2 36 - -72 47 69 68 12 -23 4 37 79 13 -52 5 59 58 70 -44 3 21 93 76 -97 0 35 9 71 - -87 49 55 18 94 -68 32 99 50 37 -15 3 80 90 42 -83 12 41 21 58 -91 89 74 45 51 - - 5 60 13 46 47 -18 54 33 26 0 -28 43 83 31 20 -12 75 34 36 4 -76 2 80 70 79 - -16 66 25 97 20 -52 23 80 74 90 -31 81 95 28 36 -99 8 50 57 98 -11 0 30 35 39 - -12 33 36 90 30 -59 66 77 25 46 -88 24 4 41 50 -18 52 37 75 43 -68 49 56 84 87 - -27 80 51 25 93 - 4 41 61 30 67 -68 47 15 20 50 -78 66 97 54 84 -35 1 23 89 14 - -82 51 38 80 75 -35 79 43 54 3 -73 13 23 25 59 -27 64 47 62 66 -83 0 7 4 20 - -67 2 72 23 81 -46 1 26 85 25 -31 65 52 16 14 -15 4 91 59 19 -83 60 10 89 90 - -62 63 13 96 6 -24 91 27 29 81 -38 47 50 26 36 -79 73 22 45 58 -15 54 76 46 70 - -42 69 91 34 9 -96 28 61 41 56 -15 5 59 47 50 -79 27 4 0 21 -51 44 26 95 32 - - 9 38 6 58 99 -89 69 96 33 73 -26 20 32 12 27 -67 29 79 81 59 -66 45 24 36 68 - -99 52 1 66 64 -15 76 36 75 83 -48 7 95 71 6 -31 28 65 14 69 -10 38 46 74 96 - -15 12 59 98 54 -18 75 48 65 96 -57 38 2 86 5 - 0 87 93 23 94 -50 29 13 91 14 - -55 83 80 45 52 -44 31 64 25 71 -15 85 50 91 54 - 9 29 78 74 23 -73 82 75 58 98 - -63 56 29 80 25 -53 52 91 18 24 -73 83 7 11 87 -79 47 41 59 78 -13 51 9 21 20 - -28 35 98 80 63 -30 60 34 99 32 -11 61 15 73 24 -55 74 42 38 26 -22 17 43 75 71 - -97 53 65 75 51 -96 74 81 69 71 -76 5 49 60 41 -86 64 90 92 30 - 6 95 85 93 40 - -65 90 20 4 82 -41 17 48 27 77 -84 60 94 15 10 -55 64 49 35 16 -36 8 23 58 59 - -74 19 70 35 82 -77 21 84 50 25 -18 61 12 28 54 - 0 3 72 85 87 -78 4 57 38 16 - - 1 63 0 38 23 -31 76 73 22 35 - 8 72 44 25 45 -70 33 29 37 21 -49 50 85 57 61 - -37 50 51 12 93 -83 80 87 6 88 - 4 95 62 20 41 -78 56 76 49 11 -72 7 52 14 28 - -72 34 61 19 68 - 2 67 88 7 55 - 8 11 20 85 47 -42 54 46 48 64 -38 84 3 76 13 - -32 34 55 90 64 -16 1 94 48 91 -96 45 27 58 63 -98 20 43 73 10 -87 52 49 8 24 - - 6 9 31 37 29 -45 55 12 23 67 -86 0 81 49 1 -18 25 7 15 50 -32 34 90 99 69 - -38 73 44 17 52 - 7 81 85 62 98 -68 66 86 21 76 -24 94 50 46 67 -36 54 55 96 8 - -90 39 51 5 99 -33 20 14 1 81 -94 74 38 95 35 -37 96 62 57 84 -65 11 55 46 69 - -26 29 75 3 55 -33 83 68 94 47 -37 41 85 50 57 -76 39 5 81 20 -18 24 92 71 87 - -89 92 39 70 59 -40 35 23 62 47 - 7 16 22 34 71 -15 97 86 91 3 -54 26 56 44 29 - -93 91 66 8 78 -60 48 51 6 57 -69 35 87 65 73 -53 32 94 49 89 -88 34 23 84 59 - -41 57 7 37 0 -79 2 86 82 9 -25 69 14 78 33 - 4 28 85 8 61 -97 72 88 1 54 - -24 84 65 28 60 -99 86 53 93 22 -17 67 10 29 54 -27 0 96 20 36 -25 3 62 89 33 - -10 28 78 82 96 -21 11 51 27 97 -41 63 72 58 89 - 7 0 76 67 19 -52 38 87 18 13 - -73 35 49 44 79 -76 47 94 53 82 -11 61 88 86 83 -81 60 33 99 72 -84 26 40 8 54 - -31 50 40 9 80 - 6 59 51 55 12 - 2 34 93 38 13 -11 82 21 20 72 -89 83 60 53 79 - -42 54 52 13 85 -99 76 87 44 26 -36 50 0 59 82 -10 73 29 72 27 -79 31 64 51 91 - -68 49 65 94 3 -46 2 6 78 93 -63 31 53 27 60 -21 67 99 22 95 -24 9 18 76 33 - -31 95 91 18 37 -83 2 78 75 8 -77 33 9 12 22 -24 50 80 93 39 -21 47 35 70 94 - - 2 44 55 60 89 -45 18 46 72 11 -47 83 56 52 65 - 4 19 21 14 34 -25 80 16 48 36 - -53 92 71 14 95 -98 51 54 15 82 -48 87 99 46 83 -42 86 11 43 18 -72 28 37 93 78 - -84 79 30 28 98 -33 80 65 82 25 -35 29 46 13 60 -90 69 52 78 64 -55 94 0 48 56 - -42 71 26 93 82 -47 36 31 89 69 -65 5 41 1 32 -74 17 64 11 68 -23 54 61 99 37 - -97 4 22 2 38 - 8 17 79 99 20 -44 80 28 57 32 -18 86 94 77 70 -11 93 75 49 3 - -80 48 85 89 23 -30 50 94 46 18 -59 9 81 42 8 -40 15 90 26 31 - 0 51 39 36 65 - -93 63 15 87 25 -90 44 65 23 66 -22 27 20 17 45 -42 62 14 0 57 -46 4 10 35 96 - -44 43 60 80 86 -48 45 78 40 19 -54 98 32 17 69 -25 11 14 34 63 -26 20 59 0 74 - - 0 59 87 45 30 -33 36 1 38 43 -67 37 74 2 70 -85 22 44 56 23 -68 24 75 92 10 - -90 83 87 85 67 -95 24 94 6 40 -77 15 52 68 66 -22 20 38 29 79 - 3 10 62 13 16 - - 9 49 87 13 18 -85 39 77 82 86 -96 44 12 72 78 -59 81 21 94 88 -17 93 23 56 45 - -57 53 80 98 22 -23 45 5 26 77 - 6 28 4 25 83 -59 55 58 75 92 -72 36 99 82 97 - -74 33 53 49 86 - 9 50 66 7 78 -29 36 71 26 87 -54 82 84 47 46 -39 30 56 22 27 - - 6 49 84 14 43 -41 44 29 18 79 -93 56 77 64 26 -15 13 96 9 80 -50 54 75 99 24 - -58 49 91 69 63 -16 55 19 18 84 -13 79 42 56 0 -36 27 60 74 53 -66 61 62 54 15 - -85 22 43 79 90 -77 21 75 66 15 -25 68 69 35 78 -88 3 18 50 7 - 8 27 52 76 72 - -12 56 0 45 33 -13 81 25 24 41 -80 65 9 32 95 -18 44 36 68 99 -78 29 17 38 43 - -57 41 77 5 10 -98 30 70 23 46 - 9 19 11 34 74 -43 33 32 95 14 -65 8 68 50 88 - -49 93 95 1 55 -57 92 58 0 90 -69 15 23 62 56 -54 37 6 96 11 -26 80 70 79 88 - -46 76 82 77 19 - 4 50 83 88 69 -67 44 59 25 21 -40 12 90 33 24 -63 78 9 71 86 - -74 82 88 25 15 -61 83 7 6 98 -41 9 84 13 72 -78 26 8 60 20 - 4 58 29 93 11 - -46 60 44 55 63 -91 19 58 56 85 - 2 32 67 26 41 -43 61 25 73 21 -86 14 71 9 6 - -38 72 58 17 77 -25 79 78 5 67 -81 70 50 85 73 - 7 69 14 80 6 -93 51 60 42 29 - -82 28 99 66 27 -35 97 91 90 80 -87 7 55 78 17 -83 36 98 37 72 -58 43 51 49 56 - -93 72 61 19 74 -81 44 27 25 12 -96 10 26 69 99 -94 23 63 52 8 -71 95 17 54 70 - -28 21 33 5 26 -45 86 63 92 69 -77 43 99 20 56 -89 40 36 30 53 -41 32 94 17 58 - -83 63 92 93 51 -11 86 67 3 61 -81 50 16 90 89 - 0 75 31 22 77 -82 74 37 57 39 - -49 87 33 0 13 -54 38 71 85 32 -79 84 89 4 61 -34 14 69 47 3 -35 12 59 1 55 - -95 37 72 73 85 - 0 69 50 75 55 -51 24 90 71 78 -66 86 23 40 6 -34 27 43 14 65 - -46 11 41 86 21 -31 82 38 23 53 -66 52 39 6 1 -16 95 36 0 69 -28 54 91 99 60 - -32 80 4 3 97 -26 63 89 52 22 -25 91 43 96 68 -71 42 78 34 56 - 0 82 5 69 19 - -69 60 58 19 1 -91 59 54 52 11 -43 46 27 2 7 -89 57 42 88 31 -93 94 37 96 29 - -72 8 29 64 75 -16 45 0 39 46 -77 6 88 40 27 -92 78 21 63 51 -24 12 90 94 47 - - 5 41 63 42 73 -37 80 91 18 50 - 3 24 53 17 49 - 6 86 30 46 69 -16 97 75 88 93 - -97 60 66 77 74 - 1 72 41 69 94 -30 8 98 33 43 -99 63 95 91 11 -56 65 70 12 0 - -47 39 37 79 48 -60 31 19 10 53 -14 36 25 38 2 -76 89 32 1 20 -65 72 91 71 66 - -87 72 13 30 75 -50 80 97 17 63 -99 9 53 69 86 -20 57 92 66 21 -31 42 4 98 0 - -38 89 15 91 95 -94 20 13 64 25 -37 9 98 10 44 -28 97 5 78 32 -99 41 82 22 87 - -97 16 42 87 15 -19 70 82 66 30 -79 5 67 75 91 -27 26 56 63 17 -51 99 13 59 35 - -85 33 3 34 5 -72 74 88 81 10 - 4 64 61 59 8 -78 42 90 27 80 -14 12 52 76 1 - -67 92 61 33 60 -82 91 85 76 56 -39 37 6 65 63 -32 51 45 14 98 -73 17 8 46 70 - -97 75 33 9 23 -85 27 15 3 26 - 4 34 36 10 77 -68 82 37 32 86 -58 88 95 87 99 - -70 19 67 42 31 -81 6 10 95 18 -85 50 90 25 56 -16 94 7 78 24 -59 88 93 77 4 - -92 25 16 75 67 -97 71 53 32 90 - 6 70 69 55 40 -77 20 72 84 73 -34 35 38 98 76 - -24 96 27 39 3 -54 26 12 65 60 -67 62 43 98 14 -15 95 2 82 33 -64 17 86 0 63 - diff --git a/inputs/input.txt b/inputs/input.txt new file mode 100644 index 0000000..6ebb112 --- /dev/null +++ b/inputs/input.txt @@ -0,0 +1,503 @@ +62,963 -> 844,181 +58,85 -> 917,944 +137,76 -> 137,347 +453,125 -> 347,19 +178,65 -> 977,864 +447,360 -> 62,745 +723,326 -> 156,893 +47,497 -> 107,437 +387,491 -> 340,491 +58,477 -> 283,252 +86,351 -> 562,827 +215,172 -> 539,172 +496,801 -> 496,63 +546,412 -> 232,98 +621,807 -> 481,807 +471,20 -> 618,20 +175,283 -> 175,467 +19,283 -> 19,290 +159,137 -> 159,11 +593,181 -> 543,181 +167,976 -> 929,976 +730,782 -> 959,782 +713,285 -> 713,880 +583,144 -> 583,296 +39,61 -> 961,983 +778,81 -> 604,81 +70,560 -> 70,889 +85,129 -> 666,710 +689,688 -> 632,688 +76,52 -> 903,879 +510,543 -> 22,55 +510,935 -> 470,935 +780,357 -> 780,602 +440,349 -> 710,79 +934,801 -> 412,801 +979,25 -> 35,969 +379,527 -> 379,76 +243,524 -> 243,664 +534,945 -> 11,422 +198,367 -> 224,367 +871,451 -> 456,451 +226,231 -> 939,231 +686,354 -> 740,300 +543,68 -> 340,68 +506,160 -> 319,347 +177,25 -> 177,603 +337,450 -> 724,450 +421,519 -> 676,519 +858,976 -> 179,297 +236,222 -> 236,250 +254,242 -> 254,626 +859,243 -> 23,243 +89,982 -> 979,92 +58,758 -> 101,801 +930,483 -> 587,826 +667,717 -> 667,762 +512,816 -> 845,816 +17,501 -> 17,760 +345,61 -> 847,61 +531,840 -> 618,840 +67,748 -> 262,748 +548,461 -> 163,846 +934,142 -> 169,907 +119,931 -> 580,470 +769,916 -> 457,604 +587,458 -> 93,458 +109,850 -> 768,191 +225,129 -> 160,64 +544,163 -> 544,476 +304,594 -> 61,351 +510,396 -> 510,741 +772,210 -> 772,889 +867,415 -> 721,269 +466,266 -> 466,44 +305,609 -> 305,237 +563,962 -> 451,962 +566,402 -> 28,940 +889,717 -> 891,717 +754,545 -> 313,545 +930,976 -> 209,255 +70,911 -> 692,289 +737,37 -> 958,37 +652,566 -> 720,634 +776,551 -> 370,957 +484,476 -> 820,476 +119,420 -> 639,420 +394,964 -> 394,221 +340,767 -> 964,143 +715,289 -> 481,55 +236,389 -> 826,389 +747,642 -> 33,642 +583,351 -> 244,690 +609,17 -> 609,680 +460,365 -> 668,365 +519,180 -> 929,590 +206,45 -> 782,45 +507,185 -> 386,306 +16,12 -> 982,978 +31,348 -> 320,348 +54,975 -> 947,82 +844,714 -> 870,714 +677,965 -> 677,699 +387,699 -> 387,26 +329,479 -> 189,479 +970,708 -> 538,708 +565,434 -> 565,623 +748,737 -> 748,497 +255,984 -> 255,600 +146,59 -> 932,845 +191,929 -> 423,929 +316,409 -> 802,409 +208,560 -> 559,209 +885,237 -> 135,987 +477,486 -> 260,486 +845,59 -> 845,811 +225,369 -> 162,369 +858,678 -> 858,362 +162,972 -> 27,972 +828,26 -> 283,571 +670,48 -> 114,604 +732,487 -> 620,487 +570,575 -> 14,19 +113,203 -> 162,154 +374,702 -> 374,452 +850,575 -> 535,575 +841,133 -> 841,474 +976,960 -> 642,960 +177,428 -> 177,246 +969,289 -> 589,289 +787,842 -> 731,786 +743,709 -> 336,709 +15,914 -> 299,630 +863,952 -> 17,952 +586,889 -> 586,512 +442,128 -> 436,128 +633,367 -> 79,921 +21,990 -> 257,990 +829,297 -> 829,103 +975,633 -> 879,633 +946,887 -> 72,13 +531,720 -> 123,312 +84,954 -> 815,223 +989,982 -> 257,982 +669,417 -> 928,158 +128,935 -> 87,976 +692,850 -> 191,850 +686,856 -> 686,259 +135,396 -> 473,58 +837,206 -> 629,206 +751,227 -> 751,900 +190,617 -> 190,502 +850,265 -> 254,265 +229,587 -> 325,491 +980,747 -> 465,232 +54,375 -> 439,375 +737,844 -> 711,844 +533,219 -> 123,629 +232,805 -> 232,798 +911,441 -> 911,160 +80,294 -> 80,527 +880,533 -> 590,533 +674,84 -> 674,670 +956,440 -> 554,842 +24,939 -> 890,73 +516,183 -> 145,554 +71,584 -> 71,766 +629,173 -> 643,187 +34,360 -> 639,965 +983,871 -> 983,682 +986,590 -> 986,327 +769,986 -> 130,986 +392,192 -> 70,192 +577,379 -> 635,379 +243,664 -> 162,664 +273,987 -> 273,192 +251,548 -> 558,855 +989,736 -> 989,611 +400,697 -> 134,431 +646,923 -> 646,841 +768,782 -> 386,782 +93,973 -> 939,127 +489,91 -> 489,551 +313,683 -> 248,748 +986,61 -> 201,846 +322,413 -> 737,413 +567,716 -> 567,614 +198,624 -> 439,624 +402,198 -> 147,453 +897,352 -> 897,298 +773,379 -> 773,19 +373,256 -> 931,814 +690,796 -> 543,796 +884,368 -> 464,368 +136,864 -> 622,378 +458,569 -> 458,254 +491,462 -> 491,412 +558,340 -> 73,340 +980,52 -> 980,605 +126,609 -> 390,345 +437,659 -> 17,659 +53,928 -> 982,928 +389,591 -> 389,832 +464,46 -> 464,754 +646,680 -> 646,988 +919,159 -> 109,969 +334,75 -> 219,75 +976,639 -> 976,685 +264,773 -> 128,773 +787,771 -> 699,771 +415,124 -> 549,124 +468,71 -> 468,701 +815,121 -> 797,121 +619,95 -> 610,104 +886,294 -> 120,294 +148,136 -> 148,314 +816,971 -> 454,971 +888,733 -> 431,733 +59,836 -> 840,55 +52,965 -> 962,55 +989,982 -> 19,12 +697,818 -> 185,306 +883,638 -> 481,638 +429,285 -> 170,26 +516,507 -> 516,301 +767,102 -> 61,808 +764,793 -> 209,238 +568,411 -> 261,718 +706,622 -> 685,622 +226,110 -> 790,674 +544,429 -> 544,334 +794,588 -> 794,792 +804,738 -> 782,738 +370,552 -> 370,189 +960,275 -> 644,275 +133,896 -> 686,896 +12,986 -> 987,11 +978,973 -> 69,64 +92,465 -> 62,465 +733,57 -> 18,57 +110,845 -> 110,272 +123,935 -> 123,499 +37,960 -> 986,11 +332,209 -> 344,221 +237,279 -> 349,279 +875,635 -> 875,420 +552,174 -> 552,635 +10,93 -> 853,936 +909,82 -> 909,926 +511,743 -> 511,830 +223,974 -> 223,124 +829,543 -> 11,543 +307,671 -> 206,570 +126,72 -> 956,72 +528,903 -> 528,223 +644,524 -> 952,216 +734,324 -> 734,105 +225,558 -> 225,159 +667,122 -> 667,64 +582,93 -> 582,509 +817,932 -> 727,932 +898,18 -> 79,837 +12,987 -> 986,13 +426,79 -> 722,79 +496,884 -> 906,884 +953,183 -> 953,508 +360,881 -> 975,881 +765,862 -> 579,862 +14,55 -> 14,560 +454,333 -> 290,333 +19,479 -> 91,551 +696,41 -> 56,41 +329,203 -> 812,203 +498,559 -> 498,636 +822,852 -> 614,852 +410,370 -> 410,624 +829,415 -> 805,415 +775,980 -> 204,980 +705,780 -> 116,191 +49,30 -> 988,969 +324,199 -> 554,199 +727,572 -> 157,572 +212,693 -> 93,693 +886,105 -> 152,105 +239,834 -> 958,115 +623,920 -> 623,523 +389,225 -> 106,508 +443,426 -> 443,108 +129,770 -> 858,41 +906,559 -> 392,559 +44,793 -> 774,793 +693,275 -> 693,738 +623,434 -> 184,873 +774,623 -> 774,895 +140,187 -> 140,238 +247,503 -> 45,301 +575,365 -> 950,365 +101,120 -> 646,120 +42,682 -> 649,75 +749,767 -> 516,534 +551,53 -> 73,531 +15,26 -> 885,896 +749,15 -> 235,529 +548,169 -> 784,405 +458,564 -> 962,564 +663,873 -> 678,873 +349,773 -> 349,927 +777,180 -> 637,320 +238,306 -> 844,912 +927,818 -> 652,543 +404,673 -> 952,125 +750,297 -> 18,297 +926,958 -> 926,669 +767,843 -> 767,833 +151,136 -> 234,219 +927,789 -> 468,330 +593,361 -> 593,447 +48,14 -> 954,920 +282,972 -> 790,972 +537,446 -> 202,446 +847,125 -> 357,615 +667,609 -> 299,609 +820,987 -> 359,987 +342,889 -> 595,889 +692,414 -> 239,414 +916,935 -> 70,89 +289,884 -> 289,790 +264,562 -> 373,562 +850,24 -> 126,748 +877,159 -> 213,823 +702,607 -> 702,454 +432,883 -> 432,260 +530,387 -> 229,387 +783,39 -> 783,933 +757,775 -> 757,81 +416,376 -> 474,376 +220,462 -> 220,824 +438,317 -> 421,317 +403,312 -> 866,312 +902,923 -> 204,923 +345,33 -> 819,33 +376,521 -> 549,521 +172,320 -> 129,277 +25,975 -> 976,24 +730,108 -> 465,373 +607,468 -> 737,598 +376,55 -> 672,55 +807,113 -> 974,113 +345,804 -> 695,454 +687,921 -> 650,884 +262,743 -> 262,753 +889,734 -> 499,344 +424,727 -> 909,242 +100,957 -> 100,832 +558,958 -> 376,958 +422,473 -> 539,356 +424,463 -> 158,463 +329,543 -> 816,543 +300,74 -> 362,136 +620,691 -> 620,312 +215,727 -> 360,582 +692,116 -> 618,116 +945,722 -> 945,560 +851,83 -> 450,484 +692,424 -> 254,862 +160,214 -> 160,405 +937,101 -> 854,184 +989,14 -> 18,985 +256,275 -> 828,847 +797,748 -> 509,748 +521,148 -> 422,148 +85,549 -> 85,807 +689,688 -> 443,442 +750,664 -> 648,562 +51,616 -> 51,54 +925,272 -> 925,696 +284,560 -> 369,560 +509,685 -> 509,559 +985,157 -> 273,869 +570,765 -> 614,721 +62,981 -> 985,58 +289,496 -> 289,104 +752,232 -> 692,292 +82,948 -> 683,948 +15,20 -> 984,989 +252,950 -> 252,132 +930,659 -> 614,659 +552,449 -> 798,695 +850,894 -> 342,386 +412,465 -> 412,383 +249,616 -> 351,718 +759,289 -> 613,289 +673,347 -> 673,842 +749,493 -> 449,493 +378,468 -> 378,674 +914,924 -> 890,900 +514,56 -> 606,56 +855,233 -> 979,233 +170,756 -> 170,961 +450,601 -> 450,87 +868,192 -> 125,935 +702,137 -> 231,608 +109,36 -> 632,36 +511,472 -> 511,945 +208,884 -> 923,169 +831,66 -> 146,66 +435,133 -> 884,133 +900,418 -> 916,418 +957,104 -> 127,104 +608,892 -> 608,40 +554,782 -> 55,782 +305,260 -> 305,712 +942,143 -> 226,859 +823,778 -> 317,778 +228,415 -> 228,445 +313,505 -> 669,505 +43,539 -> 43,187 +14,84 -> 743,813 +687,101 -> 277,101 +549,977 -> 549,392 +21,637 -> 214,637 +950,961 -> 104,115 +778,831 -> 958,831 +214,765 -> 579,765 +586,42 -> 89,42 +505,950 -> 505,115 +144,734 -> 144,813 +11,349 -> 11,681 +49,336 -> 99,386 +560,187 -> 560,551 +678,602 -> 761,519 +131,515 -> 411,795 +957,835 -> 957,106 +948,852 -> 948,990 +541,946 -> 541,405 +355,147 -> 724,516 +644,476 -> 625,476 +789,818 -> 207,236 +259,57 -> 431,57 +441,375 -> 441,34 +774,121 -> 882,13 +655,397 -> 188,864 +467,432 -> 235,200 +268,121 -> 268,842 +975,14 -> 11,978 +124,904 -> 935,93 +401,582 -> 420,582 +170,700 -> 523,347 +20,681 -> 20,174 +420,939 -> 173,692 +61,933 -> 956,38 +686,458 -> 686,939 +780,561 -> 305,86 +792,644 -> 792,780 +632,550 -> 938,550 +441,252 -> 841,252 +789,59 -> 789,418 +981,11 -> 278,714 +264,41 -> 264,186 +870,833 -> 605,568 +160,905 -> 160,783 +385,191 -> 385,403 +774,791 -> 69,86 +409,967 -> 409,173 +868,41 -> 868,235 +536,497 -> 949,497 +757,119 -> 156,720 +563,706 -> 883,706 +124,482 -> 14,482 +353,655 -> 904,104 +194,868 -> 194,649 +810,736 -> 748,736 +815,578 -> 50,578 +531,131 -> 241,131 +18,972 -> 977,13 +761,747 -> 73,59 +650,701 -> 930,701 +470,237 -> 470,740 +333,803 -> 954,182 +644,667 -> 235,667 +943,766 -> 299,766 +985,876 -> 985,503 +170,924 -> 467,924 +249,19 -> 981,751 +462,666 -> 462,651 +404,228 -> 877,228 +174,440 -> 174,847 +910,596 -> 672,596 +430,663 -> 734,663 +711,294 -> 69,294 +193,302 -> 257,302 +959,20 -> 13,966 +171,561 -> 171,953 +704,986 -> 29,311 +285,886 -> 285,260 +945,872 -> 531,458 +265,748 -> 478,748 +26,537 -> 26,851 +205,210 -> 917,922 +590,488 -> 241,139 +536,179 -> 247,179 + + + diff --git a/inputs/sample.txt b/inputs/sample.txt new file mode 100644 index 0000000..cc61808 --- /dev/null +++ b/inputs/sample.txt @@ -0,0 +1,11 @@ +0,9 -> 5,9 +8,0 -> 0,8 +9,4 -> 3,4 +2,2 -> 2,1 +7,0 -> 7,4 +6,4 -> 2,0 +0,9 -> 2,9 +3,4 -> 1,4 +0,0 -> 8,8 +5,5 -> 8,2 + diff --git a/src/main.rs b/src/main.rs index 75a9ee3..67f54d9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,114 +2,79 @@ extern crate test; const INPUTS: [&'static str; 2] = [ - include_str!("../inputs/day4.sample.txt"), - include_str!("../inputs/day4.txt"), + include_str!("../inputs/sample.txt"), + include_str!("../inputs/input.txt"), ]; -const WINNING_COMBINATIONS: [[(usize, usize); 5]; 5] = [ - // Row wins - [(0, 0), (0, 1), (0, 2), (0, 3), (0, 4)], - [(1, 0), (1, 1), (1, 2), (1, 3), (1, 4)], - [(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)], - [(3, 0), (3, 1), (3, 2), (3, 3), (3, 4)], - [(4, 0), (4, 1), (4, 2), (4, 3), (4, 4)], -]; - -#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] -enum BoardEntry { - Entry(u64), - Called(u64), - Null, +#[derive(Debug, Clone)] +struct LineSegment { + x1: usize, + y1: usize, + x2: usize, + y2: usize, } -#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash)] -struct Board { - board: [[BoardEntry; 5]; 5], - sum: u64, - won: bool, -} +impl LineSegment { + fn generate_points(&self) -> Vec<(usize, usize)> { + if self.x1 == self.x2 { + let ymin = std::cmp::min(self.y1, self.y2); + let ymax = std::cmp::max(self.y1, self.y2); -impl Board { - fn mark_draw(&mut self, draw: u64) { - for row in self.board.iter_mut() { - for val in row.iter_mut() { - if let BoardEntry::Entry(v) = val { - if *v == draw { - self.sum -= *v; - *val = BoardEntry::Called(*v); - } - } - } + return (ymin..=ymax).map(|y| (self.x1, y)).collect(); + } else if self.y1 == self.y2 { + let xmin = std::cmp::min(self.x1, self.x2); + let xmax = std::cmp::max(self.x1, self.x2); + + return (xmin..=xmax).map(|x| (x, self.y1)).collect(); + } else { + vec![] } } - - fn is_winner(&self) -> bool { - for set in WINNING_COMBINATIONS.iter() { - let col_match = set - .iter() - .map(|&(x, y)| self.board[y][x]) - .all(|entry| matches!(entry, BoardEntry::Called(_))); - - let row_match = set - .iter() - .map(|&(x, y)| self.board[x][y]) - .all(|entry| matches!(entry, BoardEntry::Called(_))); - - if row_match || col_match { - return true; - } - } - - false - } } -fn cmds(input: &'static str) -> (Vec, Vec) { - let mut lines = input.split("\n\n").filter(|x| !x.is_empty()); +fn parse_input(input: &'static str) -> Vec { + let lines = input.split('\n').filter(|x| !x.is_empty()); + lines + .map(|line| { + let mut line = line.split(" -> "); - let draws: Vec = lines - .next() - .unwrap() - .split(',') - .map(|x| x.parse::().unwrap()) - .collect(); + let start: Vec = line + .next() + .unwrap() + .split(',') + .map(|x| x.parse::().unwrap()) + .collect(); + let end: Vec = line + .next() + .unwrap() + .split(',') + .map(|x| x.parse::().unwrap()) + .collect(); - let mut boards = vec![]; - - for block in lines { - let mut bblock = Board { - board: [[BoardEntry::Null; 5]; 5], - sum: 0, - won: false, - }; - - for (i, line) in block.split('\n').enumerate() { - for (j, c) in line.split(' ').filter(|x| !x.is_empty()).enumerate() { - let num = c.parse::().unwrap(); - bblock.board[i][j] = BoardEntry::Entry(num); - bblock.sum += num; + LineSegment { + x1: start[0], + y1: start[1], + x2: end[0], + y2: end[1], } - } - - boards.push(bblock) - } - - (draws, boards) + }) + .collect() } -fn solution((draws, mut boards): (Vec, Vec)) -> u64 { +fn solution(coords: Vec) -> u64 { let mut answer = 0; + let mut grid = vec![vec![0; 1000]; 1000]; - for draw in draws { - for board in boards.iter_mut() { - if board.won { - continue; - } - board.mark_draw(draw); + for coord in coords { + for (x, y) in coord.generate_points() { + grid[x][y] += 1; + } + } - if board.is_winner() { - answer = board.sum * draw; - board.won = true; + for row in grid { + for val in row { + if val >= 2 { + answer += 1; } } } @@ -119,7 +84,7 @@ fn solution((draws, mut boards): (Vec, Vec)) -> u64 { fn main() { for input in INPUTS { - let input = cmds(input); + let input = parse_input(input); let result = solution(input); println!("Result {}", result); } @@ -127,7 +92,7 @@ fn main() { #[bench] fn solution_bench(b: &mut test::Bencher) { - let input = cmds(INPUTS[1]); + let input = parse_input(INPUTS[1]); b.iter(|| { let result = solution(input.clone()); test::black_box(result);