Compare commits

...

2 Commits

Author SHA1 Message Date
Tyrel Souza 84a6d0c599
day10 part 1 2023-12-11 22:54:41 -05:00
Tyrel Souza a5e6e23acc
day9 part 1 and 2 2023-12-10 11:09:34 -05:00
9 changed files with 614 additions and 3 deletions

200
2023/full/day09.txt Normal file
View File

@ -0,0 +1,200 @@
20 42 73 115 170 240 327 433 560 710 885 1087 1318 1580 1875 2205 2572 2978 3425 3915 4450
25 39 53 67 81 95 109 123 137 151 165 179 193 207 221 235 249 263 277 291 305
12 29 76 164 312 559 976 1678 2836 4689 7556 11848 18080 26883 39016 55378 77020 105157 141180 186668 243400
15 33 71 131 206 285 367 491 804 1710 4164 10190 23711 51809 106702 209391 397981 749035 1432725 2848761 5941580
-3 -3 6 45 156 417 980 2153 4553 9363 18732 36363 68340 124251 218670 373067 618221 997217 1569114 2413377 3635172
12 21 30 39 48 57 66 75 84 93 102 111 120 129 138 147 156 165 174 183 192
-7 -12 -7 25 100 241 508 1055 2222 4675 9605 18988 35921 65168 114446 197962 345822 627164 1203113 2441664 5157899
8 26 61 125 250 518 1113 2405 5081 10345 20218 37980 68809 120687 205660 341558 554302 880948 1373643 2104695 3172988
8 29 63 115 187 275 366 435 442 329 17 -597 -1643 -3281 -5704 -9141 -13860 -20171 -28429 -39037 -52449
17 26 49 101 197 352 581 899 1321 1862 2537 3361 4349 5516 6877 8447 10241 12274 14561 17117 19957
13 22 35 56 94 157 258 453 948 2346 6161 15809 38401 87815 189718 389450 763975 1439454 2616407 4604910 7872824
8 25 44 56 43 -24 -169 -357 -377 373 3254 11001 28763 65952 139808 282852 559230 1100809 2185188 4398318 8959855
14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6
0 6 20 42 72 110 156 210 272 342 420 506 600 702 812 930 1056 1190 1332 1482 1640
5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85
15 42 96 204 410 775 1386 2400 4167 7493 14116 27474 53860 104154 196688 362880 659993 1201557 2229064 4274711 8515044
15 27 60 124 229 385 602 890 1259 1719 2280 2952 3745 4669 5734 6950 8327 9875 11604 13524 15645
2 -4 -9 -6 25 136 440 1150 2628 5444 10445 18834 32259 52912 83638 128054 190678 277068 393971 549482 753213
25 40 65 110 195 354 643 1165 2130 3987 7711 15414 31588 65493 135487 276471 552103 1074034 2031149 3732670 6670009
8 21 52 109 201 340 536 795 1145 1740 3143 6991 17437 44107 107898 251917 561426 1199103 2465650 4901305 9451837
6 17 46 96 174 298 514 931 1778 3478 6720 12491 22006 36445 56372 80672 104798 118071 99722 13306 -200946
11 30 60 101 153 216 290 375 471 578 696 825 965 1116 1278 1451 1635 1830 2036 2253 2481
16 33 72 150 301 595 1160 2213 4119 7527 13697 25272 48036 94738 192986 400697 834924 1723731 3497735 6951565 13533315
-7 -8 -9 -3 43 203 607 1456 3037 5738 10063 16647 26271 39877 58583 83698 116737 159436 213767 281953 366483
20 24 30 47 100 251 622 1410 2878 5299 8829 13317 18199 23031 30198 53409 139564 418662 1208316 3218487 7931346
8 33 72 139 274 553 1094 2064 3706 6424 10986 18928 33264 59626 107972 195007 347460 606347 1032324 1712193 2766566
-1 2 22 80 213 482 987 1894 3477 6179 10706 18193 30527 50985 85451 144621 247795 429096 747254 1300454 2248177
10 17 24 41 100 275 720 1733 3859 8065 16081 31159 59858 116178 230676 469428 971284 2017349 4154698 8407833 16627316
17 41 73 117 193 357 735 1586 3419 7198 14687 29049 55996 106236 200932 383802 747033 1484423 2995713 6083285 12309647
6 11 23 61 153 335 662 1247 2347 4515 8840 17327 33588 64352 123091 238686 475116 973511 2036781 4291061 8979563
10 21 43 87 159 258 389 614 1187 2866 7575 19706 48499 112096 243994 502677 985209 1845841 3322433 5780038 9800050
14 29 53 88 128 160 170 154 134 179 431 1136 2680 5630 10780 19202 32302 51881 80201 120056 174848
17 32 47 62 77 92 107 122 137 152 167 182 197 212 227 242 257 272 287 302 317
6 6 19 61 164 392 865 1804 3620 7083 13630 25915 48784 90993 168200 308080 558866 1003244 1780365 3119825 5392852
13 40 81 132 188 260 422 903 2239 5500 12607 26754 52950 98696 174812 296429 484161 765472 1176253 1762624 2582976
21 35 53 76 105 141 185 238 301 375 461 560 673 801 945 1106 1285 1483 1701 1940 2201
12 35 74 135 227 362 555 824 1190 1677 2312 3125 4149 5420 6977 8862 11120 13799 16950 20627 24887
4 17 38 68 119 232 517 1223 2846 6288 13099 25892 49171 91150 167824 311820 590752 1143407 2247740 4443192 8742335
24 41 64 93 135 216 412 920 2202 5266 12212 27282 58825 122835 249056 491087 942476 1761479 3207992 5697155 9875291
5 1 8 40 119 279 568 1059 1895 3423 6527 13363 28861 63659 139699 300753 631998 1296034 2598655 5108763 9878196
9 28 66 136 256 461 833 1559 3029 5988 11758 22548 41872 75097 130145 218375 355673 563780 871890 1318552 1953912
15 26 31 31 32 45 99 284 851 2423 6441 16128 38572 89098 200030 437386 931283 1929535 3890785 7647382 14697248
6 10 28 70 142 246 380 538 710 882 1036 1150 1198 1150 972 626 70 -742 -1860 -3338 -5234
21 45 94 178 302 466 664 885 1137 1540 2571 5606 14012 35225 84545 191831 412941 848695 1675412 3192762 5896866
7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67
8 18 49 109 209 375 679 1298 2604 5283 10493 20127 37392 68231 124758 233137 450732 901756 1848445 3828109 7908407
7 8 6 11 49 174 492 1215 2771 5999 12456 24856 47649 87731 155254 264478 434575 690258 1062066 1586089 2302865
15 20 18 11 14 60 213 599 1463 3267 6874 13940 27807 55549 112560 232584 489227 1041641 2231346 4787844 10265872
22 40 77 154 299 554 996 1782 3230 5949 11031 20319 36791 65239 113907 199122 358373 685173 1416140 3136067 7236646
-3 3 14 30 51 77 108 144 185 231 282 338 399 465 536 612 693 779 870 966 1067
16 42 80 142 248 428 730 1233 2069 3468 5853 10023 17461 30772 54161 93665 156555 249083 372155 517101 671863
3 -3 -4 5 22 34 14 -70 -201 -152 879 4994 16977 46978 115924 266658 586727 1253787 2622842 5387415 10866116
12 20 38 84 200 461 994 2017 3906 7307 13348 24100 43622 80248 151288 292083 572448 1125038 2192170 4200228 7874076
2 -6 -4 36 157 417 889 1661 2836 4532 6882 10034 14151 19411 26007 34147 44054 55966 70136 86832 106337
25 46 78 123 187 277 403 607 1048 2183 5114 12241 28496 63655 136540 282303 564347 1092632 2049906 3726495 6562361
16 24 46 103 224 441 795 1373 2413 4541 9241 19706 42275 88728 179788 350266 656382 1185902 2071848 3510665 5785866
-5 -5 -5 -14 -30 -25 70 380 1101 2515 5005 9070 15340 24591 37760 55960 80495 112875 154831 208330 275590
11 30 67 139 283 582 1211 2524 5215 10605 21153 41406 79872 152852 292296 561524 1085535 2107076 4086235 7870761 14977445
2 9 17 27 50 121 317 783 1778 3773 7677 15347 30666 61661 124393 249695 494274 958241 1811801 3334635 5972450
-7 -1 17 48 94 164 286 531 1070 2319 5283 12292 28435 64146 139580 291635 584727 1126719 2091781 3752512 6524580
23 34 48 69 116 243 582 1438 3479 8082 17923 37955 77053 150914 287438 537013 992203 1824718 3352774 6159709 11295838
5 10 28 69 143 260 430 663 969 1358 1840 2425 3123 3944 4898 5995 7245 8658 10244 12013 13975
27 42 55 65 84 154 373 941 2239 4960 10336 20570 39721 75566 143501 274594 531959 1043606 2067497 4118543 8212374
-7 -2 23 80 181 338 563 868 1265 1766 2383 3128 4013 5050 6251 7628 9193 10958 12935 15136 17573
21 27 34 58 128 296 659 1393 2799 5361 9816 17236 29122 47510 75089 115331 172633 252471 361566 508062 701716
15 23 38 84 211 521 1210 2634 5412 10584 19847 35897 62910 107200 178097 289093 459309 715341 1093548 1642850 2428109
10 19 35 70 164 396 894 1846 3514 6252 10536 17055 27033 43224 72555 132365 263902 559701 1216505 2633828 5592118
10 22 44 75 114 160 212 269 330 394 460 527 594 660 724 785 842 894 940 979 1010
15 31 59 110 202 368 664 1181 2082 3717 6921 13677 28437 60567 128708 268584 547603 1094058 2159389 4256547 8472302
8 28 63 113 178 258 353 463 588 728 883 1053 1238 1438 1653 1883 2128 2388 2663 2953 3258
24 49 88 152 259 445 798 1528 3093 6411 13211 26635 52339 100623 190660 358867 675130 1273341 2407062 4547826 8553583
17 27 39 58 107 237 529 1090 2050 3572 5892 9411 14866 23612 38052 62257 102823 170017 279269 453072 723357
17 38 79 152 287 555 1115 2299 4749 9620 18863 35602 64619 112961 190683 311741 495049 765714 1156463 1709276 2477239
-1 6 26 79 199 436 853 1528 2589 4335 7527 13965 27495 55616 111899 219533 416563 763928 1358476 2355087 4005415
-3 -1 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37
14 23 29 43 82 177 393 858 1801 3622 7080 13821 27724 57991 125686 276844 607988 1315253 2788839 5794615 11821690
18 30 63 143 311 626 1168 2041 3376 5334 8109 11931 17069 23834 32582 43717 57694 75022 96267 122055 153075
-4 4 17 41 98 236 554 1266 2841 6273 13569 28630 58917 118781 236322 467475 924202 1828890 3615241 7108295 13834284
14 21 25 28 46 132 416 1170 2908 6535 13570 26491 49290 88388 154149 263353 443146 737185 1214943 1985438 3217006
20 47 94 171 294 501 877 1595 3001 5802 11457 22922 45961 91306 178030 338588 626082 1124417 1962136 3330853 5509344
16 33 67 132 260 510 980 1825 3289 5777 10050 17769 32932 65413 139144 310051 703659 1591044 3537510 7686105 16286453
6 14 36 99 249 567 1200 2414 4685 8857 16410 29891 53560 94282 162644 274180 450432 719344 1114160 1669555 2413147
-4 3 35 112 262 532 1017 1914 3606 6779 12576 22797 40156 68584 113492 181784 281384 420627 610337 878442 1323562
25 49 86 139 224 386 720 1397 2695 5035 9022 15491 25558 40676 62696 93933 137237 196069 274582 377707 511244
5 -1 -12 -15 21 151 463 1090 2225 4139 7202 11907 18897 28995 43237 62908 89581 125159 171920 232565 310269
11 39 85 158 270 440 702 1125 1872 3348 6509 13423 28194 58394 117221 226753 422957 763617 1341169 2303704 3889282
17 26 35 61 141 343 781 1639 3220 6062 11226 21001 40556 81609 170156 362011 772902 1635232 3403608 6950711 13934398
-6 -8 -9 -9 -8 -6 -3 1 6 12 19 27 36 46 57 69 82 96 111 127 144
14 31 72 162 341 673 1257 2252 3940 6861 12071 21626 39555 74023 142457 283793 586898 1253611 2731846 5983494 13000249
15 17 28 61 128 233 358 442 360 -73 -1017 -2334 -2914 873 18699 74262 223033 590357 1449862 3377911 7545392
3 5 10 17 34 88 235 570 1237 2439 4448 7615 12380 19282 28969 42208 59895 83065 112902 150749 198118
5 3 -1 -6 -6 31 203 743 2132 5282 11850 24844 49923 98298 193092 382667 767111 1548229 3119537 6221574 12200112
-2 5 33 111 283 608 1160 2028 3316 5143 7643 10965 15273 20746 27578 35978 46170 58393 72901 89963 109863
3 19 47 87 139 203 279 367 467 579 703 839 987 1147 1319 1503 1699 1907 2127 2359 2603
13 35 76 145 250 402 630 1021 1811 3569 7536 16205 34256 69992 137458 259465 471785 828831 1411188 2335417 3766614
8 17 28 38 56 125 363 1034 2660 6185 13202 26254 49220 87797 150089 247314 394640 612161 926024 1369718 1985536
8 25 48 77 112 153 200 253 312 377 448 525 608 697 792 893 1000 1113 1232 1357 1488
12 21 37 57 77 106 189 437 1076 2557 5818 12860 27895 59448 123950 251548 495084 943461 1740923 3114131 5409321
15 13 12 29 88 219 475 983 2051 4377 9459 20405 43526 91443 189118 385554 776487 1548205 3061254 6007625 11699548
15 24 32 34 36 74 256 853 2483 6455 15380 34237 72237 146103 285867 545187 1020019 1883403 3452614 6322987 11639994
2 -2 -9 -10 11 77 221 500 1043 2178 4715 10516 23585 52107 112228 235006 479028 952886 1854307 3536586 6618515
8 18 43 83 138 208 293 393 508 638 783 943 1118 1308 1513 1733 1968 2218 2483 2763 3058
-7 -3 17 65 168 380 794 1554 2867 5015 8367 13391 20666 30894 44912 63704 88413 120353 161021 212109 275516
5 27 60 98 140 202 340 692 1547 3449 7344 14778 28154 51056 88648 148156 239441 375671 574100 856962 1252488
11 16 32 60 108 214 483 1149 2686 6005 12795 26111 51402 98330 183979 338409 613985 1100506 1948862 3406730 5870636
23 38 73 156 324 614 1053 1660 2486 3743 6117 11437 24016 53272 118853 260775 559661 1177128 2435585 4973482 10042336
11 25 49 80 118 167 243 406 846 2079 5350 13403 31893 71974 155234 323696 661203 1340508 2727535 5609875 11688426
0 7 30 87 204 431 871 1722 3332 6279 11526 20779 37308 67691 125223 236110 450056 857463 1616214 2991911 5416508
14 13 4 -16 -50 -101 -172 -266 -386 -535 -716 -932 -1186 -1481 -1820 -2206 -2642 -3131 -3676 -4280 -4946
14 37 67 97 127 173 273 490 912 1649 2827 4579 7033 10297 14441 19476 25330 31821 38627 45253 50995
11 16 31 77 184 394 761 1351 2258 3671 6052 10516 19541 38179 75988 149960 288781 538826 972365 1698535 2877718
1 13 39 79 133 201 283 379 489 613 751 903 1069 1249 1443 1651 1873 2109 2359 2623 2901
12 27 48 77 116 167 232 313 412 531 672 837 1028 1247 1496 1777 2092 2443 2832 3261 3732
10 22 48 97 177 296 463 683 941 1173 1227 824 -462 -3175 -7856 -14772 -23420 -31712 -34726 -22885 20599
7 20 49 102 181 291 461 783 1484 3068 6616 14434 31421 67828 144541 302702 620449 1240888 2417199 4583130 8460169
9 12 19 30 45 64 87 114 145 180 219 262 309 360 415 474 537 604 675 750 829
10 27 63 136 275 524 959 1726 3117 5725 10763 20700 40469 79676 156596 305542 590960 1135287 2174803 4170928 8027451
6 12 11 14 57 224 689 1784 4102 8647 17047 31851 56937 98065 163617 265575 420798 652670 993203 1485692 2188033
9 12 29 72 150 276 492 937 2012 4739 11464 27119 61364 132165 271918 538448 1035663 1953190 3642211 6757682 12517478
-3 4 26 84 218 502 1072 2183 4324 8433 16267 30995 58095 106649 191143 333892 568223 942562 1525584 2412598 3733352
14 19 28 41 58 79 104 133 166 203 244 289 338 391 448 509 574 643 716 793 874
18 24 37 66 116 189 303 553 1256 3258 8557 21550 51502 117344 256749 542762 1113270 2221544 4320285 8197454 15190144
11 35 77 142 235 361 525 732 987 1295 1661 2090 2587 3157 3805 4536 5355 6267 7277 8390 9611
9 11 26 66 145 286 537 1006 1947 3964 8448 18423 40051 85133 175043 346645 660869 1214761 2157974 3714832 6213277
7 15 28 46 69 97 130 168 211 259 312 370 433 501 574 652 735 823 916 1014 1117
-2 -3 -5 -8 -1 59 274 838 2072 4445 8538 14869 23483 33326 41878 46690 52974 96290 298637 993983 2994435
22 46 77 112 143 168 232 514 1472 4053 9979 22145 45220 86640 158386 280488 488760 853425 1525289 2848141 5621063
8 6 0 -3 17 105 364 1032 2644 6349 14496 31666 66413 134090 261280 492531 900312 1599368 2766960 4670835 7707185
14 28 56 108 206 400 792 1583 3167 6298 12361 23817 45021 83929 155901 292238 558964 1096956 2205030 4506586 9273472
1 8 31 89 201 395 730 1331 2448 4572 8674 16677 32326 62687 120583 228363 423499 766616 1352681 2326209 3901487
17 31 53 83 121 167 221 283 353 431 517 611 713 823 941 1067 1201 1343 1493 1651 1817
0 -5 -3 20 84 216 449 822 1402 2387 4416 9320 21716 52113 122650 277395 600628 1249279 2510623 4904888 9366748
16 32 50 70 92 116 142 170 200 232 266 302 340 380 422 466 512 560 610 662 716
24 33 56 121 277 608 1267 2552 5053 9914 19295 37223 71249 135773 258702 494493 949007 1825758 3510739 6727468 12822050
11 18 28 49 106 257 614 1370 2842 5564 10512 19640 37104 71950 143831 294852 613598 1283112 2675755 5539955 11367623
5 8 10 6 -9 -40 -92 -170 -279 -424 -610 -842 -1125 -1464 -1864 -2330 -2867 -3480 -4174 -4954 -5825
14 20 37 84 191 403 786 1433 2480 4164 6994 12177 22564 44578 91878 191917 397078 802720 1575223 2993958 5511977
20 30 39 48 59 87 191 539 1522 3931 9213 19827 39722 74940 134283 229855 377161 594723 905355 1349742 2049180
5 19 49 122 279 578 1107 2011 3546 6193 10896 19530 35758 66500 124312 231059 423363 760415 1334859 2287586 3827417
6 10 20 53 134 312 695 1517 3272 6998 14894 31659 67349 143308 304080 640540 1333491 2734047 5510188 10914195 21276343
20 45 99 211 439 896 1790 3476 6517 11755 20418 34380 56950 95189 166074 311373 630704 1350358 2959773 6473472 13924803
17 42 92 191 373 680 1162 1888 2982 4698 7553 12566 21742 39173 73663 144918 297591 631686 1365346 2958925 6350507
6 6 3 8 47 161 406 853 1588 2712 4341 6606 9653 13643 18752 25171 33106 42778 54423 68292 84651
-5 -13 -12 12 73 198 465 1074 2454 5411 11352 22723 44070 84753 165628 334463 699244 1496046 3220671 6873853 14403602
-1 -3 4 35 113 266 532 986 1817 3512 7261 15806 35163 78034 170462 364705 764132 1571713 3185657 6390725 12745254
8 29 64 111 166 223 274 309 316 281 188 19 -246 -629 -1154 -1847 -2736 -3851 -5224 -6889 -8882
17 25 32 44 79 170 374 808 1743 3789 8204 17379 35631 70653 136460 259674 492925 942701 1825264 3574962 7046935
6 1 -8 -14 3 96 390 1145 2847 6330 12931 24679 44518 76563 126387 201336 310868 466911 684234 980824 1378261
12 24 48 80 106 112 104 128 288 784 2043 5111 12648 31200 76075 181425 420540 945688 2064266 4380234 9049078
15 27 48 77 112 162 284 671 1832 4920 12279 28296 60659 122137 233013 424316 742013 1252337 2048442 3258591 5056098
1 4 8 18 57 183 526 1359 3217 7078 14620 28568 53145 94641 162114 268237 430305 671416 1021840 1520590 2217209
15 30 56 107 209 407 772 1408 2459 4116 6624 10289 15485 22661 32348 45166 61831 83162 110088 143655 185033
12 33 72 148 291 544 983 1768 3238 6063 11466 21528 39589 70758 122545 205628 334768 529885 817308 1231212 1815255
11 13 12 16 44 138 386 966 2232 4874 10195 20559 40075 75593 138099 244607 420657 703539 1146374 1823194 2835174
22 36 61 106 180 292 451 666 946 1300 1737 2266 2896 3636 4495 5482 6606 7876 9301 10890 12652
21 46 92 179 341 642 1214 2333 4556 8947 17415 33160 61158 108502 184274 298560 460519 676672 953882 1318697 1878747
21 31 40 41 20 -52 -230 -599 -1237 -2062 -2428 -258 9595 38227 107657 259844 574662 1209142 2487229 5105340 10590935
21 31 32 20 -9 -59 -134 -238 -375 -549 -764 -1024 -1333 -1695 -2114 -2594 -3139 -3753 -4440 -5204 -6049
20 45 77 111 142 165 175 167 136 77 -15 -145 -318 -539 -813 -1145 -1540 -2003 -2539 -3153 -3850
24 37 45 46 42 51 127 389 1075 2672 6236 14115 31431 68872 147600 307404 619626 1206871 2272087 4140276 7316880
24 47 77 127 233 460 920 1829 3648 7382 15157 31274 64087 129335 256082 497340 948984 1783001 3304813 6049833 10942109
10 16 20 15 0 -12 14 143 478 1168 2416 4487 7716 12516 19386 28919 41810 58864 81004 109279 144872
21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221
23 43 84 158 278 455 694 989 1317 1631 1852 1860 1484 491 -1426 -4661 -9709 -17181 -27820 -42518 -62334
-2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111
23 32 51 90 156 255 394 583 837 1178 1637 2256 3090 4209 5700 7669 10243 13572 17831 23222 29976
6 3 13 59 179 426 864 1556 2543 3821 5334 7013 8902 11420 15811 24830 43700 81351 151915 276399 484389
2 6 25 67 150 313 623 1186 2198 4124 8178 17404 38836 87453 192952 410747 839074 1644650 3100007 5636409 9917170
27 48 86 149 245 382 568 811 1119 1500 1962 2513 3161 3914 4780 5767 6883 8136 9534 11085 12797
5 19 33 55 116 281 660 1419 2791 5087 8707 14151 22030 33077 48158 68283 94617 128491 171413 225079 291384
18 46 90 149 223 329 541 1081 2500 5993 13897 30446 62937 123648 233214 426802 765446 1356448 2388988 4194211 7343299
11 11 21 50 124 300 680 1425 2769 5033 8639 14124 22154 33538 49242 70403 98343 134583 180857 239126 311592
7 30 76 151 254 378 525 756 1303 2778 6539 15342 34563 74575 155393 315560 628571 1232082 2377922 4514749 8420336
21 49 100 184 325 569 996 1746 3084 5569 10475 20762 43142 92165 197805 418804 865087 1733953 3366542 6333348 11560371
11 23 35 47 59 71 83 95 107 119 131 143 155 167 179 191 203 215 227 239 251
3 8 13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93 98 103
14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59 62 65 68 71 74
29 44 63 91 135 207 339 631 1365 3230 7715 17739 38599 79329 154575 287103 511069 876192 1452983 2339195 3667671
-4 -4 9 57 175 421 889 1730 3206 5830 10684 20072 38788 76514 152291 302740 596900 1162388 2230311 4210263 7812169
-5 5 34 89 177 305 480 709 999 1357 1790 2305 2909 3609 4412 5325 6355 7509 8794 10217 11785
17 32 63 137 305 658 1362 2729 5355 10395 20135 39199 77043 152902 305171 608512 1204200 2353225 4529206 8582564 16034588
28 44 62 82 104 128 154 182 212 244 278 314 352 392 434 478 524 572 622 674 728
13 27 62 132 252 437 718 1201 2202 4492 9681 20773 42974 85002 161527 298053 540574 973550 1750651 3142119 5598111
9 25 58 120 230 428 809 1596 3274 6808 13975 27862 53637 99838 180763 321314 567277 1007298 1819268 3366505 6394114
0 9 30 77 182 410 883 1813 3544 6603 11760 20097 33086 52676 81389 122425 179776 258349 364098 504165 687030
-5 1 22 70 167 350 679 1249 2211 3826 6620 11787 22111 43857 90325 188080 387275 777983 1515058 2854764 5207255
7 15 23 32 43 57 75 98 127 163 207 260 323 397 483 582 695 823 967 1128 1307
19 23 34 70 165 377 810 1663 3315 6450 12236 22625 40977 73482 132324 242276 453523 865081 1665326 3198992 6073677
22 47 78 115 167 257 422 712 1200 2027 3541 6681 13955 31726 75129 177921 411197 917897 1976121 4117455 8355354
-2 12 43 98 201 409 835 1692 3381 6655 12900 24583 45926 83874 149434 259471 439056 724470 1166977 1837488 2832247
21 31 54 100 180 303 467 654 855 1176 2114 5147 13858 35914 86351 192779 403321 798341 1507302 2732430 4781248
1 10 32 71 137 257 491 959 1894 3745 7363 14312 27356 51182 93428 166094 287423 484348 795610 1275661 1999475
22 28 37 53 80 122 183 267 378 520 697 913 1172 1478 1835 2247 2718 3252 3853 4525 5272
14 25 30 30 28 39 108 345 1005 2676 6703 16099 37423 84516 185710 397426 829545 1692920 3389905 6691225 13089923
24 47 79 126 211 380 708 1305 2322 3957 6461 10144 15381 22618 32378 45267 61980 83307 110139 143474 184423
27 50 95 181 333 582 965 1525 2311 3378 4787 6605 8905 11766 15273 19517 24595 30610 37671 45893 55397
4 4 6 25 95 289 755 1774 3854 7899 15559 30028 57906 113430 227640 467231 971500 2021814 4167860 8450995 16791197
16 33 60 110 207 403 802 1595 3128 6050 11619 22291 42812 82254 157962 303601 586212 1142943 2259690 4536000 9220961
-1 -1 11 54 149 323 634 1243 2578 5657 12672 28006 59994 123993 247753 480751 910145 1687419 3071729 5498542 9685515

140
2023/full/day10.txt Normal file
View File

@ -0,0 +1,140 @@
u7.LJFFF7F77.----7F7777F|-F-7-7F77LL77J77F|.|JFF7-F|77.FF77|F77F-L|-L7FFL7L7--.L|--7L7.J-F7-|-F|7FJ.FJJ7F7-7-7JFL|7-|-7FJJ7FFF7LL--L7.-JJ-F-F
J7LL-J||FLJ-|J.F|-L|FJ7J|.LL-L7F|LF||JFJ7L-JLF.||FL.FF.--F77|J7|L|.|LF7-|||J|7L|7L77|-..|JJLFJ|||JF|L|F|JF--77LFLF7JJL-JLL-JLL7L.-L-|FJ.LLFF
L|-7LFLL7J|..|F-7-7L|-7.L--L-JL|..FFJ.|7||F7F----JJ..|||L||L|.L|L|.|F--7|L-7F|FL7JLJLL-7J7|.||-LJ---7-L-J|FFL|FF7.|7F7..|L-7|F7J-7|.||-JJL7J
||||-JJL|-7F|-|LLLL.FF|-J|F-7.LF7-7L|FFFFFJF|J|LF--LLL--77.-J-.|----JJFFL-LL7|LF-J.|.FLJLL-F|7JFLJF|77.L7|FJJ.FLL-JLF--77J.FF|J.LF|77L7L7|L-
-J---|-J..-LF-7.L7J-|LJ.F-77F-7LLJ|FF7FF7|.F.-F.J..|.|7-LF7LJF7JJ.||.---J.FFJJFL|.FF77L|7L-JLL-7|FF7-7-F.|||7F7-J..-L.J|J.F|LF.|F7J.F|--7--L
|FJ-||-7|-FJ|||-FJJLF-7.|.|LJFF77-F7|L-J|-F.F-F7L|-L-FJ|FF|LF|7L-FJ--J7.FJJFJF|77-F-FJFF-7JF-|-F7F7J.--L-|7F-LFJ.F7J-7||-77F7|-FFJF-FF.|||7J
FJ-FJJL|..FJL.FF.|FLJL-7L-|JFFFL-FJLJF--JL|7.F||J|77LJFL7FJ7JLJ-JJ7||L7-|.FFFLJFJ7||LFFL7|F--7FJLJ|7-|L.FLFJ||L7-JL7F.|L--F7LL-7L---LJFL-L77
7JL|L|F777|7J.F|-LJ7..|||FF-F7J.LL--7L7F7LF7F7|L-7-|.L|7FJJJ.FJ-JFL-F7L---L-|J7L7F7|.FJFJ||F-JL7F-J7LJ--FJ.LFF-J77.J--J7.JLJ-|LL7.F-.J--J.77
||.F.JJL7-7|.LJ.LL7|7F7-|7JFF7FF7FL|L7||L-J||||F-JF77-|-|7LF-7J7.-|-J7J|.|.-J-L7F-L-7L.L7LJL7F7||F7-FJ7|L-7L-|FF7--LJ.LLJJ77.|-FJ--.FFL.FFJ|
L-..J|.LF-J77F|7JLJJ-FJFJ|FFJLLF7FFF7|||F--J|LJL7FJL-7-F.F.L..|L-J|LLJ.F-F-J.LLL|L|7-LFFJF-7LJLJLJ|7|.LL-||J.F7-|77-F7LJ7.|----|JF||.-J.JJJ|
.L|7L-|L|-L7JFL|.|7.FJ.|.L|J||JF7-FJLJLJL7F7L--7||F--J-|7L7LF-L.LFJ7LFJ|FFJ-7.7JLF7J7.FL7|FJF-----JF7-7.L77.-|J|L||FL-F-77L7||-|.J7L-J|.F||L
LFJJ7.L..F7||F7|F-F--.-|-JL-J7F||FL--7F--J||F--J|||7F7|F7F|-L-|7L|.F.J7F-|.|F|J||||-FFF7LJL7|F7|F-7||77.-.77JL-7J.F|F|LFF7.--L7|JJFJ|7FF-F-L
FJ-LLJ-|-LFFL7JFJJJ7LFJL.FJFFF7||F7F-JL7F7||L--7||L-JL-JL77.LJLF---L7JLJF|7F7JF7FJL-77|L7F-J||L7L7LJL-7JJ|.|.|.L-.L-F--L7L-|--FJF7|-L7FJF|7L
7.77F|FF-7-F7LLJJJ.JF7--77F-.||||||L-7FJ||||7F7|LJF7F----JLF7F---L-J7F7L-F7||FJ||F--JFJFJL-7LJFJFJF---J-7--7-|7.L--LLF7L|-7JFL|-JLFFJFL.L|7J
|7L7---|J...--J|JJFJ-|FF7L-JFJLJLJL7FJL-JLJL7|||F-JLJF7F7J77-|FL7F77F7F7L||||L7||||F7L7|F--JF-JJL7L-7J.-|-LF7LF.7L7FF|7JLF|FLLL7|FJJ.|7F7L77
|FL7FJ.|J7.F|LFJ7.|J.L-F77.FL-----7|L---7F--J|||L-7F-J|||-L|L7J7|L77||-7-|||L-J||L7|L7|LJF--JF--7|F-J777FJL||-7-JFJ-F-JFJ|L-|.F7L|7F-J7|7L|L
LJ||J|-|7---7F77|.|LFLFJL-7J.F-7F7|L7F7FJL-7FJ||F-J|F-J|||LF7L|JF|F7||-F-J|L--7|L7LJFJL-7L7F7L-7LJL---7F77|||7.-LL--LJJL-|7FLJ.L-LLFJLL-.F|J
L7-L---7-7--L-JLLFJF7.L7F-JF7L7|||L7||||F--JL7||L-7|L7L|L7FJL7F7F7|LJL7L-7|F7FJL7L-7|F7FJFJ||F7L7F----J||-FJL-7.|LL--JJ..|J-J-F.|-|J.|LF-F77
LFJLLLJLFL--J|||LJ-F7F7|L7FJ|FJLJ|FJ||||L7F--J||F-J|FJFJFJL-7|||||L--7L7FJLJ|L7FJF-JLJLJFJFJ||L7||F-7F7|L7L-7FJ-L7JF||-J-L-J|FL-7F|.LJ.|.|J7
.777||..J|FJ.LF|-JL||||L7|L7||F-7|L7LJLJFJL--7||L7-|L7L7|LF7||||||F7|L7|L-7FJFJL7L-7F--7L7|FJ|FJ|||FJ|||FJF7|L-7FF7-F7-LJJF7F-.||FFJ7|F7F7-|
FLL-7.FL7|JJ.F7.F|.|LJL-JL7||LJFJL7L-7F-JF7FFJ||FJFJFJFJL7||||||||||F7||F-JL7L7FJF7LJF-JFJ||FJ|FJLJL7|LJL7|LJF-JF-7F7J|F|F-J|--L-JL-|-LJ7F-F
LF-LJ-F7L.|FFL|-||FL-----7||L-7L-7L--JL7L|L7L7||L-JFJFJF7LJ||||||LJ||LJ|L-7FJFJL7||F7|F7L7||L7||F---J|F--JL7FJF7L7LJ|7.LF7.LFF7.|.L.J7FF-J-|
.L-F-7JL7FJ-L-77LFJF7F---J||F-JF7L--7F-JFJFJFJ|L7F7L7|FJL--J|||||F-J|F7|F-JL7L7FJ||||LJ|FJ|L-JLJL-7F7|L7F7.||L|L7L7FJFFJ|JFFJ.L--JJ.F7-JJ|F7
F|J|F|-L-7-F.F|F7J7|LJF--7||L7FJ|F7FJ|F7L7L7L7L7||L-J|L----7|LJ|||F7LJ||L--7L7|L7|LJ|F7|L7L----7F-J|||FJ|L7||FJFJFJ|F7LF7-JJ-7F|JF-7-L|J.F|J
F7F--J|.|JFL.FF-77-L--JF-JLJFJL7|||L7|||FJFJFJFJ|L-7FL7F---JL7FJ|||L--JL---JFJL7||F-J|||FJF-7F-JL-7||||J|FJ||L7L7L7|||FF7.|.FLL7FJ7LJFF.FLF7
JJ|F--7F77JFFLL7L-7-F7|L---7L--JLJL-J|||L7|FJFJ||F-JF-JL7F7F7|L7||L--------7|LFJ|||LFJ||L7L7|L7F--J|LJL7||FJL7L7L7|LJL7|L---7J7.JJ|JFJJFF.|J
|7|-JF|--JL77-||F-JFJ|F7F7FJF7F-----7LJL7|LJFJF7||F7L7F-J|||LJFJ||F7JF7F7F7|L7L7||L-JFJ|FJF|L7|L7F7L7F-J|||F-JFJFJ|F--JL7F--J--F|7|FJ|FLL|7J
|J||FFJ7FL7|FF-JL7FL7||LJ||FJ||F---7|F--J|F7|FJ||LJL7|L--J|L-7L-J|||FJ|||||L7L7|LJF-7|FJL-7|FJL7||L-JL7FJLJL-7L7|F|L-7|FJL7J|.|F|L--L|JJ|L-7
.F7JLJFL-.FF7L-7FJF-J|L-7|LJLLJL--7LJL7F7LJ|||FJ|F7FJL7F--JF-JF--J||L7|||||LL7|L-7|FLJL--7||L7FJLJF---JL-7F--JFJL-JF-JFJF-J7|.FL|.|FJL|-FF|7
J-77|-JJ7L-||F-JL7L-7L-7||F7F7LF--JF-7|||LFJ||L7LJ||F7||F7FL7FJ.F-J|FJ||LJ|F7||JFJL7F--7FJ||FJL--7|F7F--7||7F-JF7F-JF7|FJ-F7F7----7|LF7LF77.
|.L-|7|FJ.L||L--7|F7L-7||||LJL7L---JFJLJL7L7LJFJ|FJLJ||||L7FJ|F7L-7||FJL-7||||L7|F-J|F7|L7||L--7FJ|||L7FJ||FJF-J|L--JLJL7FJLJ|7F|..J7.F-LL77
|.LLJ-J|--F||F-7|LJ|F7|LJ|L--7|FF7F7L7F7FJ-L-7|F7L7F-J|||FJL7LJ|F7||||F7FJ|||L7LJL7FJ|LJFJLJF7FJL7|||FJL7|LJFJF7L--7F7F7LJF7FJF77--JLF||L7J|
J7|FLJ-L-LFJ|L7|L-7|||L-7|F7FJL7||||FJ|LJF7F7||||F||F7||||F7L-7||||||LJ|L7LJL7|F--JL7L7FJF--JLJF-J||LJF-J|F7|FJ|F7LLJLJ|F-JLJ7|||-J.77L7-LF.
||7FFJLL.|L7L-J|F7|LJL--JLJ|L-7|||||L7L7FJ|||||||FJLJ||||||L7FJ|||||L-7L7L--7||L7F7FJFJL7L7F7F7|F7|L-7L7FJ|LJ|FJ|L----7||F7F7FJ|-JLF--7|77|.
7JJF|.FL7-FJF-7LJ|L-------7|FFJLJLJL7L7|L7|||||||L7F-J|||||FJ|FJ||||F7|FJ.F7|||FJ|||FJF7|FJ||||LJ||F7|FJL7L-7||FJF----JLJ|||||FJ|7FF7-|-L-J-
L-LL|F-J|7L7L7L-7L----7F--JL-JF7F7F7L7|L7||||||||FJL-7|||||L7|L7|||||||L7FJ||LJL7|||L7||||FJ|||F7|||||L7FJF7LJLJFJ-F7F-7FJ|||||F-7F7JJ|-L7L7
F-7L-J.F-7.L-JF7L----7LJF-----JLJLJL7||FJ|LJ|||||L-7FJ|||||LLJJLJ||LJ||FJL7|L--7LJLJFJ|||||FJ|||LJ|||L7||FJ|F---JF7|||FJ|FJ|||LJFJ||.FJ77|-F
F7|-|JL-LFF---JL-----JF7|F-------7F-JLJL7L-7|||||F7||FJ|||L--7F--JL-7LJL7FJ|F--JF---JFJ||||L7||L-7||L7|LJL7LJ-F--JLJLJL7|L-J||F-JFJL7J-7-J7|
LJ7J|-|JJFL7F----7F7F7|LJL---7F-7|L---7FJF-J||||||LJ|L7|||F7FJ|F-7F-JF-7|L7|L-7FL-7F7||||||LLJL7FJLJ7LJF--JF--JF7F-7F7FJ|F-7LJL--JF-JJ7.L.L|
.L-JF77J.|7LJF---J|LJ||F-----J|FJL----JL7|LFJ|LJLJ-FJFJ||LJ|L7||FJL-7L7LJFJL-7L--7|||L7|||L-7F7||F7F--7L-7FJF--JLJ.||LJFJL7L7F7F-7L-7-77|-7.
J7L-7JFJ.F---JF7F7L7FJ||F--7F7|L-----7F-JL7L7L7|7F7L7L7||F-JFJLJ|F7FJFJF7L7F-JF-7|LJL7|||L7FJ|LJLJ||F-JF7LJFJLF---7|L--JF7L7LJLJF|F-JFJF7F77
|7J||FJ7.L----JLJL7|L7|LJF7LJLJF-----JL--7L7L7L7FJL-JFJLJL7FJ7F7LJ|L7|FJ|FJL-7L7LJLF7LJ|L7|||L-7F-J|L7FJL-7L7FJF7FJ|F-7FJL7L----7LJ|L-7-|-L-
L..F|J|J.||F--7F7LLJ-LJ-FJL---7L-----7F-7L7L7|FJL7F-7L-7F-JL7FJL-7L7||L7|L7F-JFJ-F-J|LFJFJ|L-7FJ|F7L7|L--7L-J|FJLJ|LJ.LJ7JL7F7F-JLJJJFJ7LL|7
.FFL77FFF.FJF7LJ|F7LF7F7L----7L------J|FJFJFJ||F7LJFJF7|L7F7LJF--JFLJ|FJL7||F7L-7L-7L-JFJFL7FJL7|||FJ|F7JL--7||F7FF7F7F7-F7LJ|L7|F|||L|JLF-L
7-|F|7-7-FL-JL-7LJL-JLJL---7.L--------JL7L7|7|LJ|F-JFJ|L7LJL7FJF7-F7FJL7FJ||||F7|F-JF-7|7F7|L-7LJ||L7LJL---7LJLJL7|||||L-JL-7L-JF|-JJJLJFJ7|
|-|F.|JL7.LF7F7L----7F7F--7L------7F----JJ||FJF7|L7FJ-L7|F--JL-JL7|LJF7|L7|||||LJ|F7|FJL7||L--JF-JL-JF7F-7F|F-7F-J|LJLJF7F--JF7F-7J||F7-F.L7
|7|--J7LLJ7||||F----J|||F-JF7F-7F7LJF----7||L7|LJF|L-7FJ|L--7F---JL-7||L7LJLJ||F7||LJL-7LJL---7L7F-7FJLJFL7LJ7LJF7|F-7FJ|L7F7|LJFJJL7.F-|-L|
||JLFJ.7J7FJLJ|L-----JLJL--JLJ-LJL-7|F---JLJFJL--7|F-JL-J.F7|L-----7|||FJF---JLJ|||F7F-JF7F7F-JFJ|FLJF7F--JF----JLJL7LJJL-J|||F-J7FL|7L7J.L7
F7LLJFFJ.FJF7FJF-----7|F----7F7F--7LJL-----7L7F7FJ|L--7-F7|LJF7F---J|||L7|F7F7F-J|||LJF7||||L-7L7|F--JLJF--JF7F--7F-J7F----JLJL--7F--|.|.-F7
-J7777.7-L-J||JL7F7F7L7L7F-7LJLJF7L-7F-7F--J-LJLJ-L7F-JFJLJF-J|L---7||L-J||||||F7LJL--J||LJ|F-JLLJL-7F--JF--JLJF-JL--7|F7F-7F7F7FJ7.||FL7.-J
LFJ.7LJ7JF--JL7FLJLJ|FJJLJ|L7F--JL-7LJFLJ.F7FF7F7-FJL-7|F-7L-7L7F7FJ|L--7LJLJLJ|L7F--7FJL-7LJ-F7JF7FLJF-7L-7F7FL-----J||LJFJ|||||F-7-F.|7-L.
|.F-J--7-L-7F7L7F7F-JL7F7.F7LJF7F-7L--7-F7|L-JLJL7L---JLJFJF-JFJ|LJJ|F-7L-7F-7|L7LJF7LJF--JF7FJ|FJL7F7L7L-7LJL7F------JL-7L-JLJLJ|FJL77J.|-L
LFJ7|.F|7F7LJL7|||L--7|||FJL--J|L7|F-7L-JLJF7F--7L7F7F7F7L7L-7|FJF--J|FJF-JL7L7F|F7|L--J|F7||L7|L-7|||FL-7L---JL7F--7F---JF7F7LF7|L---7--F7|
||.-7-|F-JL---J|||F7FJLJ|L----7L-JLJ7L--7F7||L-7L7LJLJLJ|L|F7||L7L7F7|L7L-7FJFJFJ|LJJF7F7||||FJL--JLJL7F7L------JL-7LJF-7||||L-JLJF7F-JJ---J
-7..|L-|F7F---7|||||L--7L---7-L--------7||||L7FJ7|F--7F-JFJ||||FJFJ||L7L--JL7L-JFJFF7|LJLJLJLJF7F-7F-7LJL-7F7F-----JF7L7L-JLJF7F7FJLJF|-77||
LJ|-|L|LJ||F--J|||||F--JF7F7|F----7F---JLJLJFJ|F7|L-7|L-7L7|||||FJFJL7L--7F7L7F-J-FJLJF7F7F7F7|||FJL7L---7||LJF77F7FJ|FJF7F7FJ||LJJ.J-JFJFF|
|LJ-.FLLFJ|L--7LJLJ||F-7|LJ|LJF--7LJF7F7F--7L7LJ|L7FJ|F-J7||||LJL7|FFJF-7|||7LJLF7L--7|||LJ||||LJL7FJF---JLJF7|L-JLJFJ|FJLJLJJLJFF-7|L77.F..
JF|.F-JLL-JF7FJF7F7LJ|F||7FJF7|F7|F-JLJLJF7L7L7FJFJL7|L-7FJ||L7J-||FJFJJ|||L----JL---J|||F-J|||F--J|FJF7F7F7|LJF7F-7L7|L---------JFJJ-J7.||7
FFF|-|.FLF7|||FJ||L-7L7||FJFJLJ|LJ|F-----JL7L7|L7|F7||F-JL-JL7L7FLJL7|LFJ||F-7F7F----7|||L--JLJ|F-7|L-JLJLJLJF-JLJJL7LJF7F-7F--7F-J7-|-F7|J.
FFJJF77-L|LJLJL7LJ|FJFJLJL7|F77L--JL----7F7L-JL7|LJ||||F7F--7|FJJJLFLJ-L-JLJFLJLJF---J|LJF7F---J|FJ|F7F------JF7F--7L--JLJ.LJF-J|7J-F--JJJ.7
||J.-L.F7L----7L-7FJFJF7F7|||L--7F--7F-7LJL--7FJL-7|||LJLJF-JLJ-|.FL.L-LJF-------JF7F7L7-||L--7FJL-J||L---77F-JLJF7L--------7|F7L7J||-LLFL--
LJ7F|FFJL7F--7L--JL-J.||||LJL--7LJF7LJLL--7F-JL---JLJL-7F7L--7.L-7J|-LJLLL------7FJ||L7|FJL--7LJJFF7||F7JFJFJF7F-J|F--------JLJ|FJ-FF7.FJ7.|
-J|F|-L-7LJF-JF7F7F7F7|LJL7-F-7L--JL-----7|L7|F7F7F7F7-LJL7F-J-7-7J|J.F7-L|F----JL7||FJ||F--7L7F7FJ||LJL-J||FJ|L-7|L------7F77|LJ|.|.-|JF-J|
|7|JL|-|L-7|F-J|||||||L--7L7L7L----------JL-JFJ||LJLJ|F-7J||||LF7|.|JLF-7FFJF-7F-7|||L7|LJF-JFJ||L7|L------JL7|F7|L7F7F--7LJL7F7J-F7-|JFJJ7|
FJJJ--FF--J|L-7LJ|||||F77L7L7|F-7F-7-F-7F-7F7L7||F---J|FJFJL-7-F-7777.L7LFL-JJLJ7LJ|L7LJF-JF7L7||FJ|F-----7F-JLJ|L7LJLJF7L---J||J|LF7|J|.LF-
|F||7LLL--7|F7L7FJ|||LJ|F7L7|LJFLJ|L-JFJL7|||L|LJL----JL7L---JF|L--7.-LJL|F----7F77L-JF7L--JL7|||L7LJF---7|L---7L7L7.F-JL-7F7FJL7-.F7.F|JL-|
77.L7-FF7FJLJL-JL-J|L-7|||FJ|JF--7F---JF7||||FJF-----7F7L777F77L-J-L7FL|FFL---7LJL7F7FJ|F7|F-JLJL-JF-JF--JL----JFL7L-JF7F7LJLJF7|LJF-.7J.7.7
7|7|LF-J|L-7F-7F--7L--JLJ|L7L7L-7|L7F--J||||||FJF7JF7LJL7L7FJ|J.LL77LJ7-F7J|F7L--7|||L7|||FJF7F-7F-JF7L---7F7.F7F7L---JLJL7F7FJLJ7-F|7|F7.7|
|FL-7L-7L--J|FJ|F-JF----7|FJFJJFJL7LJF-7LJLJLJL-JL-JL--7L7LJFJF|.F-JF|FF|J|FJL---JLJL-J||LJFJ||FJ|F-JL----J|L-JLJL----77F7LJLJ.|-JF-JFL7L7|7
FF.F7J||F7F7||FJ|F7|F---J|L7|F-JF7L--J.L---7F7F-7F-----J||F-J-F-.F|JFL|7|L-|F---7F--7F7LJF7|FJ|L-JL--------JF7F7F----7L-JL----7JLLL--J|J.FJ.
.L77L7LLJ|||||L7LJLJL-7F7L-J|L--J|F-------7LJ|L7|L------7|L7.F7J7J|---J.J7.LJF-7LJF-J|L7FJLJ|FJF-----------7||||L-7F7L-7F7F7F7L7F7L7.FJ.LJ7.
FL|F7L-F-J||||FJF7F7F7LJL--7|F--7LJF--7F7FJF7L7||F-7F7F-JL7L7||F7.L..FLJJ|-L|L7|F7L--J-LJF--JL7L7F----7F-7|LJLJL--J||F7LJLJLJL7L-77JL7||7.7.
J--J|-LL-7|LJLJJ|LJLJL-----J|L7FJF7L-7LJLJFJL7LJLJFLJLJF7JL7LJL7||JL--.|.7-|F-JLJL--7-F--JF-7FJFJ|F---J|FJF7F------JLJL-7F--7.L--JJ-FLFJF7L|
.||-F-7|.LJF7LF7L-------7F-7L-J|FJL--JF-7FJF7L----7F7F-JL-7L7F-J7--JL|7.F---JF-----7L-JF-7L7||JL7|L---7|L-JLJF-------7F-J|F-JF7F77..77||LJ.7
FF77|FJJ7F-JL7||F------7|L7L7F7LJF---7L7|L7|L----7LJLJF7F-J-LJJ.L|7|.--FL-7F-J7F---JF-7L7L7||L-7LJF7F7LJ.F7F-JF7F7F-7||F7|L--JLJ|F7---|--L||
LLF-JL---L--7LJ|L-7F--7LJFJFJ|L7FJF-7L-JL-JL7JF7|L--7FJLJFLFJ.|J-7-77|F---JL7F-JF-7FJFJFJ-LJL--J-FJLJL7F-JLJF-JLJLJFJLJ|LJF-----J||JFFJ-7.LJ
|.|F7FL|-F--JF7L-7||F-JFSL7L7|FJ|LL7L-7F7F-7L-JL--77LJF7F7.|LJ7J7|-JFLL--7F7|L--JFJL7L7||F-7|F7F7L---7|L----JF7F---JF7FJF7L------JL-7J|F-7-7
-7LL7JJLFL---JL-7LJ|L7FJL7|FJ|L-JF7L-7LJ||LL---7F7L---JLJL-7FFJ.L|.|77|77||LJF7F-JF7|FJL7L7L-J|||F---JL---7F-J|L--77|||FJL---7F7F-7FJ|FL7.L|
LL.JJ.F7-F7F----JF-J.LJF7LJL-J-F7|L--JF7|L----7LJL---------J7LJF|LF-7-7JFLJ7FJLJF7|LJL--JFJF-7LJLJF------7LJF7L---JFJLJL---7JLJLJJLJ-|7L--F-
|-F.J-FLJ||L-----JF77F-JL-7F-7FJ|L----J|L--7F7L--7F7|F7F7F--7FF77|L7|F7FJJF7L-7FJ||F---7-L7L7L7F--JF----7L--JL-----JF-7F7F7L7LF---7LLJ|LJ.|J
|FL7.L7-FJ|F------JL7L---7|L7|L7|F-----J-F7LJL-7FJ|L7|LJLJF-JFJL-7FJLJ|7LF|L-7LJLLJL-7FJF7|FJ.LJF7|L---7|F7F------7FJF||||L7L-JF--J-L.L-7.L7
L|JFF-|LL7|L-7F----7L7.F-JL-J|FJLJF------JL7F77LJFJFJ|F--7L-7|F--JL-7FJJFFL-7L--7F---JL7|||||F7FJL7F7F-JLJ|L7F--7FJL-7LJLJ7L7F7L7.L7F|.|F|L|
||FF|--F-JL-7LJF---JFJFJF---7LJF-7|F---7F-7LJL7F7L7L-JL7JL--J|L7F7F7||F7F7|FJF7FJL----7|||LJFJLJF7LJLJF7F7L7LJF7|L---JLF--7FLJL-J-|LFLL7-7-F
FF7LJJLL---7|F7L7F-7L7|FJF7FJF7L7LJL--7||FJF-7LJL-JF--7L7F-7.|FJ|||||LJ|||FJFJLJF7F-7FJ||L7FJF--JL----JLJ||L7FJLJF--7F7L7FJF7F7F77J.-J-|-|7.
F7|.|..F7F7||||7LJF|FJLJFJ|L7||FJF----JLJL-J|L7F--7L-7L-JL7L7||FJ|||L-7||LJFJF-7||L7|L7LJFJL7|F----------JF7|L-7-L7FJ||FJL7|LJLJL7LL7|L--LF.
7JJFFF7|LJLJLJL--7FJ|F7FJFJ-LJLJ-L-----------7|L-7L--JF-7LL7||||FJ||F7||L-7L7|FJ|L7|L-JF-JF7LJ|F7F7F-7F---J||F7L--JL-JLJF7||F----J7.FJFL.L|7
7JLLFJ|L----7F--7|L7|||L7|F-7.F7-F7F---7F----J|F7L---7L7L--JLJ||L7|||||L--JFJ|L7L7|L--7L7FJL7FJ|LJLJ-LJF7F-JLJL7F7F-7F--JLJ|L---7L7..FFJL.L|
|7L|L7L-----J|F-J|J||||FJLJFJFJL-J|L--7|L----7|||F7F7L7L---7F-J|FJ||||L7F--J-|FJFJ|LF7L7LJF7|L-JF7F-7F-JLJF7F7L||LJFLJF7|F7|F---J7J-|7F-F-J.
LFF--JF7F7F7FJL-7|FJLJLJF-7L7L---7L---J|F----J||||LJL-JF77FJL-7|L-J||L-J|F7F7|L7|FJFJL7L7FJLJF7FJ|L7LJF7F7|LJL7|L-7F7FJL7|||L---7F7JLLLJJ|7.
F-L7F7|LJ||||F--JLJF7F-7|LL7L-7F-JF---7|L----7LJLJF--7FJ|FJF--J|F--JL--7LJ|||L7||L7L-7|-||F7FJ|L7|FJF-JLJLJF--J|F7LJ|L-7||LJF7F-J||.LJ-J--7F
.L.LJLJJFJ|||L---7FJLJJ||F-JF7|L7FJF--JL--7F7L7F7FJF-JL7|L7|F7F||F7F--7L7FJ|L7||L7L7FJ|FJLJ|L7|7||L-JF7F7F-J7F7LJL--JF7|||F-JLJF7|L-7.F7F|-7
-7FFL|..L-J||F---J|F---J||F-J|L-J|FL-----7LJL-J||L7|-F7||7|||L-JLJ|L-7|J|L7L7LJ|FJFJL7LJF7FJFJL7||F7FJLJLJF--JL-----7|LJLJL--7J||L7FJ77-LJ|7
L--|L|.7LF-J|L7F7FJL7F-7|||F-JF7FJF------JF--7FJ|FJL7||||FJLJF-7F7|F-JL7|FJFJF-JL7|F7|F7||L7|F7LJLJ|L--7F-JF--------JL--7F---JFJ|FJL--7.|.LJ
F|..FFJ7.L7FJ|LJ||F-J|FJ|LJL7FJ||.L------7L7FJ|FJL-7||LJLJF--J.LJ||L--7LJ|FJFJF-7||||||LJL-JLJL---7L---J|F-JF7F7JF-7F-7FJL-7F7L7||F---JF7FFJ
|.---7LFFFJ|F7-FJ|L7FJL7|F--JL7||F--7F---JFJ|L|L7F-J|L---7L7F7-F7LJF-7L-7||FJFJFJ|LJ|||F7JF77F7F--JF----JL--J||L7|FJ|FJL7F-J|L-JLJ|F-7-F|7J.
|-|-||.||L-J|L-JFJFJ|F7LJL-7F7|LJL-7LJF7F7L7L-JFJL7FJF7F-JFJ|L7|L7FJFJF7||||FL7L7|F7LJLJL7||FJLJF-7|F--------J|FJ||L|L--JL7J|F--7FJ|FJF-7J.-
FFFJ|7-J-LL-L-7FJ-L-J|L----J|LJF7F-JF7||||.|F--JF-JL7||L-7L-JFJL7||FJFJ||LJL7||FJ||L--7F-J||L---JFJ|L---------JL-JL-JF-7F7L-JL-7LJ7||7|FJ-F7
F7LLLF7-F7LF--JL7F7F-JF----7L7FJ|L--JLJ|||FJL7F-JF--J||F-JF--JF7|LJL7L7|L7F-JFJL7LJF-7|L7.|L7F--7L-J-F----------7F7F-JFJ|L-----JF7FJL-JL--7J
F-.F7JLFJL7L--7FJ||L--JF7-FJFJL7L---7F7||LJF-J|F-JF7FJ||F7|F-7|LJF-7|FJ|FJL7FJF7L7FJFJL7L7|FJL-7L-7F7L---------7LJ|L-7L-JF----7F|LJF----7FJ.
|7-|.F-L-7L7F7LJL|L----JL-JFJF7L7F-7||LJL-7L7|||F7|||FJLJ||L7|L7FJ7LJL7||F-JL7|L-J|FJF-JFJ||F-7L-7||L7FF---7F--JLFJF-JF7FJF-7FJFJF-JF7|L||F|
.L..J|.F7L7|||F77L---7F7F-7|FJL-J|FJLJJF7||FJFJ||LJ|||F7FJL-J|FJ|F7F7.||||F7FJL7F-JL7L-7L-JLJFJF7|||FJFJF-7|L---7L-J|FJLJFJL|L-JFJF-J|F7LJF7
|LF7.|F|L-JLJLJL7-F7JLJ|L7||L----JL-7F7|L-JL7L7||F-J||||L-7F-JL7|||||FJ||LJ|L7FJL7F7L7FJF----JFJ||||L7|FJFJ|F7F-JF7F7|F7FJF-JF-7L-JF-J||-FJ|
.FJ|7LFL7F7F7F-7L-JL---JFJLJF7F-----J||L-7F-J||LJ|F-JLJ|F-J|7F7||||||L7|L-7L-J|F7LJ|FJL7L7-F-7L7LJ||FJLJFJ.LJ|L--JLJLJ|LJ7L-7L7|F-7L--JL7L7|
LL7JJ7|.||LJ||FJF-7F-7F7|F--JLJF----7|L-7||F7FJF-JL7F-7|L-7|FJ||||||L7|L-7L--7||L7FJ|F7L7L7|FJ7L-7|||F-7L7F7-L7F-7F7F7L----7|FJ||JL--7F7L-J|
|J|.FL7-LJF7LJL-JFLJFJ|LJL----7|F---JL7FJ||||L7|F7-||FLJF7||L7|||||L7||F-J|F7|||FJL7|||-|FJ||J-F7||||L7||LJL-7||L|||||F7F7FJLJ-LJF--7LJ|F-7|
|7F-J-|-LFJL-------7L-JF7F---7LJL7F7F-JL7|LJL7||||FJ|F7FJLJ|FJ||||L7||||F7FJLJ||L7FJ||L7|L7|L7FJ|||||FJL7F7F7||L7LJLJ||LJLJF7F7F-JF-JF7LJFLJ
LLJJ|FJJFL---7F---7|F7FJ|L--7|JF7LJ|L7F-JL7F-J|LJ||FJ||L-7FJL7||||JLJ||LJ||F--J|FJ|FJ|FJ|FJ|-||-LJ||||F-J|||LJ|FJF7JFJL---7|LJLJF7L--JL--7J7
|.F7FL---LJF-J|F-7|LJ|L7||F-JL-JL--JFJL7F7||F7L-7||L-J|F-JL7FJ|||L-7FJL7FJ||F--JL7||FJ|FJL7|FJL-7FJ||||F7||L-7|L-J|FJF7F--JL-7F7||F------JJJ
-LFL7-J-.J7L7FJL7|L-7|7||FJF7F7F-7F7|F7|||||||F-JLJ.F-JL--7LJ.|||F7||F-J|FJ||F---J||L7|L-7||L7F-JL-J||LJ|||F-JL---JL7||L--7F7||LJLJF7F--7.||
|.|LL-J.F-FLLJF-JL--JL-J|L-J||||L|||LJ|||||||||FF---JF7F-7L7F7LJ|||||L7F||.LJL7F7FJL7|L7FJ||FJL---7FJL-7|||L-------7|||F-7LJLJL7F--JLJF-J7LJ
FL-77JL|JFL-|LL----7F7F7L---J|||FJ|L7FJ|||||||L7L---7|||FL7LJL-7LJLJL7L7|L-7F-J|||FFJL7||FJ|L-7F-7|L7F-J||L---7F7F7||||L7|F7F-7LJF--7FJ|F7-|
FJJ.L.FJ.FJ-LF-----J|||L-7F-7|||L7|FJ|FJ|LJLJL7L7F--J||L7.|F7F7L---7FJFJ|F7|L7FJ|L7L7FJ|||FJ7FJ|L||FJL-7LJF7F7LJ||||LJ|FJLJ|L7|F7L-7|L--JL77
|JF-JFFJ.L7-LL--7F-7|||F-J|F|||L7LJL7|L7|.F---JFJL7F7||FJFJ|LJ|F-7FJ|FJ|||LJJ||FJFJFJL7LJ|||FJFJFJ|L7F7L--JLJL-7|||L7FJL-7FJFJLJL7FJL-7F--J-
|L|.L|JLFF77F7F7||JLJ|||F7L7||L7|F--J|FJL7L7F7FJF-J|LJ|L7L7L-7LJFJL7||F-JL--7LJL7L7|F7L7FJ|FJFJLL7|-|||F7F-7F-7|LJ|FJ|F-7|L7|F7F7|L--7LJ|L7L
FF7J.||FFJL-JLJLJL7F-J|LJL7||L7LJL-7FJL7FJFJ|||7L-7L-7L7|FJF7L-7|F7|LJL7F-7FJF--JFJ|||FJ|FJ|FJFF-JL7|||||||LJ7|L-7||FJL7|L7|LJLJ||F-7L7FJ||.
F7|-J-7-L--7F7F7F-J|F7|F--J|L-JFF--J|F-JL7L7|||F--JF-JFLJL7||F-J|||L7F-J|JLJFJF7FJL||||FJ|FJL-7|F-7||||||L---7L--JLJL7FJ|FJL7F-7|||7|FJ7.JJJ
LJ-7|F-J.|.LJLJ|L-7||||L---JF7F-JF7FJ|F-7|FLJ||L7F7L---7-FJ||L-7||L-J|F7L--7L-J|L-7LJ||L7|L7F-J|L7LJLJ||L-7F7L-----7FJ|FJL-7||FJ|LJ-||LF77F|
|LL-7JJ|FFJJLJFL7FJLJLJF----JLJF-J|L7|L7LJF--JL7||L7F7FJFJFJL7FJ||-F-J|L7F-JLF-JF-JF7LJJ||FJL7J|FJF---JL7FJ||F-7F--JL7|L-7FJ||L7L7JFLJ-L|FFL
|.|-L7.F7-JF7LL-LJ.LF7FJF-7F7F7L-7L7|L7|F-JF--7||L7|||L7L7|F7LJ|LJFJF7|FJ|7F7L-7L--J|-F-J||F7L7|L7L---7FJL7||L7|L--7-LJF-J|FJL7L-JL|L|.F|F-7
|.J.LF-JJLFFJ7.FJ||.||L7L7LJ|||F-JFJ|J||L--JF-J||FJLJL-J||LJL---7JL7|LJL7|FJL--JF--7|FJF7|LJ|FJL-JF---JL-7LJ|FJ|F--J7F-JF7|L-7L7|LFJ||F7JJ.L
-7..FJ||.-7JL--J-F--JL-JFJF-J||L7FJFJFJ|F---JF7||L----7F-JF7F7F7|F7||F--J|L---7FJJFJ|L7|LJLFJ|F7F7L---7F7L-7|L7|L---7L-7||L7FL7|7|L77J|JLLJ|
F|7F7-7-7F-7.L7J|L---7F7|-L-7||FJ|FJFL7|L7F7FJ||L-----JL-7|LJ||LJ||LJL--7L7F--J|F7L-J7LJ|F7L7LJLJL7F--J|L7FJ|FJ|F7F-J|LLJL-J7-|L7-7LL---7JFL
LJ|LJFLJL77|F.JL7JF--J|||F--J||L7||F--JL7||LJ||L---7FF7F-JL-7||F-JL7LF--JFJL--7LJL---7F--JL-JF7F7FJ|F7FJFJL7|L7|||||L7J|.JLJ..L-J.JJ7JF|L-7.
||7J-||7F7-|JFJ-7JL7F7|LJL7F-J|FJ||L7F7FJ||F--JF-7FJFJLJF-7FJLJ|F-7L7L7F7L7F--JF7F---JL--7F7FJLJLJFJ|||7L7FJL-JLJ|L7|L7|-|FL-7FJ--.L7.777FJ-
F-7FFJF-J.|L7|JJ|F7LJ|L--7||F-JL7||J|||L7||L7F7L7|L7L7F7|FJL---JL7|FJL||L7|L-7FJ|L-7F7FF7LJ|L----7L-J||F-JL-----7|FJ77FL.J7|LFL-7.FFLJF--7.|
L.||J-|LF.L7FJ..7.FJL|F7FJLJ|F7FJLJFJ|L7|LJFJ||FJ|FJ|LJ||L-7F--7FJLJ7JLJJ||.FJL7L-7||L-JL--JF---7|F77LJ|F7F7F-7FJ|L7J77JFJ-J.LLLJLFJ.LJF|||7
F-7JJ7L7|--JJF-LJ.|L-|||L7F-J|LJ7F-JFJFJL7FJFJ||FJL---7LJF7|L-7|L-7F77F7FJ|FJF7|F7LJL--7F7F7L--7|LJL--7LJ|||L7LJLL-JL-JFJJ.LFJ..|L|FJ..77--7
|LF7.LJ|||FJ|L7|LL7-FLJ|FJ|F7|F--JF7|-|F-JL7|L||L7F-7FJF-JLJF7|L7FJ|L-JLJFJL7||LJL-7F--J||||F7FJ|F-7F7L7FJ|L7|-LF|.|-L-7F77.F77-FF--J-|L7J-J
L7JLF.F-LJ|F|F|L-L--J-L|||LJLJL7F-J|L7||F--J|FJ|.|L7|L7|F7F7|LJ|||JL7F7F7|F-J|L7F-7||F-7||||||||||FJ|L-JL7L7LJ.FL7JJ---L7JF-JJ7J.|.JLLF7|--7
.-7J.F7.|LLJL7|..-JJ|7|LJ7LLJ.F||F-JFJLJ|F-7|L7|FJFJ|FJLJ|||L--7||F-J|LJ|||F7L7|L7LJ||FJ|||||||FJ|L7L---7L-JJJ7F||F-.JJ|F7J.LFF7.LL...LL--J7
7LF-7LL7|7|LFLL.F|--L.|.LJ777FLLJ|F7L-7L|L7|L7LJL7L7|L-7FJ||F--JLJ|F7|F-J|||L7|L7L7LLJ|FJ||||||L7|-L-7F7L-7||F|J7|L-J.FL|JF7-7JL777L-|||JLFJ
|.|7.FJ-L-F-7L|JJ.7||7|F7L|-7J.|LLJ|F-J-L7|L-JLF7|FJ|F-JL7||L-7-FLLJLJL7FJ||FJ|FJFJF--JL7||||||FJL--7||L7FJ7JJJ|FL..J-F.|LLF-LJLJJ7.L||-77|J
.F|7F77F|FJ--7J|.LFJ-JF-7-7F7.FJJL-LJF|LLLJFLFFJLJ|FJL--7LJ|F7L7--LLF--JL7|||FJL7|JL-7F7|||||LJ|F7F-JLJLLJJ.|.7L||FFJ7L-J|FJ.L-FL-77F|.LF-J7
-L|LLL77.|JF|L-F-.LJ|||L|..--J-7LJ-|-|||7.|7|LL7F-J|F7F7|-FJ|L7||LL.L-7F-J|||L7FJL-7-LJ||LJ||F-J||L77LJ.|L-7|F|.|77L.FLJ.|.F7L-7.-7F-J.L7J.7
|.|JLFL77|-J7.F|.FF-7-LJL77..|F777J.FL7-J-|.|7||L7FJ|||LJ7L7L7LJ77LF7|||.FJ||FJL7F7L--7LJF-J|L-7||FJ7777|.FL|.F7|LJ-L-7F-|.--7F77..|7.||.|7|
77LJ-J|.L7.L|-F7F7|J|7.F7J7-J-L-.-.7-F-.|LL7L7FJFJL7|LJJL|-L-JJ.L-FJL-J|FJFJ||F-J||F--J7LL-7|LL||||LF7J-F7LL-7JF|J|LL7LJ-7JF|-JJ|.FJ|.LF--J|
F7.|7.LL.JJFLJ.|7LLF-J-||L.F.FL.J|LJJF.F.F-||FL7L7LLJF|F-JF|LFL--LL-7F7||FJJ||L-7||L77LJL||LJ-J||LJ7L-J|LJ-L|7-JJF7.LJJ7F-7F7-|L|-|FJ7-L7L7|
|LFFFJJL|7-J...7|F7LJ7.|7.JFF7.F|7|F-JF.F--LJ7LL7|-L.F7JLLJ7.F-J.||FJ|||LJ||LJ|LLJL-J-.|L--..|LLJ|J.F|LF7L----7L--77.|F7-.-J|F|.LF7-L--JJFJ7
J-FJ--F7J|-J-F-.|.|FFJ7JF.FL|-|JF7-|J7.-J|J|LL-LLJ||FFJ.F|LF7F-LF--L7|LJJFJJ.LL-J.LJ||F7FL|..|7.LLF.7--.F.F|.J77|F-J.|J|-F|F|---F7.FF..L.F7|
L.LL|77J-|.L7LJ-7-J|JLJ.J-|-LJ.-LL-L.L..L..F-JJLLJ--J|-L-7.L-L7.-L-LLJLJLFJ|-JJ-J-L-L7-LJ-LJ-L7J-LL-L--J..LJ-J.7--JJ-F----J-J.J.LL7JJ--J7LL.

88
2023/python/day09.py Normal file
View File

@ -0,0 +1,88 @@
import shared
def get_sequence(values):
differences = []
for idx in range(len(values)-1):
x1, x2 = values[idx:idx+2]
differences.append(x2 - x1)
return differences
def print_pretty(history):
for idx, h in enumerate(history):
print((" " * idx) + " ".join(map(str, h)))
def calculate_new_value(row1, row2):
print(row1, row2)
# @shared.profile
def part1(rows):
# gather
history = [[shared.spl(row.split())] for row in rows]
for h in history:
vals = h[0]
while True:
vals = get_sequence(vals)
h.append(vals)
if shared.all_equal(vals) and vals[0] == 0:
break
# do calcs
for h in history:
h[-1].append(0)
for idx in range(1, len(h)):
i = (idx * -1) -1
me = h[i]
above = h[i+1]
#print(above,me)
new_val = me[-1] + above[-1]
h[i].append(new_val)
# totals
newest = [x[0][-1] for x in history]
print(sum(newest))
# @shared.profile
def part2(rows):
# gather
history = [[shared.spl(row.split())] for row in rows]
for h in history:
vals = h[0]
while True:
vals = get_sequence(vals)
h.append(vals)
if shared.all_equal(vals) and vals[0] == 0:
break
# do calcs
for h in history:
h[-1].insert(0, 0)
for idx in range(1, len(h)):
i = (idx * -1) -1
me = h[i]
below = h[i+1]
new_val = me[0] - below[0]
h[i].insert(0, new_val)
# totals
newest = [x[0][0] for x in history]
print(sum(newest))
def main():
rows = [row for row in shared.load_rows(9)]
with shared.elapsed_timer() as elapsed:
part1(rows)
print("🕒", elapsed())
rows = [row for row in shared.load_rows(9, True)]
with shared.elapsed_timer() as elapsed:
part2(rows)
print("🕒", elapsed())
if __name__ == "__main__":
main()

128
2023/python/day10.py Normal file
View File

@ -0,0 +1,128 @@
import matrix
from pprint import pprint
import shared
DIRS = { 'N': (-1,0), 'S': (1, 0), 'W': (0,-1), 'E': (0, 1), }
EXITS = {
'': ['N', 'S'],
'': ['E', 'W'],
'': ['N', 'E'],
'': ['N', 'W'],
'': ['S', 'W'],
'': ['S', 'E'],
}
TRANSLATE = {
"F":"",
"-":"",
"7":"",
"|":"",
"L":"",
"J":"",
}
OTHER = {
'.': None,
'S': "?"
}
OPPOSITES = {
"N": "S",
"S": "N",
"W": "E",
"E": "W",
}
def find_connected_neighbors(mat, y, x):
exits = {}
neighbors = {k:v for k,v in matrix.get_neighbors_cardinal(mat, x, y, False).items() if v['value'] in EXITS.keys()}
for _dir, value in neighbors.items():
_char = value["value"]
r = value["r"]
c = value["c"]
if OPPOSITES[_dir] in EXITS[_char]:
exits[_dir] = ((r,c), _char)
return exits
def get_exits(mat, r, c):
sym = mat[r][c]
return EXITS[sym]
def next_coords(r, c, _exit):
d = DIRS[_exit]
r += d[0]
c += d[1]
return (r,c)
# @shared.profile
def part1(mat):
for k,v in TRANSLATE.items():
coords = matrix.find_in_matrix(mat,k, one=False)
for r,c in coords:
mat[r][c]=v
Sy, Sx = matrix.find_in_matrix(mat, "S")
cursor = (Sy,Sx)
seen = []
neighbors = find_connected_neighbors(mat, *cursor)
EXITS["S"] = list(neighbors.keys())
cursor, mat, seen, x = loop(cursor, mat, seen)
matrix.highlight(mat, red=seen, green=[seen[0]])
print(x//2)
def loop(cursor, mat, seen):
x = 0
while True:
x += 1
seen.append(cursor)
exits = get_exits(mat, *cursor)
# print(cursor, seen, exits)
# mat[cursor[0]][cursor[1]]="x"
# print(matrix.ppmx(mat, pad=False, space=False))
# matrix.highlight(mat, red=seen)
for e in exits:
_next = next_coords(*cursor, e)
if _next in seen:
# print("seen", e, _next)
continue
# print(exits, "next exit", e, _next)
break
else:
return cursor, mat, seen, x
cursor = _next
# print(neighbors)
# for cd, coord_sym in neighbors.items():
# coord, _ = coord_sym
# if coord in seen:
# continue
# seen.append(coord)
# cursor = coord
# neighbors = find_connected_neighbors(mat, cursor[0], cursor[1])
# break
# mat[cursor[0]][cursor[1]]="x"
# print(matrix.ppmx(mat, pad=True, space=False))
# @shared.profile
def part2(mat):
pass
def main():
mat = shared.load_file_char_matrix(shared.get_fname(10))
with shared.elapsed_timer() as elapsed:
part1(mat)
print("🕒", elapsed())
with shared.elapsed_timer() as elapsed:
part2(mat)
print("🕒", elapsed())
if __name__ == "__main__":
main()

View File

@ -151,6 +151,20 @@ M_UL, M_U, M_UR = (-1, -1), (0, -1), (1, -1)
M_L, M_R = (-1, 0), (1, 0)
M_DL, M_D, M_DR = (-1, 1), (0, 1), (1, 1)
M_NW, M_N, M_NE = (-1, -1), (0, -1), (1, -1)
M_W, M_E = (-1, 0), (1, 0)
M_SW, M_S, M_SE = (-1, 1), (0, 1), (1, 1)
CARDINALS = {
M_NW: "NW",
M_N: "N",
M_NE: "NE",
M_W: "W",
M_E: "E",
M_SW: "SW",
M_S: "S",
M_SE: "SE",
}
def get_neighbor_coords(matrix, c, r, diagonals=True):
height = len(matrix)
@ -172,6 +186,25 @@ def get_neighbor_coords(matrix, c, r, diagonals=True):
pass # okay we out of bounds boizzzz
return neighbors
def get_neighbors_cardinal(matrix, c, r, diagonals=True):
height = len(matrix)
width = len(matrix[0])
coords = [M_N, M_W, M_E, M_S]
if diagonals:
coords.extend([M_NW, M_NE, M_SW, M_SE])
neighbors = {}
for coord in coords:
_c, _r = coord
try:
value = matrix[r + _r][c + _c] # Try to get a value error
if r + _r >= 0 and c + _c >= 0:
neighbors[CARDINALS[coord]] = {"c": c + _c, "r": r + _r, "value":value} # woo, no error, this coord is valid
except IndexError:
pass # okay we out of bounds boizzzz
return neighbors
def line_of_sight_coords(
matrix, row, col, distance=None

View File

@ -4,6 +4,11 @@ from pathlib import Path
import cProfile
import functools
import pstats
from itertools import groupby
def all_equal(iterable):
g = groupby(iterable)
return next(g, True) and not next(g, False)
def profile(func):
@ -22,9 +27,8 @@ def profile(func):
return inner
spl = lambda y: [int(w) for w in y]
def spl(y):
return [int(w) for w in y]
def minmax(l):
return min(l), max(l)

3
2023/samples/day09.txt Normal file
View File

@ -0,0 +1,3 @@
0 3 6 9 12 15
1 3 6 10 15 21
10 13 16 21 30 45

10
2023/samples/day10.txt Normal file
View File

@ -0,0 +1,10 @@
FF7FSF7F7F7F7F7F---7
L|LJ||||||||||||F--J
FL-7LJLJ||||||LJL-77
F--JF--7||LJLJ7F7FJ-
L---JF-JLJ.||-FJLJJ7
|F|F-JF---7F7-L7L|7|
|FFJF7L7F-JF7|JL---7
7-L-JL7||F7|L7F-7F7|
L.L7LFJ|||||FJL7||LJ
L7JLJL-JLJLJL--JLJ.L

5
day10.txt Normal file
View File

@ -0,0 +1,5 @@
-L|F7
7S-7|
L|7||
-L-J|
L|-JF