From: Brett Parker <iDunno@sommitrealweird.co.uk> Date: Wed, 8 Dec 2021 23:24:24 +0000 (+0000) Subject: Make all scripts able to take a file name, merge parts 1 and 2 of lanternfish in... X-Git-Url: https://git.sommitrealweird.co.uk/advent-of-code-2021.git/commitdiff_plain/9211cd2ef3bbf35f1328c86c5c6290005c014cb3?ds=inline Make all scripts able to take a file name, merge parts 1 and 2 of lanternfish in to the quicker version of the script, test scripts against the input I get from twitter as well as the input from google --- diff --git a/day01/count.sh b/day01/count.sh index 990433d..86a89b1 100755 --- a/day01/count.sh +++ b/day01/count.sh @@ -9,7 +9,9 @@ cur_window=1 declare -a windows -for num in $(<input.txt); do +filename="${1:-input.txt}" + +for num in $(<"$filename"); do cur_line=$((cur_line+1)) windows[$cur_window]=$num if [ $cur_window -gt 1 ]; then diff --git a/day01/input-twitter.txt b/day01/input-twitter.txt new file mode 100644 index 0000000..013e712 --- /dev/null +++ b/day01/input-twitter.txt @@ -0,0 +1,2000 @@ +176 +184 +196 +199 +204 +206 +219 +215 +216 +217 +218 +230 +231 +214 +210 +189 +174 +170 +162 +167 +173 +182 +177 +179 +180 +182 +198 +201 +200 +207 +203 +213 +231 +222 +223 +224 +209 +217 +228 +236 +243 +241 +260 +262 +258 +260 +254 +270 +271 +278 +264 +263 +262 +260 +261 +234 +229 +233 +208 +210 +211 +210 +206 +207 +209 +199 +201 +218 +210 +206 +207 +218 +221 +229 +233 +234 +235 +246 +253 +254 +260 +259 +253 +254 +275 +277 +295 +296 +299 +333 +334 +336 +337 +339 +347 +374 +369 +371 +376 +371 +374 +375 +371 +374 +381 +383 +384 +395 +396 +400 +395 +397 +399 +389 +396 +390 +404 +411 +412 +428 +424 +433 +431 +437 +473 +489 +486 +488 +479 +480 +484 +474 +475 +471 +492 +493 +501 +512 +509 +506 +519 +523 +522 +521 +535 +548 +531 +519 +523 +522 +516 +512 +522 +547 +581 +582 +580 +579 +580 +600 +595 +592 +587 +588 +591 +592 +583 +586 +584 +597 +610 +592 +581 +583 +578 +575 +582 +579 +587 +594 +592 +593 +599 +605 +609 +610 +609 +601 +604 +608 +609 +613 +614 +612 +614 +626 +627 +636 +656 +652 +655 +656 +678 +680 +686 +687 +654 +663 +669 +664 +668 +647 +652 +659 +653 +654 +656 +637 +638 +621 +620 +621 +609 +604 +612 +616 +612 +617 +614 +610 +607 +608 +613 +617 +624 +625 +622 +604 +606 +610 +609 +607 +605 +618 +622 +635 +636 +640 +667 +668 +664 +674 +675 +682 +694 +698 +704 +717 +723 +724 +699 +695 +693 +674 +670 +683 +685 +683 +676 +675 +678 +677 +675 +657 +670 +675 +673 +658 +660 +673 +685 +675 +676 +677 +671 +689 +688 +690 +691 +692 +709 +713 +712 +715 +739 +731 +734 +762 +764 +746 +728 +729 +727 +730 +745 +773 +781 +787 +806 +807 +808 +815 +822 +837 +844 +842 +841 +850 +853 +838 +841 +845 +846 +844 +849 +846 +847 +859 +851 +854 +857 +873 +882 +892 +896 +883 +896 +895 +886 +879 +878 +877 +878 +881 +891 +898 +913 +914 +920 +922 +928 +929 +915 +917 +918 +913 +926 +929 +937 +939 +940 +936 +938 +939 +948 +946 +951 +950 +918 +917 +924 +917 +918 +921 +919 +917 +929 +950 +985 +988 +991 +996 +1002 +995 +990 +999 +989 +990 +991 +992 +991 +992 +993 +991 +994 +996 +997 +989 +993 +975 +973 +972 +973 +971 +969 +976 +983 +980 +987 +1003 +1002 +1000 +993 +994 +993 +972 +970 +991 +988 +989 +993 +996 +1002 +1003 +1008 +1007 +1014 +1015 +1022 +1012 +1029 +1030 +1029 +1030 +1025 +1026 +1010 +1006 +1008 +1006 +1012 +1015 +1029 +1067 +1102 +1107 +1108 +1103 +1108 +1103 +1120 +1119 +1118 +1119 +1118 +1119 +1132 +1137 +1148 +1150 +1153 +1166 +1169 +1199 +1205 +1208 +1216 +1210 +1217 +1216 +1217 +1218 +1198 +1199 +1197 +1198 +1193 +1202 +1241 +1242 +1239 +1241 +1238 +1233 +1234 +1235 +1237 +1228 +1229 +1235 +1218 +1236 +1237 +1208 +1246 +1251 +1246 +1248 +1242 +1241 +1243 +1231 +1226 +1224 +1221 +1220 +1224 +1219 +1227 +1214 +1237 +1261 +1271 +1268 +1292 +1304 +1303 +1312 +1287 +1286 +1292 +1295 +1297 +1304 +1311 +1312 +1309 +1314 +1307 +1316 +1320 +1319 +1316 +1333 +1332 +1316 +1315 +1320 +1321 +1335 +1355 +1353 +1356 +1325 +1333 +1335 +1339 +1360 +1361 +1362 +1364 +1361 +1363 +1362 +1363 +1364 +1392 +1397 +1398 +1405 +1406 +1408 +1406 +1394 +1391 +1407 +1413 +1415 +1413 +1419 +1422 +1416 +1422 +1421 +1431 +1433 +1437 +1439 +1443 +1446 +1449 +1439 +1444 +1452 +1460 +1468 +1469 +1486 +1500 +1507 +1513 +1512 +1511 +1531 +1532 +1541 +1550 +1557 +1561 +1557 +1560 +1563 +1564 +1565 +1588 +1589 +1592 +1591 +1593 +1598 +1603 +1590 +1604 +1608 +1610 +1623 +1598 +1592 +1601 +1598 +1600 +1601 +1599 +1609 +1607 +1608 +1613 +1605 +1601 +1605 +1610 +1611 +1609 +1608 +1615 +1620 +1629 +1628 +1641 +1632 +1630 +1635 +1634 +1629 +1630 +1632 +1630 +1641 +1661 +1655 +1657 +1653 +1619 +1629 +1607 +1600 +1603 +1591 +1596 +1599 +1601 +1582 +1591 +1593 +1596 +1597 +1600 +1596 +1597 +1603 +1624 +1630 +1628 +1626 +1628 +1631 +1628 +1629 +1625 +1627 +1620 +1613 +1614 +1638 +1637 +1626 +1624 +1623 +1621 +1620 +1621 +1598 +1610 +1611 +1622 +1629 +1646 +1655 +1677 +1678 +1679 +1699 +1702 +1715 +1710 +1722 +1719 +1715 +1716 +1724 +1735 +1734 +1727 +1743 +1748 +1745 +1742 +1755 +1754 +1734 +1738 +1729 +1732 +1733 +1726 +1723 +1744 +1745 +1746 +1748 +1778 +1777 +1780 +1792 +1798 +1799 +1800 +1793 +1794 +1797 +1802 +1796 +1800 +1820 +1823 +1824 +1823 +1828 +1827 +1824 +1847 +1842 +1846 +1847 +1844 +1833 +1826 +1834 +1839 +1846 +1854 +1842 +1845 +1860 +1874 +1869 +1871 +1869 +1870 +1874 +1875 +1891 +1893 +1894 +1886 +1885 +1853 +1871 +1868 +1866 +1875 +1885 +1882 +1883 +1879 +1884 +1893 +1918 +1919 +1932 +1933 +1930 +1949 +1952 +1949 +1945 +1944 +1930 +1950 +1952 +1951 +1981 +1980 +1992 +1993 +1981 +1979 +2007 +1989 +1987 +1996 +2006 +2012 +2028 +2037 +2041 +2039 +2046 +2047 +2055 +2058 +2079 +2086 +2087 +2088 +2079 +2080 +2079 +2082 +2089 +2092 +2097 +2113 +2115 +2119 +2109 +2111 +2110 +2108 +2100 +2099 +2107 +2103 +2104 +2115 +2110 +2116 +2117 +2113 +2120 +2128 +2129 +2115 +2114 +2125 +2148 +2145 +2147 +2160 +2159 +2162 +2155 +2161 +2162 +2160 +2162 +2149 +2150 +2152 +2170 +2171 +2172 +2171 +2186 +2187 +2186 +2188 +2196 +2185 +2195 +2196 +2200 +2197 +2195 +2190 +2191 +2189 +2199 +2200 +2208 +2204 +2203 +2209 +2231 +2234 +2247 +2245 +2277 +2279 +2281 +2282 +2279 +2294 +2296 +2304 +2287 +2294 +2293 +2297 +2311 +2339 +2343 +2344 +2323 +2360 +2369 +2371 +2372 +2373 +2372 +2384 +2383 +2390 +2412 +2419 +2421 +2432 +2428 +2427 +2449 +2459 +2456 +2457 +2459 +2469 +2472 +2474 +2472 +2475 +2487 +2479 +2481 +2482 +2481 +2502 +2492 +2493 +2496 +2522 +2529 +2550 +2551 +2549 +2547 +2546 +2551 +2553 +2555 +2552 +2547 +2536 +2534 +2518 +2517 +2513 +2511 +2495 +2508 +2500 +2501 +2514 +2524 +2551 +2552 +2561 +2563 +2571 +2573 +2565 +2559 +2564 +2565 +2568 +2570 +2556 +2546 +2552 +2554 +2581 +2574 +2573 +2572 +2575 +2577 +2578 +2579 +2580 +2579 +2589 +2586 +2587 +2611 +2615 +2614 +2618 +2619 +2618 +2626 +2630 +2623 +2627 +2628 +2627 +2628 +2657 +2658 +2672 +2673 +2685 +2668 +2658 +2660 +2668 +2669 +2671 +2673 +2669 +2668 +2675 +2668 +2669 +2652 +2672 +2675 +2678 +2677 +2699 +2700 +2701 +2712 +2710 +2712 +2711 +2710 +2721 +2722 +2727 +2731 +2733 +2731 +2734 +2738 +2751 +2745 +2744 +2750 +2765 +2767 +2773 +2771 +2770 +2773 +2778 +2782 +2792 +2796 +2794 +2806 +2807 +2820 +2823 +2836 +2834 +2827 +2826 +2830 +2828 +2829 +2831 +2838 +2845 +2846 +2863 +2860 +2862 +2861 +2862 +2863 +2864 +2871 +2873 +2874 +2875 +2893 +2892 +2893 +2898 +2924 +2942 +2956 +2950 +2952 +2990 +2993 +2994 +3001 +3017 +3022 +3017 +3016 +3017 +3012 +3018 +3019 +3018 +3048 +3058 +3059 +3062 +3072 +3073 +3071 +3072 +3065 +3093 +3094 +3095 +3094 +3100 +3101 +3084 +3085 +3079 +3077 +3099 +3100 +3117 +3118 +3121 +3122 +3137 +3108 +3110 +3109 +3108 +3113 +3102 +3103 +3119 +3122 +3126 +3132 +3137 +3132 +3152 +3153 +3163 +3164 +3176 +3175 +3181 +3190 +3191 +3198 +3195 +3177 +3178 +3177 +3183 +3202 +3203 +3192 +3184 +3185 +3191 +3196 +3195 +3173 +3183 +3182 +3184 +3185 +3193 +3210 +3208 +3207 +3214 +3221 +3234 +3233 +3263 +3284 +3283 +3284 +3270 +3259 +3268 +3253 +3259 +3246 +3251 +3246 +3251 +3256 +3249 +3251 +3261 +3260 +3259 +3267 +3277 +3273 +3282 +3286 +3284 +3285 +3288 +3295 +3270 +3269 +3277 +3276 +3281 +3280 +3292 +3293 +3301 +3306 +3335 +3336 +3310 +3309 +3312 +3318 +3324 +3340 +3368 +3371 +3369 +3370 +3368 +3367 +3386 +3388 +3416 +3420 +3423 +3433 +3427 +3438 +3457 +3469 +3474 +3479 +3489 +3507 +3471 +3468 +3480 +3486 +3490 +3493 +3495 +3496 +3495 +3479 +3480 +3485 +3490 +3489 +3491 +3488 +3494 +3493 +3515 +3517 +3526 +3519 +3520 +3525 +3515 +3516 +3517 +3508 +3510 +3512 +3515 +3536 +3535 +3530 +3540 +3542 +3550 +3530 +3550 +3553 +3537 +3536 +3542 +3547 +3544 +3562 +3561 +3551 +3546 +3547 +3562 +3561 +3586 +3593 +3582 +3586 +3589 +3600 +3604 +3605 +3607 +3608 +3613 +3624 +3626 +3652 +3668 +3669 +3666 +3674 +3677 +3668 +3671 +3673 +3675 +3657 +3666 +3655 +3658 +3662 +3659 +3660 +3657 +3655 +3662 +3657 +3660 +3661 +3664 +3675 +3677 +3661 +3663 +3669 +3645 +3646 +3644 +3645 +3666 +3677 +3685 +3686 +3689 +3697 +3694 +3703 +3672 +3676 +3675 +3706 +3726 +3742 +3744 +3765 +3792 +3793 +3802 +3805 +3813 +3816 +3817 +3826 +3827 +3828 +3830 +3826 +3825 +3824 +3816 +3821 +3820 +3821 +3825 +3846 +3848 +3847 +3846 +3849 +3854 +3844 +3860 +3859 +3861 +3863 +3848 +3845 +3846 +3853 +3851 +3850 +3863 +3865 +3885 +3912 +3913 +3914 +3913 +3901 +3897 +3927 +3928 +3927 +3929 +3931 +3925 +3912 +3915 +3919 +3920 +3896 +3900 +3904 +3909 +3919 +3922 +3923 +3925 +3944 +3938 +3937 +3936 +3944 +3943 +3942 +3955 +3944 +3945 +3948 +3946 +3939 +3955 +3957 +3951 +3950 +3954 +3966 +3974 +3987 +3991 +3987 +3985 +3981 +3983 +3986 +3996 +4002 +4012 +4031 +4030 +4031 +4034 +4018 +4020 +4007 +4009 +4019 +4006 +4011 +4018 +4022 +4012 +4014 +4012 +4013 +4031 +4046 +4051 +4054 +4065 +4070 +4074 +4080 +4081 +4080 +4051 +4058 +4056 +4054 +4049 +4054 +4048 +4065 +4078 +4082 +4086 +4099 +4100 +4106 +4126 +4118 +4145 +4141 +4142 +4153 +4168 +4176 +4168 +4167 +4171 +4172 +4173 +4137 +4154 +4150 +4134 +4137 +4138 +4137 +4148 +4151 +4129 +4131 +4130 +4132 +4129 +4155 +4156 +4157 +4162 +4179 +4185 +4187 +4186 +4177 +4167 +4174 +4178 +4176 +4174 +4177 +4180 +4192 +4206 +4212 +4192 +4201 +4193 +4213 +4194 +4201 +4181 +4184 +4181 +4192 +4195 +4205 +4209 +4199 +4201 +4200 +4201 +4219 +4218 +4220 +4221 +4235 +4236 +4229 +4235 +4233 +4234 +4240 +4239 +4211 +4216 +4223 +4210 +4224 +4225 +4223 +4224 +4223 +4233 +4232 +4240 +4248 +4240 +4241 +4246 +4247 +4244 +4245 +4246 +4256 +4261 +4274 +4268 +4288 +4289 +4290 +4301 +4299 +4303 +4304 +4303 +4297 +4299 +4288 +4296 +4293 +4296 +4295 +4302 +4303 +4319 +4313 +4315 +4320 +4322 +4326 +4328 +4337 +4338 +4351 +4370 +4381 +4388 +4413 +4418 +4417 +4416 +4415 +4436 +4440 +4441 +4464 +4461 +4468 +4469 +4471 +4480 +4496 +4495 +4496 +4497 +4494 +4461 +4462 +4461 +4462 +4461 +4457 +4466 +4467 +4468 +4469 +4491 +4497 +4510 +4500 +4485 +4497 +4508 +4506 +4500 +4501 +4514 +4516 +4517 +4516 +4543 +4549 +4529 +4523 +4522 +4540 +4539 +4540 +4543 +4545 +4530 +4532 +4531 +4533 +4535 +4511 +4517 +4520 +4521 +4523 +4517 +4525 +4526 +4538 +4566 +4567 +4564 +4575 +4577 +4576 +4574 +4580 +4594 +4595 +4596 +4621 +4622 +4629 +4632 +4641 +4642 +4658 +4659 +4660 +4685 +4687 +4708 +4727 +4735 +4739 +4745 +4744 +4753 +4755 +4757 +4759 +4782 +4785 +4777 +4783 +4786 +4789 +4794 +4802 +4803 +4833 +4849 +4857 +4865 +4866 +4872 +4869 +4876 +4874 +4877 +4899 +4900 +4901 +4893 +4892 +4904 +4907 +4900 +4907 +4908 +4903 +4890 +4895 +4896 +4876 +4880 +4888 +4889 +4894 +4893 +4924 +4927 +4922 +4893 +4901 +4891 +4908 +4916 +4915 +4920 +4931 +4954 +4943 +4953 +4954 +4959 +4949 +4952 +4936 +4935 +4916 +4922 +4923 +4922 +4928 +4929 +4930 +4927 +4923 +4926 +4924 +4931 +4935 +4955 +4966 +4987 +4988 +4990 +4992 +4991 +4999 +5001 +5006 +5007 +5021 +5034 +5047 +5050 +5055 +5091 +5096 +5101 +5100 +5105 +5108 +5117 +5114 +5127 +5129 +5127 +5153 +5152 +5154 +5155 +5156 +5142 +5154 +5180 +5177 +5183 +5184 +5201 +5204 +5205 +5222 +5212 +5217 +5222 +5251 +5278 +5277 +5302 +5319 +5326 +5333 +5327 +5321 +5337 +5361 +5362 +5368 +5369 +5366 +5368 +5385 +5383 +5384 +5393 +5403 +5427 +5428 +5429 +5428 +5459 +5442 +5441 +5433 +5436 +5428 +5429 +5428 +5427 +5433 +5418 +5419 +5421 +5425 +5426 +5435 +5441 +5445 +5442 +5446 +5454 +5458 +5454 +5456 +5452 +5423 +5426 +5425 +5418 +5417 +5420 +5425 +5420 +5438 +5447 +5450 +5451 +5453 +5450 +5453 +5449 +5457 +5464 +5455 +5460 +5443 +5439 +5425 +5423 +5434 +5438 +5437 +5412 +5408 +5405 +5407 +5420 +5426 +5452 +5459 +5460 +5490 +5498 +5508 +5528 +5531 +5516 +5517 +5512 +5524 +5529 +5511 +5525 +5527 +5538 +5539 +5546 +5550 +5549 +5552 +5554 +5559 +5551 +5552 +5556 +5559 +5579 +5584 +5590 +5593 +5592 +5595 +5604 +5600 +5586 +5591 +5572 +5571 +5583 +5584 +5578 +5579 +5580 +5579 +5570 +5571 +5574 +5577 +5583 +5584 +5569 +5586 +5582 +5561 +5550 +5554 +5544 +5550 +5529 +5538 +5551 +5569 +5570 +5584 +5588 +5596 diff --git a/day02/input-twitter.txt b/day02/input-twitter.txt new file mode 100644 index 0000000..26e4fc2 --- /dev/null +++ b/day02/input-twitter.txt @@ -0,0 +1,1000 @@ +forward 4 +down 7 +down 4 +forward 2 +down 4 +down 9 +down 1 +forward 1 +down 4 +up 5 +forward 5 +down 3 +forward 5 +forward 6 +down 5 +down 3 +forward 8 +up 7 +forward 1 +forward 5 +forward 7 +up 2 +up 7 +down 1 +down 6 +forward 7 +forward 6 +down 7 +up 9 +down 8 +down 3 +down 1 +down 4 +down 3 +forward 7 +down 1 +forward 6 +down 3 +forward 3 +down 6 +forward 5 +down 7 +up 5 +forward 7 +forward 9 +up 1 +forward 5 +down 5 +down 2 +forward 1 +up 7 +down 8 +down 2 +forward 8 +forward 1 +up 1 +up 5 +forward 9 +up 9 +down 5 +down 5 +forward 6 +forward 1 +down 1 +down 3 +up 6 +up 9 +down 6 +down 1 +forward 1 +down 8 +down 3 +down 8 +up 6 +forward 2 +up 8 +down 2 +down 6 +forward 1 +down 2 +down 1 +down 5 +down 8 +forward 8 +down 8 +down 2 +up 1 +up 3 +forward 1 +down 6 +up 5 +forward 5 +up 7 +forward 3 +forward 3 +down 9 +forward 1 +forward 7 +down 1 +down 1 +down 3 +forward 4 +down 4 +forward 2 +up 8 +forward 2 +down 4 +down 2 +up 1 +forward 6 +forward 6 +down 9 +forward 5 +down 3 +forward 5 +down 6 +down 9 +forward 9 +up 6 +down 8 +up 5 +up 2 +forward 5 +down 4 +forward 8 +up 1 +forward 2 +down 9 +down 4 +up 7 +down 1 +down 6 +down 7 +down 7 +down 2 +down 2 +up 7 +down 1 +up 7 +up 4 +forward 9 +down 6 +up 3 +down 5 +forward 8 +up 4 +forward 5 +forward 8 +forward 4 +forward 7 +forward 2 +down 3 +up 4 +forward 7 +forward 3 +down 7 +up 4 +forward 8 +forward 9 +forward 9 +up 6 +up 5 +forward 7 +down 7 +up 5 +down 9 +down 8 +forward 5 +forward 2 +down 1 +down 2 +down 9 +up 5 +down 3 +down 8 +up 6 +forward 9 +down 9 +up 3 +up 9 +forward 3 +forward 9 +down 5 +up 3 +down 6 +forward 5 +down 6 +down 9 +forward 3 +down 7 +down 5 +down 9 +forward 8 +down 8 +forward 8 +forward 2 +up 6 +down 9 +down 7 +down 4 +down 2 +down 9 +forward 7 +up 1 +forward 6 +forward 7 +down 3 +down 5 +down 3 +forward 4 +down 9 +forward 2 +down 1 +forward 4 +up 9 +down 8 +down 9 +forward 5 +up 2 +down 7 +down 2 +down 7 +forward 8 +up 8 +forward 9 +up 8 +down 3 +down 8 +forward 2 +up 7 +forward 4 +up 8 +forward 6 +forward 6 +forward 4 +forward 3 +down 4 +up 7 +down 8 +forward 1 +forward 9 +forward 8 +forward 8 +down 6 +down 6 +down 4 +down 8 +forward 9 +down 8 +down 4 +forward 2 +forward 7 +down 4 +up 1 +down 4 +down 5 +up 5 +up 9 +down 5 +up 5 +forward 2 +down 8 +forward 7 +forward 2 +up 4 +forward 8 +up 7 +down 5 +forward 5 +down 5 +down 6 +down 7 +forward 1 +down 8 +up 8 +up 9 +up 6 +forward 2 +forward 7 +forward 4 +down 6 +up 4 +up 3 +down 3 +forward 7 +up 9 +down 9 +up 5 +forward 1 +up 7 +down 7 +down 7 +up 8 +down 3 +forward 6 +down 6 +down 7 +down 2 +forward 5 +up 8 +up 5 +up 1 +down 5 +forward 9 +forward 9 +forward 2 +forward 6 +up 8 +forward 8 +down 1 +forward 6 +up 7 +up 3 +forward 3 +up 5 +down 8 +forward 2 +down 5 +down 5 +forward 8 +forward 8 +forward 6 +up 7 +up 1 +forward 1 +down 7 +down 1 +up 9 +forward 7 +up 6 +down 2 +down 5 +forward 1 +down 1 +up 1 +forward 7 +forward 7 +forward 1 +up 2 +forward 2 +down 9 +down 8 +forward 9 +forward 8 +up 9 +down 1 +down 3 +up 1 +down 3 +up 9 +down 7 +up 6 +down 1 +down 2 +down 2 +down 4 +forward 4 +forward 3 +down 7 +forward 9 +forward 1 +down 2 +down 2 +down 4 +down 7 +up 7 +forward 6 +forward 2 +down 6 +down 3 +down 3 +down 8 +up 8 +forward 6 +down 8 +down 3 +forward 7 +down 4 +down 4 +up 1 +up 8 +forward 5 +forward 6 +down 8 +down 9 +up 7 +forward 2 +forward 4 +down 4 +forward 6 +forward 5 +down 4 +up 5 +down 5 +forward 1 +down 2 +up 9 +forward 9 +forward 6 +forward 8 +down 2 +down 9 +up 1 +forward 6 +down 3 +forward 6 +forward 7 +down 9 +forward 1 +forward 1 +forward 5 +up 5 +up 6 +forward 8 +forward 6 +forward 6 +forward 8 +down 6 +down 8 +forward 5 +forward 7 +forward 3 +forward 3 +up 5 +forward 8 +up 3 +forward 6 +forward 4 +forward 3 +up 8 +down 1 +down 3 +down 7 +up 8 +forward 5 +down 9 +up 7 +down 2 +down 4 +down 5 +down 2 +up 3 +down 4 +down 4 +forward 4 +forward 6 +up 4 +forward 5 +forward 3 +up 2 +up 3 +down 4 +down 7 +forward 7 +forward 2 +down 2 +forward 5 +up 4 +forward 2 +down 8 +up 5 +up 6 +forward 2 +forward 3 +up 3 +down 2 +forward 7 +down 6 +forward 3 +forward 6 +up 9 +forward 7 +up 1 +forward 1 +forward 2 +down 3 +forward 9 +down 1 +up 5 +up 7 +up 8 +down 5 +up 4 +down 9 +forward 4 +up 8 +forward 3 +forward 7 +down 7 +down 9 +down 5 +up 4 +down 2 +up 5 +down 4 +forward 3 +down 7 +up 5 +forward 9 +forward 9 +forward 7 +up 5 +forward 7 +up 3 +forward 8 +down 1 +down 5 +up 5 +forward 4 +forward 9 +forward 9 +up 5 +down 9 +up 7 +up 3 +forward 5 +down 4 +down 7 +forward 9 +down 9 +up 3 +forward 4 +forward 7 +down 9 +forward 2 +down 2 +forward 1 +down 2 +up 7 +down 6 +forward 9 +forward 1 +down 5 +forward 9 +forward 7 +up 4 +forward 9 +forward 7 +up 4 +down 1 +down 3 +down 3 +down 1 +down 9 +forward 3 +forward 5 +forward 2 +down 1 +forward 9 +down 6 +up 6 +down 7 +down 1 +down 1 +up 1 +up 8 +down 6 +down 3 +down 9 +forward 3 +forward 9 +down 4 +forward 6 +forward 7 +down 3 +forward 5 +up 8 +up 6 +forward 3 +forward 2 +down 6 +up 7 +forward 3 +forward 1 +down 8 +down 1 +forward 1 +forward 2 +up 7 +down 3 +forward 9 +forward 6 +up 8 +forward 3 +down 3 +down 9 +down 3 +down 6 +down 6 +down 2 +forward 8 +down 3 +forward 2 +up 8 +forward 5 +up 6 +down 7 +down 4 +down 2 +up 9 +down 4 +down 9 +down 4 +down 9 +forward 2 +down 5 +down 5 +forward 7 +up 2 +forward 5 +forward 1 +down 4 +forward 6 +forward 9 +down 1 +down 2 +down 6 +forward 5 +up 9 +up 1 +up 9 +up 4 +down 1 +up 3 +down 5 +forward 4 +forward 3 +forward 1 +down 9 +down 9 +down 6 +forward 4 +forward 4 +forward 1 +down 9 +down 8 +down 7 +forward 2 +forward 7 +forward 1 +down 7 +forward 8 +forward 7 +up 4 +down 4 +forward 8 +forward 6 +down 6 +forward 9 +down 2 +forward 7 +forward 1 +down 5 +down 5 +down 3 +down 7 +forward 9 +down 2 +forward 3 +forward 6 +up 4 +up 9 +forward 6 +up 8 +up 2 +forward 9 +forward 3 +forward 9 +down 4 +down 8 +down 1 +down 1 +forward 4 +up 3 +forward 1 +forward 5 +down 5 +down 6 +down 7 +forward 5 +down 3 +up 9 +forward 5 +down 4 +up 9 +forward 1 +down 3 +down 5 +forward 2 +down 7 +up 7 +down 2 +forward 2 +down 2 +down 4 +down 3 +forward 6 +down 7 +down 2 +down 1 +forward 7 +forward 9 +forward 8 +up 8 +forward 5 +down 8 +forward 9 +forward 9 +up 5 +forward 9 +up 8 +up 6 +up 5 +up 3 +down 2 +down 8 +down 4 +up 3 +down 4 +up 8 +down 3 +up 1 +down 4 +down 7 +down 4 +up 7 +down 3 +up 3 +up 8 +forward 3 +down 2 +forward 7 +up 9 +forward 2 +down 1 +down 1 +forward 2 +forward 9 +up 6 +forward 3 +forward 2 +down 1 +down 3 +down 6 +forward 7 +down 4 +forward 2 +down 6 +up 3 +up 5 +forward 6 +up 7 +down 5 +up 5 +forward 5 +down 6 +forward 7 +up 2 +forward 3 +forward 4 +forward 9 +down 4 +down 5 +up 7 +up 1 +down 1 +down 5 +forward 4 +down 2 +down 8 +down 6 +down 3 +down 1 +down 9 +forward 5 +forward 7 +down 5 +forward 7 +down 6 +up 8 +up 9 +down 4 +forward 7 +up 1 +up 5 +down 8 +forward 5 +up 8 +forward 1 +forward 7 +forward 5 +forward 8 +forward 8 +up 1 +down 4 +up 6 +down 1 +down 4 +up 9 +forward 4 +forward 1 +forward 5 +up 7 +forward 5 +forward 7 +up 3 +up 6 +up 3 +forward 4 +down 5 +down 4 +down 2 +down 4 +forward 7 +down 5 +forward 9 +forward 2 +down 3 +up 7 +forward 9 +forward 3 +down 9 +up 8 +forward 1 +forward 3 +up 8 +down 3 +up 9 +down 4 +forward 6 +forward 8 +down 4 +forward 9 +up 1 +forward 3 +forward 1 +up 3 +down 3 +forward 1 +forward 2 +forward 8 +up 3 +down 9 +forward 1 +up 1 +forward 2 +down 4 +forward 7 +up 9 +forward 2 +down 6 +down 8 +up 1 +forward 1 +forward 7 +down 8 +forward 7 +up 9 +up 5 +down 6 +down 2 +down 9 +down 9 +down 7 +down 4 +forward 4 +up 2 +up 8 +forward 5 +down 9 +down 7 +forward 3 +forward 1 +down 3 +down 1 +forward 5 +up 2 +up 9 +up 2 +forward 4 +forward 3 +forward 8 +up 9 +up 6 +up 3 +forward 7 +forward 8 +forward 8 +forward 1 +forward 1 +forward 2 +down 2 +down 7 +forward 4 +up 2 +down 4 +forward 5 +down 3 +forward 1 +down 3 +up 2 +forward 9 +forward 7 +forward 5 +forward 1 +forward 6 +forward 9 +up 3 +down 8 +down 8 +forward 3 +up 4 +up 1 +down 4 +forward 8 +up 9 +down 4 +down 5 +forward 1 +forward 7 +up 2 +down 2 +down 2 +down 1 +up 6 +forward 7 +forward 7 +down 7 +down 8 +forward 1 +forward 8 +down 3 +up 5 +up 9 +down 2 +down 9 +forward 3 +up 8 +up 9 +up 3 +up 3 +forward 9 +up 6 +up 7 +down 6 +down 8 +forward 4 +down 8 +forward 4 +forward 9 +down 9 +forward 4 +up 6 +up 5 +down 2 +forward 6 +down 2 +up 2 +up 4 +forward 4 +forward 6 +down 7 +up 4 +down 8 +forward 1 +down 5 +forward 4 +down 3 +forward 3 +down 5 +forward 7 +down 8 +up 7 +down 7 +forward 1 +forward 6 +up 7 +up 8 +up 2 +forward 1 +forward 1 +down 5 +down 9 +forward 7 +forward 5 +down 7 +up 1 +forward 6 +forward 6 +down 6 +forward 1 +down 1 +down 2 +down 4 +forward 5 +up 7 +up 7 +forward 6 +down 1 +forward 7 diff --git a/day02/sub.sh b/day02/sub.sh index b8040aa..2140d4e 100755 --- a/day02/sub.sh +++ b/day02/sub.sh @@ -1,6 +1,8 @@ #!/bin/bash -exec 3<input.txt +filename="${1:-input.txt}" + +exec 3<"$filename" depth=0 horizontal=0 aim=0 diff --git a/day03/input-twitter.txt b/day03/input-twitter.txt new file mode 100644 index 0000000..c95ddb3 --- /dev/null +++ b/day03/input-twitter.txt @@ -0,0 +1,1000 @@ +010100110111 +101001010000 +101011110010 +100100011101 +101000011000 +110011011110 +111010010100 +001111100000 +111101100001 +100010101110 +101101110101 +010010101110 +111001110100 +000101111000 +111101111100 +000010001100 +101010111101 +001010011011 +001101101101 +000000110100 +001100101011 +110110110010 +001110000011 +011001111001 +110100110011 +011000110001 +111100100010 +101011000000 +011101000111 +011111000111 +111011001110 +011111010100 +001110110001 +010110110001 +100111011011 +100110100100 +110010111000 +101111001100 +101111111001 +000001000110 +100010010110 +110111100101 +001001010101 +001110001011 +101111001011 +111011110010 +101001001100 +101010100001 +000000111101 +100000000111 +111010111101 +000110110111 +100100101111 +110101100101 +011010110010 +110100001110 +001011011010 +010101010101 +011110000100 +010000000010 +010111010111 +011010011100 +101101001011 +000111100101 +101111001000 +000100010000 +111000011111 +100001010101 +011101111110 +001111011110 +001100111111 +000011000100 +001011101010 +001011010111 +101001001110 +010101011001 +110101001011 +011110011110 +001000110010 +011101110001 +101110000000 +000001100111 +110111000011 +001001111010 +100100000000 +000000011101 +111110111011 +101001111100 +110110100010 +101011011000 +000111100010 +011000110100 +111100100100 +010010100000 +111101001011 +111001000000 +001001000001 +010010100001 +110110001100 +001101100001 +011110010110 +100111011101 +001001110110 +001001100011 +011001111010 +110110010111 +110100111010 +111110011100 +100000100111 +010001101101 +110100110101 +101111101001 +100110010000 +100011001111 +101111001010 +001110111001 +111101001101 +001010111101 +010010011010 +100101101111 +100000011110 +011111010001 +000010001101 +010100101100 +001010001100 +100111011100 +011110000000 +100000011111 +000010010100 +000001001101 +011111011111 +100101001101 +000100010110 +011011111100 +000111000011 +010100101011 +011000101111 +001001100111 +110111110100 +111101111011 +110011010101 +100111111111 +010100010000 +001111110101 +010011010001 +101000111111 +000001110100 +010010010000 +100010000101 +110111100111 +001011111101 +101100101101 +001010110100 +000100110001 +111101110110 +111110101110 +100011100110 +011001001010 +001000010111 +010001110110 +011110000010 +101010101111 +110100100100 +010001100101 +001011111110 +100111100000 +111101000010 +101101011110 +101100111100 +001110011100 +110110100101 +000110111010 +011001010111 +010001000011 +100010010111 +000110110000 +001000010101 +010011010010 +110000100010 +010000101110 +010110111000 +011101001000 +011110000111 +100110100011 +110011001001 +001110000111 +000001101110 +001000100110 +011101111000 +101100000101 +110001100000 +101000100101 +110101110101 +111000101111 +101000101001 +101000100000 +101011010110 +000010111100 +011101101000 +000110101001 +000110110110 +100111001011 +100010001101 +101111000111 +100100111000 +100100111100 +000000100010 +100110000111 +101110001100 +110010010010 +100110010011 +100100000011 +000001011111 +110100100000 +000000111100 +110110010001 +001101111110 +010011010011 +001000111110 +100010010100 +000111110101 +111111101001 +100110001110 +101011011101 +110100100010 +010100001000 +100111101001 +010111010001 +001110101000 +100111101111 +100010101011 +101111100111 +111001100110 +111100110101 +001101001111 +111011011111 +011011100110 +101111011000 +100110110001 +100010011101 +000111010101 +101101011100 +111010100100 +001101000100 +101111100101 +010110001010 +111101010000 +100111110100 +100000000011 +010001111110 +011010001110 +110100010100 +010100111100 +011001101100 +110101001001 +000011100111 +011000000000 +110001000011 +101011001101 +001010110000 +010000011010 +101110101010 +001010011111 +011101000101 +110011101010 +101110001110 +100111110000 +100100010100 +010011101000 +100110000110 +111100010011 +011101101011 +100110010100 +011011100001 +011111100110 +111100101111 +000111101001 +100101011101 +010101001110 +110011110011 +111011011100 +101001101111 +100001010111 +110010111001 +011011101011 +111110001010 +000010111110 +011010000101 +011011000111 +110000000101 +010110111011 +010110110000 +011000110110 +100101001000 +000111110001 +011110000101 +001000010000 +011011000011 +100101100011 +010000100000 +100010011000 +001011100001 +000110100010 +011000111010 +100011001011 +101111111010 +001100110101 +101100111111 +010011100111 +001110110010 +000100100110 +010100010001 +100100011011 +110110100100 +100011011001 +110001000110 +110110100000 +101110001010 +000100101010 +000000100110 +110110111110 +011000111101 +001101111000 +110001100001 +101011011100 +101100001000 +100000111011 +011110010100 +010000101111 +100011100101 +100111010100 +000011010110 +111010110011 +010101000001 +001101010100 +010001010011 +100011000101 +011100011111 +100101100010 +011111011100 +011010010000 +011011011110 +101000000100 +110111111100 +100111110011 +110100010010 +100100011111 +000100001101 +001101100010 +000001010110 +110110010010 +001110000110 +101100110101 +111000110011 +111110111111 +001000111000 +010101111010 +010011101010 +010010100100 +000101001011 +010011011010 +100110111011 +100011110111 +111001001011 +011000000111 +000101101101 +001000011100 +110111111010 +011010101001 +110000010101 +011001110010 +001001001011 +111010110110 +101010000110 +110111010011 +101110011010 +011111110101 +010100110011 +010000100111 +010100001011 +011111010110 +110011111110 +100100111101 +000100111001 +011011101111 +111010001101 +100000110101 +110000000010 +111110101011 +011000010110 +001011101100 +010001110011 +111010111010 +100010011110 +001100000011 +000101110000 +111011101111 +111000000111 +100101011100 +010111000010 +010010111010 +001111111100 +101001000000 +000010111111 +001110011000 +111110011110 +101101000110 +101110100110 +100011011100 +101100000001 +111001111011 +101010101000 +010111101110 +000010100101 +100010111000 +101111000100 +000010011101 +011000111011 +010110011011 +010101100010 +100101010111 +011010101110 +110011011011 +110100101011 +110110111100 +000101110011 +011001110101 +111000100100 +101010000001 +110111100011 +100001000110 +001101011111 +101010000101 +011111111000 +000111011110 +100001111101 +011010010010 +101010011100 +101110101100 +000001010100 +101010100110 +001100101010 +101110100100 +100100111001 +110010100111 +000100001110 +111001110101 +110000101110 +000010011000 +010001110010 +000100010011 +011110100001 +001010111010 +010010111001 +010001001011 +101101001110 +011001000110 +110110011001 +110111000000 +011010111001 +001000010001 +010110011100 +000111110010 +101110000010 +000101001100 +110010111101 +001101010000 +010010011001 +010000010111 +011110011100 +111000100011 +110101011000 +101100100010 +111111100110 +010011111110 +111110000100 +100010100100 +101110111100 +110000010010 +011010000110 +000101100101 +001011001000 +111000110001 +000010001011 +111000010000 +100000101000 +001101011101 +101000101100 +010100111010 +101100000110 +001111010011 +011111110011 +101000100010 +111000001111 +111000111010 +001110000101 +110001010011 +011101011010 +101001000101 +111111001110 +111110110101 +110001110100 +101101010101 +000100011111 +101100100110 +000111011000 +101010110001 +000100110110 +101101110111 +100011101000 +010011110101 +110101111001 +110001110011 +000100111100 +010011010110 +101100000100 +011011101000 +101110000100 +100100010110 +111011100100 +011010110000 +100111011010 +110100011010 +101111111111 +110110011100 +110011100101 +100001111100 +111101100110 +110010001010 +010001001101 +101110100001 +111101001100 +110101000100 +011001110000 +010110100011 +111111000001 +110010100000 +101100110000 +110000000000 +001101110111 +001100001000 +001101101000 +101100100011 +001001011011 +011011101110 +010011111000 +110100111000 +011001101010 +111011111010 +100011111010 +001011011110 +111101100101 +100011100100 +101110101000 +000111110110 +100111010001 +110000011100 +111111111110 +110100010101 +101001110011 +000010001110 +000010001001 +110000110000 +001001000110 +110111110000 +010101010010 +111101110001 +110101101101 +010111000111 +111010110111 +001011011011 +001001100001 +101000101110 +101100110010 +100100100100 +011110111001 +011100000110 +100110110111 +111010001110 +110111111011 +011010111000 +011101100001 +011110001111 +110101011011 +000000001111 +101000001110 +111010101110 +001100001110 +010111000101 +111100111110 +001110101110 +011101111010 +011100001111 +000000000101 +111111000100 +000110010101 +001101000010 +111001111100 +101100010100 +001011001001 +010110000010 +010001101000 +001111101111 +011011011011 +111110000001 +100111011000 +011000000110 +100111101110 +101100000000 +101011000100 +111000011101 +100001101001 +100001101000 +011110001001 +110110011011 +011100010111 +000100111000 +000110000001 +000111001100 +000111111010 +110110000001 +000010011010 +100000101001 +101110001011 +100010110101 +110011010000 +111101111111 +100101011110 +101110011111 +111111011111 +011010010110 +010100101010 +001010100001 +000000110110 +110000111101 +010101101011 +110100100001 +011110001110 +111001010011 +001000001000 +000011111110 +111000100110 +100100101000 +011011000110 +111001100011 +111100101000 +110001100010 +011000000001 +111101010010 +001011000100 +010100110110 +000001111101 +001010000011 +010010100110 +100000011101 +101011010011 +000111110000 +101001001011 +100000001000 +010000111100 +000100101011 +011101010000 +101101010010 +100010011001 +001101100101 +101010010100 +111011111001 +101000010001 +001111000000 +011001000010 +100101010110 +000100001100 +010000101000 +110001111111 +000101010111 +110100101110 +111100110001 +101011000001 +101100101110 +110000101100 +101100111110 +111000010110 +010110101110 +001010100110 +110011010010 +111001100000 +100100100001 +000011011001 +111011011110 +011110000011 +101000100001 +101010010001 +101001100001 +100011001010 +100000000110 +010000100001 +001011011001 +110111010100 +111001000111 +111111110010 +101010100101 +100110001011 +010110011001 +110001111110 +100100000111 +110001110111 +101110010101 +010010111000 +000000011001 +101110000011 +100001010000 +001100001011 +111111001100 +111010010010 +010011100001 +100001111000 +000010000110 +010100011100 +101111101010 +100110010101 +101001101001 +100110101001 +001001011100 +001100011101 +001100011001 +000100100100 +100011010100 +000100001011 +111101100011 +011010001011 +111000101101 +101000010000 +010110001111 +111100010110 +000111111101 +100100111011 +101011000010 +011001100010 +101111011100 +101001110101 +101111101100 +110101001111 +111101100000 +101110011011 +100101110000 +001100111110 +010010101010 +001100100100 +001010101100 +001101100111 +110010011100 +010000001001 +011011110001 +100101110001 +101111100100 +110101101000 +110000100000 +101010011101 +111000010011 +100001010100 +000101101010 +101111001001 +000110101101 +101011010111 +000001001100 +100100111110 +000010111011 +000100000100 +100100001110 +011010000001 +010101110011 +111101101101 +101110101111 +100010100011 +110001011101 +110001011011 +100011110011 +111000011011 +110101110010 +000110010100 +101000001010 +011001011010 +111000001101 +101001101101 +111001000001 +000100000110 +110000000110 +010011001110 +011101000001 +010000101101 +010011011001 +010101001111 +011110110001 +100111110001 +101111011101 +111001000010 +111111111000 +001011101011 +001010100111 +111110111101 +011111011101 +000100111101 +010010000101 +001111101011 +110010100100 +110001011001 +010111111000 +100100101110 +110111011101 +100100000110 +111111011011 +101101111001 +111011010001 +000000011100 +011011101001 +100010111101 +110111000110 +001100110010 +111100111100 +111111000010 +100111010111 +100011001100 +110101011100 +001111001100 +101010000010 +110011010111 +110011010001 +001110110110 +000011011100 +001011001011 +100000000001 +110000100011 +011011110011 +100101100100 +011100100011 +100001110111 +011101001001 +011101100011 +011001001101 +011001000100 +010111001111 +100001001111 +101001100000 +110010001011 +010101011100 +011110110010 +111010000110 +000010100100 +110111000111 +001011010110 +010001000100 +110100010111 +010101100110 +010011101111 +101000001000 +011011001011 +100001000001 +101111110011 +100110110011 +100011100000 +101101000010 +000101011000 +111101110010 +110111010110 +101110000110 +110010110001 +000001101111 +110101101111 +000010111010 +100010010001 +111010011001 +011110011011 +000110101010 +010100001111 +010111011000 +000011110100 +010001010101 +110111011001 +010001111001 +111010111111 +010010010001 +010001100011 +111110001001 +101000010111 +001101110101 +111011000000 +001100110100 +000110001001 +110111101001 +010100110000 +101110111110 +100000000010 +110011010011 +010101100101 +110100110001 +100010100010 +101111111000 +111111100100 +011100001101 +000000100001 +100110100110 +010100100011 +000000001000 +101010110100 +100010001111 +111000001011 +010101000111 +001111110001 +000000111011 +111111101100 +001110110000 +011110111011 +001110100011 +100110000010 +010110110011 +001001101110 +110011101110 +111001100010 +111100010000 +000001010111 +001110001100 +110000101000 +100101111010 +001011001110 +100111101100 +111001101100 +110111110010 +101000110100 +100011100011 +100000100101 +100001111011 +011110101001 +000111000100 +010111100001 +111111010001 +100100001100 +111111010111 +001101111101 +000110001101 +010110000001 +111011010110 +011110110110 +011111001001 +001101011010 +010101110101 +110001100100 +101101011101 +011011010110 +001011001101 +101110110101 +001101010010 +101010001101 +100111000000 +110110101100 +001011111000 +000100111011 +000111110111 +101000111100 +110000110011 +000001000011 +000111111110 +001010010010 +100000111001 +010101111100 +001100010100 +010101110111 +110101010010 +000001001111 +101101111100 +011110111101 +111001010001 +000100101101 +011100100100 +110101000111 +011111100011 +110001001101 +100001100111 +101101100111 +000100110000 +101001100010 +001101101111 +100011000100 +011100101111 +011001100100 +011010011110 +010011001010 +011110101000 +111101111010 +110001010100 +000110010001 +001111011011 +110000111011 +000001111001 +010011001100 +100110101011 +111011001011 +001100110011 +010010011101 +100011110000 +110011110111 diff --git a/day04/input-twitter.txt b/day04/input-twitter.txt new file mode 100644 index 0000000..bf720cd --- /dev/null +++ b/day04/input-twitter.txt @@ -0,0 +1,601 @@ +42,44,71,26,70,92,77,45,6,18,79,54,31,34,64,32,16,55,81,11,90,10,21,87,0,84,8,23,1,12,60,20,57,68,61,82,49,59,22,2,63,33,50,39,28,30,88,41,69,72,98,73,7,65,53,35,96,67,36,4,51,75,24,86,97,85,66,29,74,40,93,58,9,62,95,91,80,99,14,19,43,37,27,56,94,25,83,48,17,38,78,15,52,76,5,13,46,89,47,3 + +48 69 68 49 13 +25 14 30 74 89 +16 38 19 24 29 +56 97 50 65 79 +57 52 5 27 76 + +65 69 73 60 66 +79 23 95 32 56 +36 51 26 1 28 +76 9 3 71 77 +41 15 61 68 14 + +77 86 11 96 50 +64 35 76 14 5 +31 20 53 84 66 +83 40 1 28 79 +15 74 92 65 39 + +20 55 65 13 48 + 1 3 98 78 29 +58 45 39 18 34 +43 26 83 33 50 +84 15 62 71 88 + + 0 10 3 19 47 +51 43 62 11 70 +38 59 56 81 55 +77 36 39 91 74 +23 14 67 12 80 + +36 18 47 14 60 +33 96 84 44 72 + 1 37 74 93 80 +50 95 59 90 27 +63 53 65 41 78 + +31 4 85 55 74 +65 73 2 52 0 +99 82 83 25 81 +70 75 90 91 89 +44 15 53 67 39 + +11 39 36 37 32 +84 19 58 34 48 + 3 69 81 41 59 +86 2 56 47 90 +31 12 17 14 40 + +28 13 34 45 37 +83 55 61 80 92 +77 33 44 40 31 +54 25 71 56 93 +60 70 20 65 9 + +82 60 11 40 90 + 0 75 86 55 58 +24 9 72 89 56 +54 16 22 70 57 +64 39 31 33 5 + +56 24 42 76 29 + 0 60 12 84 73 +72 81 99 15 70 +88 90 80 26 65 +61 47 19 7 17 + +28 64 80 3 41 +32 0 22 18 97 +87 94 1 52 83 +37 29 14 5 82 +73 58 56 88 49 + +70 23 43 81 66 +27 14 38 8 13 +26 17 6 67 83 +91 96 37 39 18 +19 25 77 98 53 + +33 12 42 4 44 +88 99 61 27 43 +68 13 38 57 87 +59 20 2 90 40 +80 64 77 94 21 + +47 29 58 72 24 +26 66 42 68 36 +34 80 76 94 59 +61 41 64 44 50 + 2 28 20 9 17 + +88 3 36 39 0 +83 54 86 9 92 +14 82 34 62 73 +63 95 78 23 55 +24 41 47 2 58 + +78 85 93 38 30 +41 0 29 39 40 +28 76 98 60 96 +26 94 35 1 82 +66 56 31 64 45 + +30 15 12 44 24 +32 49 99 76 8 +64 56 43 42 19 +62 83 33 48 54 +89 74 72 3 91 + +76 48 51 11 16 +67 78 71 62 58 +56 29 74 5 17 + 9 81 65 12 39 +19 24 1 13 30 + +72 96 63 4 62 +71 47 9 56 90 +12 86 52 10 3 +49 83 73 7 87 +85 64 48 81 32 + +28 72 38 47 63 +37 14 13 51 27 + 8 82 46 86 55 +22 18 59 81 10 +77 21 58 24 25 + +92 49 67 19 85 +45 50 41 79 84 + 4 0 75 17 53 +91 23 28 82 6 +60 37 18 13 69 + + 1 27 74 89 4 +29 9 78 48 54 +10 38 13 40 49 +71 73 79 77 17 +25 22 91 20 2 + +94 40 75 63 10 +89 81 32 72 73 + 8 65 68 62 58 +76 97 57 34 66 + 0 82 14 90 11 + +30 89 82 29 85 +41 78 91 73 14 +66 98 21 23 16 +63 65 99 10 58 +67 51 17 11 19 + +37 74 52 31 28 +48 14 13 72 59 +45 30 46 7 9 +89 77 16 33 81 +62 4 15 5 96 + +72 63 77 57 86 + 8 65 11 44 69 +78 52 14 84 80 +36 42 30 59 33 +46 10 92 19 26 + +13 65 92 1 5 +71 54 28 33 98 +42 94 30 35 78 +57 85 25 60 7 +43 80 48 97 27 + +29 64 61 99 74 +94 68 72 36 51 +11 83 21 96 86 +56 53 25 48 92 +60 15 19 50 76 + +12 61 89 99 30 +84 50 34 74 55 +26 72 36 86 3 + 4 79 6 8 40 + 5 83 82 66 44 + +40 93 61 20 50 +90 7 60 38 16 +22 52 3 92 5 +32 0 57 58 30 +68 28 81 46 54 + +86 72 55 48 24 +21 3 25 22 20 +16 64 97 77 68 +66 2 9 47 30 +36 87 67 23 0 + +18 54 51 38 44 +73 50 68 59 61 +45 0 5 80 19 +79 65 66 30 15 +26 74 23 99 95 + +75 9 34 74 86 +53 14 25 61 31 +17 60 10 32 93 +47 33 0 77 68 +38 45 4 55 39 + +32 81 21 11 31 +30 56 3 25 18 +80 96 20 65 71 +41 67 22 97 10 +93 68 17 13 1 + +54 42 23 8 83 +87 63 36 95 81 +40 14 13 6 18 +44 16 89 59 69 +17 10 73 76 5 + +36 69 2 13 74 +17 7 9 42 54 +79 21 5 19 66 +68 22 4 85 25 +63 23 10 75 87 + +27 61 41 78 4 +77 76 82 85 17 +74 0 54 63 34 + 6 56 1 16 89 + 8 12 36 59 81 + +37 22 9 36 19 +79 61 78 96 91 +41 11 42 8 24 +85 84 35 47 31 +50 16 62 53 21 + +93 61 14 78 75 +51 88 3 54 37 +57 36 23 77 91 +72 47 39 65 35 + 2 58 86 81 27 + + 0 34 82 13 53 + 5 88 42 11 45 +26 81 28 46 24 +67 71 95 6 9 +69 97 41 15 7 + +92 25 31 62 35 +83 72 54 61 41 +28 51 45 79 3 +16 38 52 58 2 +37 7 36 21 22 + +92 33 21 47 89 +14 40 23 82 59 +42 73 4 94 72 +67 63 16 8 75 +70 43 48 81 13 + +63 99 85 39 15 +58 68 62 50 24 +25 60 26 5 94 + 8 53 75 46 61 +66 3 16 47 42 + +21 89 33 61 12 +36 83 76 80 24 +93 95 4 0 7 +91 43 17 14 64 +84 71 45 44 5 + +23 74 19 40 42 +83 75 15 12 21 + 4 11 90 51 53 + 1 77 54 62 82 +28 5 46 52 79 + +73 60 22 3 71 +53 67 30 58 15 +59 89 40 21 31 +13 42 84 97 10 +81 6 70 88 52 + +91 26 38 80 79 +46 24 66 53 93 +25 2 58 59 63 +65 78 36 7 1 +83 72 50 39 21 + +31 22 32 36 79 +97 60 62 43 96 + 7 15 71 89 87 +76 95 10 19 48 +68 69 29 24 56 + +25 40 47 50 31 +15 13 45 66 30 +12 67 95 3 48 +43 61 60 75 59 +16 69 98 6 88 + +10 80 15 17 23 +87 52 56 51 22 +43 58 96 63 27 +29 13 33 66 25 +16 97 88 90 77 + + 5 11 90 8 18 +51 42 73 25 85 +69 94 79 53 32 +72 23 57 15 3 +78 28 47 37 35 + +80 81 44 53 14 +36 71 35 83 30 +94 40 2 99 97 +16 48 85 76 20 +56 25 89 88 39 + +34 54 9 36 44 +14 19 0 64 40 +25 78 74 18 13 +82 10 6 92 95 +84 8 75 98 45 + +95 8 27 29 89 +33 79 88 59 24 + 4 28 35 72 97 +22 77 85 94 76 +46 43 68 65 67 + +42 13 3 20 43 +12 98 31 69 4 +56 67 25 89 71 +16 29 33 1 36 +27 80 0 47 5 + +62 66 86 63 70 +44 27 5 78 85 +49 40 58 61 89 +37 43 36 68 28 +22 7 35 52 57 + +73 62 90 75 81 +31 94 77 44 14 +18 9 10 93 17 +89 39 63 66 53 +42 88 59 36 2 + +54 52 76 79 61 +95 39 3 41 63 +74 97 38 0 15 + 6 23 11 10 83 +46 67 96 77 29 + + 0 76 9 84 52 +45 27 29 56 85 +89 63 77 49 65 + 4 13 78 33 37 +64 7 1 94 12 + +16 32 78 73 90 + 2 48 57 75 23 +95 27 33 12 51 +69 26 17 42 61 +67 89 74 44 15 + +47 90 5 76 96 +71 24 9 69 16 +64 23 98 66 81 +29 34 63 72 22 +41 17 45 87 57 + +48 45 87 14 1 +86 28 6 62 46 +27 92 11 49 94 + 0 90 10 70 20 + 2 59 88 96 33 + +16 29 68 4 82 +56 67 2 69 25 +94 47 61 51 32 +70 31 21 43 42 +76 60 17 59 92 + +18 6 87 56 61 +89 53 5 47 69 +93 57 78 41 82 +27 24 51 99 29 +42 74 28 75 97 + +21 62 60 86 85 +24 35 1 29 2 +89 15 72 70 39 +99 79 87 93 34 +53 71 10 20 50 + +76 55 18 28 33 +37 14 64 7 0 +13 60 54 62 5 +61 3 99 56 10 +30 86 47 24 39 + +24 96 18 55 52 +79 73 91 14 88 +42 37 12 64 21 +45 51 33 34 3 + 8 77 47 40 16 + +55 54 98 85 97 +80 21 27 15 36 + 1 26 7 70 44 +48 25 59 0 38 + 5 58 18 3 12 + +76 78 79 92 88 + 7 80 57 68 28 +27 16 8 10 62 +32 98 64 60 39 +52 4 85 48 35 + +94 64 19 67 12 +49 61 77 89 31 +80 11 18 26 83 +21 76 66 85 91 +60 88 28 86 69 + +88 27 52 28 89 + 3 5 15 78 97 +79 34 7 42 80 +14 83 90 68 65 +35 13 58 71 17 + +90 10 0 30 69 +64 75 61 62 97 + 3 29 40 58 57 +98 48 5 37 23 +70 12 6 36 7 + +27 87 59 84 83 +19 91 24 32 78 +62 14 58 18 68 +37 1 99 44 94 +71 23 54 8 74 + +12 78 7 55 59 +81 87 69 49 22 +79 99 84 58 65 +40 42 85 74 91 +61 39 51 88 36 + + 2 9 62 76 11 +87 36 72 80 96 +28 16 7 17 39 +68 33 5 71 92 +41 22 70 4 52 + +49 1 23 37 60 +72 79 2 40 13 +31 47 59 48 33 +96 80 62 3 12 +34 89 75 18 95 + +34 72 3 78 60 +57 51 47 26 7 + 2 50 82 4 56 +81 95 22 42 73 +25 37 97 65 6 + +86 23 17 39 53 + 6 49 66 32 30 +71 40 64 11 8 +82 60 18 13 68 +12 7 42 52 72 + +16 0 88 84 98 +42 92 19 89 2 +51 26 1 33 10 +40 87 32 17 27 + 7 68 35 50 11 + +39 52 56 23 75 +66 64 26 10 53 +46 25 60 48 28 +61 27 98 40 59 +65 95 85 13 62 + +74 32 72 43 23 +26 90 83 68 82 +48 60 39 17 54 +51 36 37 85 88 +99 81 69 50 93 + +16 71 3 29 81 +18 97 17 20 48 +95 38 61 87 98 +52 76 8 42 36 +45 4 78 55 89 + +64 18 54 39 77 +36 66 98 88 38 +49 50 74 69 65 +71 3 93 34 82 +23 26 92 15 33 + +18 99 45 69 8 +32 75 47 2 91 +41 55 90 5 3 +93 11 84 78 56 +80 57 51 50 74 + +90 0 19 53 11 +69 50 47 16 26 + 5 32 73 51 14 +84 37 34 7 56 +68 10 74 29 62 + +42 80 7 72 35 + 1 50 15 0 49 +43 19 41 26 48 +65 2 36 17 20 +85 32 5 75 30 + + 8 80 72 1 81 +90 69 48 36 23 +55 16 35 41 5 +71 12 59 29 79 +60 92 53 73 96 + +45 55 75 77 6 + 1 91 76 5 39 +54 65 61 34 8 +27 59 47 85 44 +66 29 36 80 60 + +82 75 32 29 14 +41 21 20 68 89 +80 64 56 33 31 +13 12 55 81 7 +36 78 4 24 50 + +55 28 90 35 22 +77 92 56 16 47 +48 4 67 95 37 +63 80 36 12 44 +88 58 10 68 84 + + 7 88 53 55 60 +81 99 91 28 70 +75 8 0 40 84 +17 24 30 71 56 +78 20 83 29 74 + +10 16 11 5 38 +72 77 37 68 81 +78 13 45 89 46 +90 49 18 53 42 +71 0 28 26 75 + +36 73 23 44 7 + 1 96 17 11 42 +77 54 68 80 79 +85 56 28 58 52 +57 2 43 18 61 + + 9 18 29 44 61 +13 80 57 95 47 + 2 15 72 50 65 +77 12 42 64 36 +49 67 31 6 90 + +99 74 9 64 59 +17 87 86 5 28 +44 41 82 53 45 +95 51 98 50 94 +22 37 46 25 4 + +46 54 82 17 77 +88 63 50 65 64 + 5 19 39 21 11 +57 58 20 6 40 +99 37 66 70 95 + +30 68 11 29 13 + 1 69 0 9 93 +33 57 23 50 71 + 8 77 6 25 45 +34 12 60 7 28 + +91 53 88 47 40 +77 92 87 37 84 +89 95 78 21 39 +65 20 54 94 85 +45 74 30 49 11 + + 3 58 90 93 96 +53 66 24 43 32 +62 84 19 82 22 +13 89 20 97 1 +15 91 51 68 49 diff --git a/day05/input-twitter.txt b/day05/input-twitter.txt new file mode 100644 index 0000000..7e1d816 --- /dev/null +++ b/day05/input-twitter.txt @@ -0,0 +1,500 @@ +561,579 -> 965,175 +735,73 -> 316,73 +981,566 -> 981,11 +631,588 -> 631,910 +919,964 -> 70,115 +122,463 -> 261,602 +502,248 -> 774,248 +636,797 -> 797,958 +444,815 -> 444,554 +734,97 -> 734,210 +871,692 -> 368,692 +842,261 -> 606,261 +332,43 -> 206,43 +371,220 -> 18,573 +594,782 -> 127,782 +952,953 -> 72,73 +13,143 -> 755,885 +827,741 -> 827,168 +65,84 -> 839,858 +299,598 -> 299,588 +478,76 -> 607,76 +656,748 -> 61,153 +566,447 -> 857,447 +497,19 -> 310,206 +354,721 -> 538,721 +124,17 -> 124,339 +105,595 -> 843,595 +686,902 -> 919,669 +683,183 -> 776,183 +415,45 -> 415,942 +16,852 -> 843,25 +945,954 -> 23,32 +935,174 -> 485,624 +712,297 -> 792,297 +495,90 -> 497,90 +836,259 -> 836,988 +12,59 -> 916,963 +72,648 -> 72,185 +625,400 -> 507,282 +809,206 -> 809,538 +472,909 -> 472,213 +847,162 -> 189,162 +178,233 -> 178,777 +404,276 -> 404,516 +943,178 -> 400,721 +882,429 -> 882,920 +12,976 -> 900,88 +33,53 -> 958,53 +104,37 -> 609,542 +207,736 -> 800,143 +331,454 -> 331,715 +956,52 -> 26,982 +189,544 -> 189,368 +194,258 -> 451,258 +75,383 -> 75,642 +770,861 -> 915,716 +300,330 -> 300,683 +649,175 -> 344,175 +948,25 -> 42,931 +245,313 -> 748,816 +677,126 -> 677,204 +507,948 -> 507,88 +343,229 -> 343,677 +946,933 -> 472,459 +830,403 -> 830,660 +626,651 -> 626,213 +828,932 -> 828,487 +792,101 -> 216,101 +870,111 -> 50,931 +770,464 -> 290,944 +264,700 -> 941,23 +894,846 -> 630,846 +19,40 -> 957,978 +911,425 -> 393,425 +26,594 -> 26,475 +754,287 -> 754,302 +105,483 -> 807,483 +25,902 -> 684,243 +300,164 -> 532,396 +79,346 -> 79,423 +649,234 -> 649,331 +113,115 -> 962,964 +251,50 -> 531,330 +908,177 -> 908,817 +905,106 -> 905,570 +958,55 -> 41,972 +985,984 -> 62,61 +794,802 -> 328,802 +984,273 -> 370,887 +271,758 -> 237,792 +443,534 -> 835,926 +367,762 -> 367,521 +527,737 -> 717,737 +89,921 -> 89,299 +521,279 -> 108,279 +810,344 -> 760,394 +292,944 -> 292,941 +265,471 -> 265,949 +923,378 -> 415,886 +125,656 -> 434,656 +51,460 -> 51,542 +297,178 -> 297,587 +432,122 -> 241,122 +916,855 -> 451,390 +48,838 -> 636,838 +802,659 -> 784,641 +316,961 -> 417,961 +342,675 -> 568,675 +345,60 -> 352,60 +495,595 -> 284,806 +111,975 -> 815,271 +315,239 -> 315,333 +14,16 -> 930,932 +380,373 -> 380,346 +212,141 -> 212,691 +415,555 -> 651,319 +497,565 -> 96,164 +902,451 -> 735,451 +118,751 -> 521,751 +923,680 -> 613,370 +641,897 -> 233,489 +804,447 -> 259,447 +556,751 -> 968,751 +409,638 -> 409,65 +512,50 -> 432,130 +28,25 -> 988,985 +563,888 -> 563,502 +912,691 -> 950,691 +592,934 -> 592,433 +465,886 -> 408,886 +928,547 -> 671,290 +486,953 -> 496,943 +942,943 -> 42,43 +672,759 -> 266,759 +587,195 -> 763,371 +95,354 -> 687,946 +890,280 -> 734,124 +945,906 -> 945,168 +306,952 -> 306,257 +143,160 -> 810,827 +988,407 -> 167,407 +274,472 -> 817,472 +252,113 -> 430,291 +294,767 -> 176,767 +456,142 -> 423,142 +908,107 -> 176,839 +255,278 -> 447,86 +100,44 -> 969,913 +899,184 -> 899,986 +872,877 -> 47,52 +122,786 -> 228,786 +132,777 -> 312,777 +242,86 -> 36,86 +726,671 -> 690,635 +386,859 -> 790,455 +468,62 -> 636,62 +920,869 -> 920,790 +610,66 -> 633,43 +428,962 -> 428,717 +935,881 -> 278,224 +314,204 -> 458,204 +906,515 -> 712,515 +332,223 -> 744,223 +707,802 -> 842,802 +775,36 -> 946,207 +906,206 -> 142,970 +534,312 -> 534,622 +26,687 -> 26,417 +758,258 -> 688,188 +830,591 -> 830,286 +856,182 -> 924,182 +78,755 -> 78,880 +157,726 -> 157,904 +316,30 -> 752,30 +958,977 -> 10,29 +831,813 -> 284,813 +472,843 -> 989,326 +133,99 -> 133,537 +161,540 -> 846,540 +176,739 -> 78,739 +28,33 -> 969,974 +65,160 -> 879,974 +355,943 -> 355,685 +893,512 -> 225,512 +789,565 -> 789,81 +253,832 -> 943,832 +372,716 -> 372,605 +781,293 -> 702,293 +469,497 -> 469,149 +692,499 -> 933,258 +477,548 -> 477,849 +131,894 -> 131,483 +934,765 -> 13,765 +830,55 -> 436,449 +615,496 -> 531,412 +78,634 -> 78,115 +205,586 -> 205,661 +871,742 -> 871,590 +218,223 -> 218,741 +56,897 -> 872,81 +30,886 -> 728,188 +369,877 -> 369,963 +202,55 -> 930,783 +251,131 -> 251,749 +498,313 -> 498,126 +688,876 -> 188,876 +147,968 -> 607,508 +400,693 -> 235,693 +206,853 -> 206,211 +401,158 -> 187,158 +35,957 -> 973,19 +517,822 -> 517,282 +836,492 -> 433,895 +751,114 -> 100,114 +80,359 -> 710,359 +302,871 -> 812,871 +853,159 -> 853,548 +351,663 -> 451,763 +895,260 -> 307,848 +369,455 -> 812,455 +936,594 -> 393,51 +55,696 -> 972,696 +422,804 -> 192,804 +110,893 -> 120,883 +747,645 -> 747,181 +636,344 -> 636,88 +15,949 -> 543,421 +985,948 -> 51,14 +164,435 -> 164,27 +30,966 -> 965,31 +600,472 -> 985,472 +119,161 -> 91,161 +180,521 -> 180,802 +98,70 -> 449,70 +157,190 -> 613,190 +816,501 -> 338,23 +387,219 -> 387,75 +115,579 -> 115,734 +26,153 -> 26,450 +733,783 -> 462,783 +19,893 -> 759,893 +646,726 -> 286,726 +631,139 -> 631,664 +490,668 -> 490,231 +282,958 -> 282,816 +338,55 -> 898,55 +891,420 -> 443,420 +222,917 -> 222,759 +302,430 -> 465,430 +946,49 -> 946,753 +101,971 -> 879,193 +329,122 -> 888,122 +524,714 -> 154,344 +89,769 -> 552,306 +749,680 -> 749,536 +161,510 -> 161,317 +143,608 -> 543,608 +677,526 -> 658,526 +348,956 -> 512,956 +851,973 -> 358,480 +850,247 -> 56,247 +284,274 -> 381,274 +855,944 -> 101,190 +338,102 -> 467,102 +225,875 -> 225,303 +120,944 -> 945,119 +485,386 -> 305,386 +321,866 -> 627,866 +44,207 -> 44,244 +514,763 -> 514,578 +617,930 -> 617,371 +963,838 -> 451,326 +813,904 -> 174,265 +901,983 -> 512,594 +979,929 -> 527,477 +533,383 -> 59,857 +871,724 -> 828,767 +174,133 -> 174,75 +686,911 -> 15,911 +361,406 -> 440,327 +759,284 -> 275,284 +231,431 -> 203,431 +759,673 -> 839,673 +914,897 -> 914,937 +598,643 -> 598,722 +697,297 -> 697,55 +735,918 -> 735,81 +375,538 -> 375,403 +868,86 -> 170,784 +390,142 -> 390,553 +569,564 -> 569,800 +514,276 -> 717,73 +756,768 -> 182,768 +349,428 -> 349,364 +370,386 -> 370,621 +191,224 -> 191,447 +672,983 -> 209,983 +281,854 -> 872,854 +898,959 -> 898,207 +961,597 -> 561,197 +965,837 -> 338,210 +120,675 -> 914,675 +401,661 -> 401,167 +706,536 -> 706,598 +856,337 -> 283,910 +980,535 -> 156,535 +941,888 -> 179,126 +585,47 -> 933,395 +481,435 -> 481,818 +989,978 -> 45,34 +693,332 -> 693,528 +863,605 -> 507,961 +586,429 -> 252,429 +37,61 -> 962,986 +952,26 -> 16,962 +926,492 -> 863,492 +661,110 -> 279,110 +524,879 -> 176,879 +298,424 -> 858,984 +498,627 -> 498,963 +468,608 -> 256,820 +61,491 -> 472,491 +38,922 -> 938,22 +361,938 -> 361,46 +567,981 -> 567,973 +399,575 -> 902,72 +618,740 -> 818,540 +79,115 -> 929,965 +612,972 -> 612,698 +217,626 -> 474,369 +961,593 -> 961,70 +287,450 -> 287,676 +703,45 -> 871,45 +756,778 -> 410,778 +960,970 -> 42,52 +254,513 -> 554,813 +620,339 -> 601,320 +650,344 -> 650,33 +597,349 -> 597,491 +761,106 -> 891,236 +323,846 -> 883,846 +678,190 -> 134,190 +400,848 -> 400,271 +198,68 -> 463,68 +522,805 -> 522,445 +979,134 -> 719,134 +584,493 -> 584,471 +635,10 -> 635,768 +867,795 -> 31,795 +157,824 -> 939,42 +354,381 -> 653,381 +45,628 -> 45,860 +959,870 -> 808,719 +587,810 -> 291,810 +248,34 -> 83,199 +656,505 -> 656,388 +966,90 -> 966,934 +957,834 -> 267,144 +690,367 -> 447,367 +153,948 -> 153,510 +467,260 -> 467,332 +69,43 -> 931,905 +913,92 -> 913,827 +226,504 -> 226,615 +21,737 -> 21,819 +391,289 -> 391,341 +566,639 -> 723,639 +160,824 -> 167,824 +77,69 -> 379,371 +756,864 -> 756,960 +315,569 -> 927,569 +964,864 -> 964,167 +136,277 -> 136,184 +524,450 -> 898,450 +971,903 -> 222,903 +962,958 -> 70,66 +525,570 -> 45,90 +164,352 -> 164,433 +703,61 -> 668,61 +289,136 -> 768,136 +50,65 -> 861,876 +676,199 -> 676,411 +294,370 -> 56,132 +299,840 -> 620,840 +845,776 -> 845,66 +61,18 -> 909,866 +738,670 -> 738,438 +974,618 -> 974,169 +669,800 -> 607,800 +935,427 -> 537,427 +441,898 -> 441,462 +490,768 -> 490,239 +275,788 -> 947,116 +650,412 -> 493,255 +382,89 -> 950,89 +865,194 -> 865,266 +977,677 -> 459,677 +128,18 -> 985,875 +199,646 -> 199,611 +666,149 -> 666,504 +129,539 -> 129,266 +332,364 -> 332,211 +619,132 -> 619,580 +426,69 -> 426,236 +123,334 -> 22,334 +792,57 -> 449,57 +33,976 -> 987,22 +221,614 -> 809,614 +245,379 -> 280,379 +895,238 -> 895,500 +957,423 -> 119,423 +917,50 -> 346,621 +183,263 -> 708,263 +452,174 -> 452,216 +404,681 -> 287,798 +931,54 -> 474,54 +815,264 -> 151,928 +736,507 -> 295,66 +200,160 -> 901,861 +709,975 -> 100,366 +126,468 -> 393,201 +822,627 -> 287,92 +101,285 -> 176,285 +250,581 -> 250,799 +257,446 -> 257,927 +436,423 -> 640,219 +468,229 -> 987,748 +394,245 -> 501,245 +37,931 -> 684,931 +123,54 -> 123,453 +75,364 -> 758,364 +256,62 -> 143,62 +933,299 -> 933,410 +313,887 -> 313,34 +453,833 -> 457,833 +614,87 -> 614,816 +48,113 -> 48,646 +977,571 -> 977,967 +982,989 -> 32,39 +773,749 -> 239,215 +983,989 -> 218,224 +885,606 -> 169,606 +63,53 -> 63,29 +96,870 -> 820,870 +544,895 -> 389,740 +61,246 -> 296,246 +812,82 -> 53,841 +749,399 -> 749,935 +882,168 -> 274,168 +566,673 -> 499,606 +572,558 -> 806,792 +923,79 -> 923,844 +875,416 -> 875,112 +393,18 -> 393,149 +389,844 -> 147,844 +207,157 -> 207,949 +467,644 -> 728,644 +36,29 -> 587,29 +448,370 -> 448,247 +43,283 -> 43,122 +709,837 -> 709,265 +294,273 -> 98,273 +625,869 -> 26,270 +156,26 -> 145,26 +393,544 -> 393,456 +708,536 -> 64,536 +324,519 -> 324,950 +138,788 -> 533,788 +117,818 -> 254,681 +953,766 -> 306,119 +669,325 -> 669,940 +421,416 -> 715,416 +886,101 -> 886,371 +786,656 -> 786,169 +123,641 -> 622,142 +658,504 -> 985,177 +440,505 -> 74,139 +300,616 -> 300,473 +265,729 -> 983,11 +501,396 -> 274,396 +877,123 -> 113,887 +544,78 -> 544,604 +287,944 -> 287,391 +766,854 -> 97,185 +959,49 -> 127,881 +715,727 -> 715,647 +339,557 -> 339,610 +19,133 -> 87,133 +872,94 -> 932,94 +966,935 -> 95,64 +137,942 -> 918,161 +162,718 -> 598,282 +256,18 -> 256,47 +597,658 -> 314,941 +817,685 -> 137,685 +20,14 -> 988,982 +970,916 -> 100,46 +672,152 -> 672,842 +468,825 -> 468,911 +673,731 -> 267,325 diff --git a/day06/input-twitter.txt b/day06/input-twitter.txt new file mode 100644 index 0000000..ac8320d --- /dev/null +++ b/day06/input-twitter.txt @@ -0,0 +1 @@ +2,5,5,3,2,2,5,1,4,5,2,1,5,5,1,2,3,3,4,1,4,1,4,4,2,1,5,5,3,5,4,3,4,1,5,4,1,5,5,5,4,3,1,2,1,5,1,4,4,1,4,1,3,1,1,1,3,1,1,2,1,3,1,1,1,2,3,5,5,3,2,3,3,2,2,1,3,1,3,1,5,5,1,2,3,2,1,1,2,1,2,1,2,2,1,3,5,4,3,3,2,2,3,1,4,2,2,1,3,4,5,4,2,5,4,1,2,1,3,5,3,3,5,4,1,1,5,2,4,4,1,2,2,5,5,3,1,2,4,3,3,1,4,2,5,1,5,1,2,1,1,1,1,3,5,5,1,5,5,1,2,2,1,2,1,2,1,2,1,4,5,1,2,4,3,3,3,1,5,3,2,2,1,4,2,4,2,3,2,5,1,5,1,1,1,3,1,1,3,5,4,2,5,3,2,2,1,4,5,1,3,2,5,1,2,1,4,1,5,5,1,2,2,1,2,4,5,3,3,1,4,4,3,1,4,2,4,4,3,4,1,4,5,3,1,4,2,2,3,4,4,4,1,4,3,1,3,4,5,1,5,4,4,4,5,5,5,2,1,3,4,3,2,5,3,1,3,2,2,3,1,4,5,3,5,5,3,2,3,1,2,5,2,1,3,1,1,1,5,1 diff --git a/day06/lanternfish.sh b/day06/lanternfish.sh index 3050832..c81682c 100755 --- a/day06/lanternfish.sh +++ b/day06/lanternfish.sh @@ -7,6 +7,9 @@ declare -a fish filename="${1:-example.txt}" +iter_1=80 +iter_2=256 + exec 3<"$filename" OLDIFS="$IFS" @@ -14,16 +17,34 @@ IFS="," read -u 3 -a fish IFS="$OLDIFS" -for (( d=1; d<=80; d++ )); do - start_fish_count=${#fish[@]} - for (( i=0; i<$start_fish_count; i++ )); do - if [ ${fish[$i]} -eq 0 ]; then - fish+=(8) - fish[$i]=6 - else - ((fish[$i]-=1)) || fish[$i]=0 - fi +buckets=(0 0 0 0 0 0 0 0 0) + +get_count() { + local count=0 + + for (( i=0; i<=8; i++ )); do + ((count+=${buckets[$i]})) done + + echo "$count" +} + +for f in "${fish[@]}"; do + ((buckets[$f]+=1)) +done + +for (( d=1; d<=$iter_2; d++ )); do + orig_zeros=${buckets[0]} + for (( i=1; i<=8; i++ )); do + temp=${buckets[$i]} + ((buckets[$((i-1))]+=$temp)) || true + buckets[$i]=0 + done + ((buckets[8]+=$orig_zeros)) || true + ((buckets[6]+=$orig_zeros)) || true + ((buckets[0]-=$orig_zeros)) || buckets[0]=0 + + [ $d -eq $iter_1 ] && echo "After $iter_1 days there are $(get_count) fish" done -echo "After 80 days there are ${#fish[@]} fish" +echo "After $iter_2 days there are $(get_count) fish" diff --git a/day06/lanternfish2.sh b/day06/lanternfish2.sh deleted file mode 100755 index 924ac46..0000000 --- a/day06/lanternfish2.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -set -u -set -e - -declare -a fish - -filename="${1:-example.txt}" - -exec 3<"$filename" - -OLDIFS="$IFS" -IFS="," -read -u 3 -a fish -IFS="$OLDIFS" - -buckets=(0 0 0 0 0 0 0 0 0) - -for f in "${fish[@]}"; do - ((buckets[$f]+=1)) -done - -for (( d=1; d<=256; d++ )); do - orig_zeros=${buckets[0]} - for (( i=1; i<=8; i++ )); do - temp=${buckets[$i]} - ((buckets[$((i-1))]+=$temp)) || true - buckets[$i]=0 - done - ((buckets[8]+=$orig_zeros)) || true - ((buckets[6]+=$orig_zeros)) || true - ((buckets[0]-=$orig_zeros)) || buckets[0]=0 -done - -count=0 -for (( i=0; i<=8; i++ )); do - ((count+=${buckets[$i]})) -done - -echo "After 256 days there are $count fish" diff --git a/day07/input-twitter.txt b/day07/input-twitter.txt new file mode 100644 index 0000000..5f760b0 --- /dev/null +++ b/day07/input-twitter.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,334,7,6,1172,110,184,1322,1248,516,0,259,331,1291,51,753,878,27,664,859,391,41,43,317,884,529,168,502,1236,908,1203,676,349,117,268,364,668,256,216,435,296,568,298,600,53,775,3,782,387,305,1648,254,1477,488,234,349,1410,55,456,202,394,29,578,400,188,1172,306,375,320,561,167,1078,643,279,339,12,1004,290,26,49,359,139,218,129,139,742,239,290,471,1899,1446,1046,657,895,90,196,467,1105,723,269,638,72,363,199,704,769,658,124,1001,1160,1150,806,154,407,238,155,499,1170,779,156,1041,728,124,349,397,916,24,1079,1275,222,1852,180,24,126,475,228,464,5,133,130,1119,108,895,396,1285,670,52,107,714,58,1143,714,144,1193,1754,157,802,1,1000,1001,1116,823,256,746,16,281,341,1363,233,26,46,474,91,1035,422,681,6,316,1564,31,162,194,116,904,1223,192,1552,74,1282,398,776,343,187,45,193,1311,111,161,27,660,1283,124,215,331,158,35,65,852,290,1199,285,555,630,309,375,8,301,32,706,74,722,303,474,857,12,211,54,391,171,66,1373,931,1272,294,619,470,75,195,40,386,98,127,332,183,741,1502,383,714,148,213,1053,130,491,66,1010,820,48,867,1462,901,866,1110,171,1095,147,206,1220,1242,839,1187,90,918,399,262,821,52,159,3,750,1464,1772,128,43,888,225,488,1257,281,597,321,281,1240,821,205,384,66,331,23,241,327,348,122,218,867,114,246,19,698,59,1218,28,61,238,135,773,64,54,401,297,1148,465,159,1339,45,650,702,861,0,340,5,129,80,171,55,135,1021,1420,22,330,199,0,288,1318,725,147,233,586,1530,268,512,19,94,497,389,530,1852,102,1175,38,1053,551,971,65,1254,32,409,756,531,2,758,678,351,9,788,590,176,1367,389,495,1608,489,75,341,198,68,27,3,109,635,457,381,571,978,16,359,1474,668,80,133,1337,608,1087,96,690,9,375,1012,1016,173,71,1482,64,1334,231,439,670,1092,1327,1637,1971,174,174,367,594,827,1497,296,128,13,348,780,1682,202,1060,191,1602,83,1437,91,519,601,242,179,70,158,84,220,869,1363,1119,648,185,162,961,281,479,621,13,1303,208,1117,373,141,995,584,82,994,1032,899,654,762,606,532,1108,277,89,515,422,696,275,1693,93,864,146,56,352,182,439,6,331,39,83,23,1880,724,87,59,129,889,9,1598,57,215,876,25,837,323,403,1229,761,34,1014,7,65,3,238,588,327,1307,1069,1272,166,162,1613,92,169,16,19,272,613,1069,861,452,1070,330,667,660,49,1178,183,600,1038,290,857,1505,1029,146,504,284,175,73,485,909,615,251,176,843,394,934,1056,71,290,199,258,67,4,404,912,10,1564,807,865,6,550,1022,506,988,195,480,13,981,18,220,156,341,491,220,326,480,1251,235,200,1398,179,196,187,316,1299,997,504,104,189,419,347,458,172,48,744,88,56,183,233,337,1107,475,337,54,753,49,33,612,301,157,73,261,1122,304,352,264,265,879,13,96,1153,262,40,653,196,326,1523,394,79,297,10,1326,21,411,789,553,4,712,123,392,286,671,141,28,168,544,9,537,490,396,1210,1800,354,228,35,1217,784,223,551,290,386,106,152,309,2,777,558,813,380,184,187,629,841,233,1027,823,1104,205,1528,981,197,674,517,1537,512,175,1117,730,397,803,1380,216,611,142,85,680,35,22,598,1530,44,236,265,358,1227,1189,1831,886,107,314,325,219,724,619,862,0,146,1358,172,94,53,225,648,152,583,666,927,99,394,150,113,959,528,1233,65,1408,181,114,38,550,282,742,936,1278,748,178,344,180,375,1003,97,623,98,309,248,277,902,466,1298,878,804,2,697,509,809,847,133,1215,573,1497,255,99,58,605,841,849,22,120,409,339,937,1333,943,823,1146,435,454,264,26,25,848,225,139,208,1125,12,242,241,2,382,258,579,5,1194,402,1069,874,1302,191,307,313,643,1080,505,1032,1099,267,160,821,520,55,30,362,77,270,648,177,805,977,464,872,326,1176,102,47,1254,92,217,399,184,283,770,282,1488,456,691,508,243,856,112,294,948,938,27,91,262,549,165,985,21,968,380,143,118,365,1562,318,610,1167,112,750,279,212,710,331,1022,1143,1566,17,357,672,1391,877,1051,105,21,219,1392,78,857,223,676,350,117,82,703,460,1332,129,235,25,133,195,474,791,223,170,1482,139,63,967,286,73,343,230,551,1035,44,1428,1589,542,592,7 diff --git a/day08/input-twitter.txt b/day08/input-twitter.txt new file mode 100644 index 0000000..da96389 --- /dev/null +++ b/day08/input-twitter.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