heh
bendn 2024-12-08
parent 8b24a52 · commit 00b2cf7
-rw-r--r--src/inp.txt900
-rw-r--r--src/main.rs134
-rw-r--r--src/util.rs1
3 files changed, 142 insertions, 893 deletions
diff --git a/src/inp.txt b/src/inp.txt
index 318f790..d85f44e 100644
--- a/src/inp.txt
+++ b/src/inp.txt
@@ -1,850 +1,50 @@
-54753537: 2 35 2 5 5 9 1 17 367 73
-4351178317: 51 646 47 281 6 91
-452662455: 574 1 291 1 271 44
-321264501: 3 45 97 69 501
-137567: 319 6 1 561 3 6 2 328 7
-945476: 2 9 968 79 3
-44330019: 95 8 15 65 5 4 44 7 2 3 7
-1387063: 1 5 55 3 301 9 2 9 4 6 5 8
-10265528: 611 4 7 2 50 6 728
-1909254886: 2 613 8 86 9 8 61 847
-39744000: 66 3 180 640 5
-850892742: 5 235 932 37 7 4 3 26 4
-2069650924: 94 5 37 521 44
-13065382: 6 6 8 8 6 3 8 377 4 3 4 22
-532264632152: 69 3 8 4 4 7 3 6 9 8 144 8
-2933920: 43 68 9 8 55 60 5
-3608: 4 39 3 9 8
-21667: 5 8 1 6 461
-2770482: 4 3 8 3 8 1 52 43 3 7 8 49
-25620: 696 64 87 7 5 6
-120120: 725 45 52 3
-399281807: 7 533 618 1 53
-460024329: 5 1 6 69 3 3 1 428 4 332
-43482258007: 80 592 2 467 983 87
-719928: 13 325 7 54
-19415161698: 6 2 206 6 7 5 36 277 6 6
-356516192: 364 55 53 7 1 24 6 6 2 8
-65345119842: 110 27 148 1 572 7 2
-193326899: 67 412 14 7 899
-184: 61 8 16 6 93
-1877904: 9 9 84 6 46
-796363074: 74 4 5 819 73 26 9
-2703365481806: 44 8 768 54 817 26 80
-1443: 369 5 348 716 5
-629726: 62 442 523 2 8 1 47
-1995000: 4 95 70 3 25
-39210528000: 888 5 7 40 76 415
-130761000: 3 835 87 3 5 40
-656915580: 591 65 887 6 22 574 6
-116418336: 5 94 2 4 10 449 809 96
-796706: 8 277 39 40 423 9 706
-2367: 3 30 26 25 2
-94766755: 23 71 7 66 75 7
-996: 24 35 7 143 6
-65085180: 4 25 9 61 2 8 9 93 3 6 5 2
-2478357: 69 867 51 81 31
-65658600: 5 96 6 3 1 3 2 5 27 4 7 18
-3310328358: 92 5 28 6 1 5 3 549 74
-23286736563543: 5 1 7 5 72 682 9 815 4 3
-322244: 1 304 106 4
-6963228990: 748 7 34 30 93
-16852589: 9 3 3 77 1 976 3 8 75 8 9
-5142276457: 8 5 689 3 3 9 6 6 40 5 6
-257579142: 2 8 539 3 65 2 802 3
-3410836995: 2 7 643 7 9 3 251 983 3
-132980407: 8 81 3 1 4 615 111 187
-20582197: 288 9 7 99 94 3
-392: 254 62 76
-1609372858: 512 6 4 887 1 35 23
-4128975: 9 7 91 7 3 9 3 4 2 424 71
-2040918779: 5 44 1 7 374 779
-139213718: 8 1 9 89 88 98 815 44 7
-87195696371: 917 283 6 56 370
-9706088: 802 36 10 2 2 8 6 1 1 7 4
-1484253: 461 4 9 89 9
-617638: 8 321 8 1 747 29 170
-83249019: 4 430 5 86 7 2 5 6 7 63
-46834: 17 5 27 7 9 39 73
-19069722000: 3 989 7 852 84 6 70 5 5
-477600: 4 24 41 1 758 9 60
-880661: 150 3 575 91 1
-1928660: 607 652 62 4 365
-1281186: 7 5 1 5 8 6 1 2 65 654 3 1
-4929201: 10 68 2 73 22 12 9 4 81
-3850835: 818 47 57 5 26 9
-767597973765: 8 2 3 6 1 5 7 732 75 9 3 5
-1448163: 8 3 7 3 3 3 86 267
-36588218862000: 2 936 15 945 8 520 75
-150084752: 139 20 7 7 6 9 666 2 85
-918138: 9 7 9 1 3 43 54 5 56 9 9
-221: 9 8 21 97 5
-64893075: 1 300 2 289 8 247 3
-3649860742: 5 5 54 9 9 5 90 6 7 3 7 5
-6212821112: 609 1 3 8 5 1 3 17 5 4 3
-1259: 16 9 11 5 7 1 2 67 70
-77842: 827 94 15 5 84
-1863503: 62 3 346 4 3
-8756909: 5 52 36 4 9 4 8 979 947
-15306: 62 5 6 6 139 6
-7729: 37 33 2 1 95 863 8 18 1
-3818222931: 9 1 2 19 18 164 229 3 1
-356166: 85 787 6 1 5 9 2 5 57 9
-41491597288: 120 8 35 758 453
-1168053: 679 2 7 6 43 7 4 5 8 6 7
-741200: 6 6 2 8 4 2 455 2 3 3 436
-2678756: 3 86 3 8 756
-12168355: 277 24 206 8 3 347 8
-17215297: 2 7 2 3 4 6 76 9 4 853 7
-486305: 48 4 7 6 30 79 455
-59514: 8 5 38 923 42
-1081: 716 360 2 3 1
-52644337: 8 14 4 8 391 3 3 4 44 40
-191221: 3 6 79 34 510 19 8 43
-188584887: 4 35 6 3 4 412 768 951
-3515874: 6 52 2 3 903 57 6 5 110
-187053830: 185 3 4 839 970
-1258290: 4 8 2 33 3 140 558
-29495340: 51 7 9 255 36
-4424790: 442 4 78 2 8
-21768474: 7 42 949 77 78
-418815323: 618 517 369 3 23
-335610768: 3 729 30 256 3
-500108: 71 398 41 5 7
-27697972: 3 257 10 341 5 52 34 2
-2650285638: 422 73 4 5 819 3 1 858
-7721858286: 982 9 193 3 5 6 19 8 57
-116472: 844 46 3
-6239044: 8 566 1 606 5 9 9 3 3 3 7
-1866118192215: 7 66 3 5 84 962 9 9 16
-1507: 86 3 61 4 3
-109629690: 783 800 52 3 25 6 3 7 2
-5306964937317: 752 3 952 741 48 83 7
-63439552: 89 9 2 13 704
-80598: 93 6 20 9 11 57 8 46 9 4
-1729157144: 817 6 8 4 8 5 2 8 12 1 88
-318526533: 60 72 9 12 70 9 13 9
-75992592962: 9 478 12 870 846 2 2
-36687434205: 3 4 9 47 5 2 743 5 743
-2335413271: 2 7 207 8 9 5 4 1 327 1
-157085: 77 3 680 5
-7718989824: 84 4 944 39 78 8
-86959770: 43 10 1 68 981 89 2 6
-113448: 5 1 65 93 696
-1183882321: 1 85 659 53 3 92 232 1
-50527: 7 6 664 18 45
-4909240: 95 7 905 5 1 1 7 89 5
-5234297390: 6 905 89 85 574
-31905152: 19 55 72 4 4 424
-3850024234: 18 6 456 8 7 9 698 5 6 2
-417726: 3 703 79 52 19 933 6
-6167: 350 7 490 7 1 230 7
-186: 44 59 7 47 29
-306616797: 1 4 34 80 446 9 5 6 537
-28792: 68 5 390 48 192 73 4 5
-3378: 5 548 638
-7446677: 8 4 7 985 8 9 5
-29579340327: 23 7 1 80 3 980 27 5 7
-1085192: 1 3 64 9 794 7 3 8 4 8 8 1
-1429200: 1 5 85 16 195 89 9
-20570: 61 8 33 7 9 14
-9483: 3 90 1 83
-13799096531: 3 904 55 98 7 944 3
-30590388700: 5 6 58 2 6 4 7 731 8 700
-4267872: 696 452 4 7 928
-153573: 51 35 4 388 668 134 9
-9720618307: 1 6 894 1 9 2 9 8 5 6 307
-33397511: 3 330 1 9 747 4 1
-873: 5 20 250 88 433 2
-25005: 2 147 17 5 7 8
-58786759769: 7 1 1 900 1 8 31 7 933 8
-2387612493: 2 3 4 70 20 9 3 151 493
-26852833: 630 8 33 3 6 6 8 7 6 7 7 7
-809887: 71 50 948 78 9
-151958: 492 913 2 2 1 6 9 2
-56789: 4 71 95 29 66 94
-463935731252: 471 985 486 245 2 52
-42895: 32 8 4 384 95
-85076145520: 35 973 473 5 514 5
-843192: 6 6 937 7 98 9
-19872: 6 5 517 46 18 22 3 4 8 4
-5887869664: 8 8 3 6 596 7 16 701 7 8
-1635898: 220 2 5 599 583
-558360661: 5 629 9 2 3 35 177 1
-115823720: 440 9 43 49 85 8
-210515898969: 1 662 9 7 8 22 7 9 3 6 9 1
-124440639859: 510 244 63 972 6 4 76
-49816: 60 830 16
-279572: 4 1 1 80 2 8 71 8 9 7 5 4
-243618: 362 57 581 89 82 8
-23616: 9 6 1 426 12 600
-6411304: 8 5 9 2 9 5 6 8 5 5 2 212
-311780: 4 4 175 4 8 2 7 5 6 70 2
-134961625: 7 82 774 6 9 67 49 25
-8762878: 76 8 9 99 18 10 1 78
-5703: 96 4 5 920 3 2 2 2 5 4
-1087818: 5 8 7 7 76 8 7 335 1 7 65
-2912: 89 43 22 4 4
-7136898766: 3 55 87 97 4 9 2 766
-144594: 41 3 53 62 8 2
-5718245: 57 879 3 9 5 3 2 2 4 5
-12260616: 1 9 8 2 5 84 9 17 7 1 52 4
-5040: 2 88 7 8
-198: 3 6 4 9
-10354266785: 1 88 903 9 9 609 1 64
-18450: 923 707 416 4 9
-23252292: 923 67 376 71 5
-285885139: 84 58 2 7 4 215 5 4 839
-5998: 5 2 13 659 8
-8001936: 8 466 5 6 140 767 7 4 6
-6528: 6 98 72 8 798 450
-320068314: 265 87 8 1 6 771 3
-4043970379: 67 741 794 5 379
-4434: 6 433 9 5 77 9 939 3
-87478812: 1 77 1 7 2 3 7 8 1 2 9 89
-240189372: 2 921 590 77 49 4 1 3 3
-6849841788: 6 7 811 5 2 8 7 8 2 88
-6318400: 70 30 6 8 88 550
-816598136: 9 791 834 9 33 245 36
-801799: 2 134 6 3 979
-179958: 7 3 3 200 5 74 73 8 67 8
-16461229842: 7 66 364 4 26 89 8 6 4 2
-1090: 28 24 1 8 67 136 206
-153085142: 62 998 81 3 2
-9614302984: 729 524 88 796 286
-508606: 245 7 2 303 2
-5567711552: 51 964 67 238 18 344
-85376238: 8 7 4 6 3 929 9 5 6 9 3 8
-206208012: 52 58 5 4 18 2 2 9 3 474
-37794428: 8 47 9 3 99 2 389 39
-20422831: 1 916 21 706 3 65 341
-2633593816: 49 8 965 6 644 3 6 16
-10108411292: 38 435 263 6 292
-191874752: 5 7 24 83 82 8
-22894: 41 54 5 681 68
-14559: 9 66 194 2 7
-38948878: 2 416 92 483 4 5 87 8
-206: 9 9 188
-560664616839: 92 7 4 8 1 246 2 564 39
-805: 196 24 8 577
-172349974: 9 2 9 67 4 8 441 7 9 7 48
-9846287: 82 12 6 28 7
-2632: 40 5 456 4 8
-135680128: 6 9 4 19 8 8 9 7 9 782 8 8
-17495482: 5 8 2 538 289 1
-2399040: 229 9 8 140 9
-118977: 9 1 6 4 79 9 2 3 25 127
-4470355: 82 3 1 24 8 4 5 755
-3185786752: 5 335 3 2 7 41 2 326
-2009: 9 424 69 4 1
-1276: 2 4 949 8 40 253 4 3 13
-11520: 4 9 26 2 285 4 6 277 6 6
-5075195721: 3 58 7 333 727 12 1
-38241890: 7 648 23 5 8 732
-560123: 9 28 18 2 3 3 93 959 48
-1258: 7 7 27 474 1 405
-200203180: 9 28 5 779 180
-5384616: 255 18 2 85 9 58 6 2
-10732: 8 88 15 4 168
-595020: 39 4 42 30 9 20 3 8 3
-14741030272: 1 6 888 7 76 6 8 487 8
-50491569: 610 5 821 68 1
-6690: 173 782 81 79 6
-368089585: 40 939 40 6 49 7 5 80
-2210725312: 319 1 866 6 4 8
-735936: 5 8 6 3 888 6 13 659 1
-367231069: 9 715 378 40 69
-33491860: 1 22 2 27 5 6 8 63
-52504: 8 7 936 4 76 8
-51734895: 8 6 7 311 56 3 520 3 2 6
-17919440: 58 13 5 70 44
-683883: 261 181 241 8 83
-60928: 601 7 4 8 8
-75011628: 750 11 5 1 35 93
-6846336: 6 1 120 51 8 5 9 3 6 48 4
-432606725: 8 86 92 2 7 4 619 8 2 4 1
-1738: 274 1 6 6 52
-36811828: 601 625 3 1 7 4 7 65 2
-2783203: 8 710 7 70 3
-26705: 32 6 7 21 84
-34008882432: 7 2 9 7 2 2 9 7 44 6 68 14
-2065379968: 11 45 96 8 679 50 64
-2089592975: 75 130 73 6 381
-305519: 5 7 50 337 14 48 6 304
-108951: 8 2 7 1 951
-1113974643: 1 7 5 9 246 819 8 91
-1560: 3 193 8 34 22 2 3
-4434569: 4 42 997 452 2 77
-740990253: 4 1 424 6 39 7 65 3 1 3
-654983640: 799 9 5 81 92 6 640
-147560: 5 35 5 6 306 96 33 3 5
-9460841: 50 242 6 54 4 1 1
-112336045: 1 29 58 93 395 415
-264548660: 5 529 1 1 2 1 866 10
-120206: 59 7 72 290 4 1 95 7 1
-964442: 881 5 78 445
-58489604: 9 48 88 12 2 672 7 68
-6995: 4 3 6 8 9 164 2 598 7 9
-1584: 955 4 3 223 354 18 27
-6969: 1 8 83 1 69
-825578: 7 9 8 6 8 1 42 8 7 2 9 8
-1063552: 83 800 53 4 76 4
-1264664016091: 91 77 870 3 3 88 2 91
-231806: 231 69 8 4 2 30
-28728158: 437 657 164 8 58
-63329113: 79 9 4 77 71 307 924
-1242: 44 131 943 49 75
-7979912643: 544 1 9 7 1 1 5 366 8 5 3
-84947: 7 121 84 163
-32995: 9 2 1 5 7 85 8 262
-2352835: 97 982 50 24 67
-28447: 2 7 6 3 779 2 2 321 72 6
-1222702380: 27 5 7 6 8 9 5 8 2 93 7 90
-1762483649136: 336 562 98 61 876
-146084158: 2 18 83 22 515 522 4 7
-613893: 7 46 26 2 7 63 2 8 2 1
-247198: 23 1 9 7 198
-528428: 9 71 7 818
-1359756: 911 91 40 4 326 988 1
-915: 1 1 9 897 7
-12: 3 3 5
-1254753: 291 5 7 9 41 7 826 58 1
-4275190: 702 35 87 2 5 5
-54750: 696 34 75
-490998931: 65 9 468 54 905 23 1
-161948805: 482 4 8 5 26 8 20 6
-20648862546: 82 4 6 572 22 9 6 530 6
-3125600: 20 834 91 418 8 40
-149520: 89 5 56 6
-4602270405: 65 8 2 4 910 5 433 4 5
-2328979191: 44 5 14 8 9 654 814 11
-140130: 46 9 4 6 4 7 6 4 444 8 9
-37543990: 1 9 3 80 92 6 3 1 37 170
-37925201520: 11 3 4 3 3 477 1 7 20 6 6
-8701: 26 2 1 35 8 560 2 39
-77474: 1 719 6 743 4 40 7 51 5
-789636: 540 487 3 370 326
-16156392754413: 223 805 47 5 9 4 413
-1554: 52 45 2 443 911 6
-3171: 91 963 1 3 9
-12014295: 3 87 8 927 3 2 4 3 6 53 3
-28736: 1 7 191 425 46 78
-739: 5 96 51 92 1
-67092408236: 2 821 137 62 37 28
-28040020908: 116 5 4 4 9 336 811 7 6
-62339520: 64 25 847 5 46 90
-73771505690: 922 143 1 8 2 4 2 2 7 10
-29074322: 3 96 8 15 1 473 9 2 5 22
-63009501: 11 95 5 6 938 7 113
-70987224670: 1 4 9 1 2 644 8 1 6 1 469
-817: 4 1 3 8 6 97
-1666509161: 1 5 664 6 7 7 5 9 9 3 5 9
-14179144144: 3 4 513 5 104 41 46
-98291189: 59 79 4 8 659 21
-11808436642: 417 495 26 2 572 2
-49340170: 406 7 6 4 70 121
-30650304: 4 5 354 346 18 244
-30210212: 5 41 5 93 581 5 5 55 87
-1206388: 19 73 9 2 6 3 8 9 20 8 1
-189: 185 3 1
-530030: 25 1 278 788 242
-18288: 8 318 8 4 7 4
-16712801285: 32 6 8 81 707 960 5
-3377504: 46 1 17 4 706
-283886218: 2 629 8 2 2 2 9 4 7 174 7
-1736064: 12 75 468 267 704 3
-64: 4 51 8 1
-753040800: 518 9 3 3 6 233 4 5 9 5 9
-553737781: 9 8 8 58 234 6 3 5 1 5 1
-1367681: 96 2 2 156 62 597 61
-106460: 5 91 6 98 63
-1098372: 4 1 282 811 372
-140890456: 5 9 909 945 40 6
-8340: 55 78 8 7 892
-193726460249: 5 439 49 353 60 2 49
-141338352: 678 28 691 76 2
-9856: 3 6 54 38 77
-42123: 9 4 19 2 739
-242468644: 647 936 579 61 4
-230745066: 903 7 78 365 96
-445943880: 23 95 2 3 18 6 1 648 9
-1808893944: 7 2 7 6 4 7 9 1 81 78 964
-2017445149: 61 33 3 573 872 14 2 7
-435756771: 4 7 41 24 61 636 7 4 9
-51689: 2 7 3 11 4 79 69 91
-1752948: 6 8 7 7 219 62 54
-121506: 45 48 8 7 546
-15984364: 78 81 774 7 61 1 64
-717180399: 6 9 1 11 4 4 2 222 8 7 9 3
-231133474: 903 28 868 51 286
-4601521: 262 56 4 8 7 166 4 3 1 1
-10555808: 960 85 10 5 80 8
-491087718: 7 7 10 868 7 60 158
-152320: 12 56 5 7 64
-411081: 47 1 2 1 2 7 5 4 8 1 1
-79530: 24 174 5 1 4 1 117 1 8
-405: 4 5 48 7 6
-93674138: 3 89 73 3 4 936 7 4 3 8
-3717392: 9 9 7 3 352 5 9 24 8 6 2
-33776303: 94 294 230 87 293
-23979563100: 393 956 555 5 23
-292320: 74 9 61 29 70
-983175600: 9 431 2 422 844 8 75
-26865: 79 7 98 5 3
-270720: 3 4 1 474 4 5 3 83 47 5 2
-39508: 559 1 9 7 308
-9480738: 61 42 46 29 69
-16204: 65 247 2 82 65
-251093080: 8 770 72 4 610 482 1
-616869: 2 58 85 3 33 31
-4239559: 8 4 776 50 759
-167271: 70 3 72 590 4 4 883
-219080: 975 7 4 8 8 1 1 8 1 3 532
-120576020: 312 2 96 40 20
-39262: 1 382 6 4 1 62
-1750434: 374 2 2 76 31 3 9 587 6
-1628938: 3 1 7 1 8 4 12 895 4 5 18
-1608: 2 9 6 8 216
-5466689812: 2 1 3 6 591 75 8 9 76 5 5
-3368293974: 83 48 2 852 989 61 6
-9246: 75 71 4 372 29 556 6
-24758643213: 99 91 52 8 1 91 3 213
-85379574: 90 296 10 717 938
-7411924: 2 5 9 8 59 5 7 4 37 1 92 4
-14439842712: 96 57 1 61 721 60 792
-25942: 7 91 7 7 367 272 2 3 61
-2009867742: 1 5 6 3 8 91 425 5 8 4 2 2
-8100: 5 20 81
-247376: 41 2 427 486 2
-36664: 53 86 25 8
-2203718597: 5 327 4 13 64 405 197
-21061260: 66 46 29 43 14 1 3 484
-11624536: 86 9 1 8 5 3 4 28 4 217 9
-3331316592: 939 24 142 347 3
-393313984: 1 1 746 4 6 7 82 9 7 8 7 8
-12332: 960 53 23 5 2 6 975 2 6
-368101809: 80 4 1 7 3 604 9 451 4 5
-305907: 500 14 85 3 8 7
-3173580: 32 9 5 11 80
-22376: 707 31 3 26 416 9 5
-267114879: 6 95 6 55 9 710 2 62 37
-47977888197: 47 5 6 41 7 888 197
-4058586: 74 3 320 1 408 1 3 81 2
-9850439: 5 6 6 3 2 121 6 4 64 5 66
-830200808: 676 731 11 7 30 31 8 1
-65120079512: 130 2 5 5 74 8 9 9 8 3 1 2
-1410: 25 1 53 3 24 5
-164302236: 3 14 6 51 2 69 252 3
-9695040: 78 981 3 4 7 8 9 76 20 5
-31914715: 871 458 5 2 2 6 8 8 10 1
-44007405: 5 8 2 492 59 326 1 4 6 7
-28607442358: 61 9 62 7 907 6 359
-14200: 4 8 1 4 9 54 2 7 163 5 7 8
-29912: 47 93 8 87 6 2
-1216: 415 699 90 3 4 3 2
-61976625993: 79 705 6 6 1 877 77 9
-62020: 84 732 7 50 475
-9920575422: 35 83 683 1 5 42 2
-28753659: 66 1 5 523 4 269 6 46
-499210: 50 21 7 32 2 12
-490392: 8 2 94 5 5 527 30 441
-68883749136: 8 74 4 8 56 2 96 6 216
-123493: 2 61 32 11 6 8 954 41
-3374244: 156 6 6 398 9
-122: 9 6 6 62
-30831910: 179 4 648 260 70
-6168597929: 7 3 7 3 28 2 3 4 7 481 4 5
-2888: 4 9 6 6 277 4 2
-45490: 5 8 315 7 84 9 2 38 6 3 7
-2121768: 47 684 1 11 6
-194810726: 3 23 8 17 82 48 43 97
-7926469: 5 9 69 86 6 414 9 16
-542725362: 168 5 646 85 25 2 110
-12871320: 73 918 3 9 2 8 8 73 24
-110766661: 2 5 6 4 7 584 80 9 4 8 5 1
-8124928240: 20 312 3 206 40
-1049: 8 2 99 170 770
-824256407: 563 24 4 610 4
-393358434: 726 105 91 859 6
-38190276: 7 12 4 3 4 746 9 4 54 3 6
-90162: 18 238 21 3 195
-62622: 54 8 6 2 2
-20647: 14 1 60 5 47
-171: 1 69 7 64 30
-1794: 749 1 419 248 330 48
-914500: 3 60 3 4 5 261 10 992 8
-792066628: 5 7 7 1 5 6 4 641 26 2 2 6
-37407000: 648 3 89 674 75
-10001377331: 2 33 6 902 7 4 2 1 6 5 3 1
-11327400: 76 37 33 16 775
-3199224: 82 87 676 14 28
-434606464: 6 2 574 3 2 2 3 3 748 8 8
-28503052248: 4 5 761 8 52 712 56 33
-5441: 22 4 184 1 657
-1924354: 83 644 9 4 82
-650792283390: 325 395 87 27 16 95 2
-172585: 423 1 44 692 5 106 2 2
-816: 804 1 8 3
-8617384: 37 6 8 11 3 9 7 9 6 78 40
-5118957: 1 993 572 120 85 9
-7211827560: 798 65 20 43 21
-161839: 5 5 3 3 6 8 892 5 6 9 820
-22326850: 4 66 79 8 9 5 811 2 1 20
-3320238: 2 96 5 53 1 318
-75810: 4 4 8 9 6 35
-1303740489: 59 187 7 331 78 51
-2071: 5 23 31 684 519
-1409440: 7 4 4 32 1 155 285
-525893: 3 867 5 3 8 4 5 7 716 8 2
-235620: 238 51 1 2 94 612
-136362275: 4 1 440 261 1 15 218 5
-81194624: 633 6 509 9 6 9 3 74 7
-38398954246: 857 448 53 5 424 8
-4096: 2 3 9 8 8 41 6 24 5 76 5 2
-73390: 7 282 8 37 56
-7013: 35 105 5 6 4 3
-2296: 711 863 9 8 705
-22003119: 4 621 81 1 3 812 8 1 1 9
-12156438: 30 391 4 2 1 6 2
-195664: 4 4 35 127 76 8
-85540: 1 3 56 443 140
-2260779: 8 12 113 7 79
-23747232312: 23 5 933 3 2 22 46 909
-2678400: 372 3 800 3
-121368: 223 8 65 16 389
-1569526: 573 2 39 5 707 1 7 280
-3484: 68 37 3 39 926
-1000054560: 431 5 290 58 8
-44435827: 86 358 358 26 1
-5080: 527 4 3 99 752 60 36 2
-1653900719: 5 881 65 370 712 7
-105906: 499 80 2 4 387 76 38
-149392679: 1 493 92 679
-70: 1 27 4 21 17
-376653066: 69 7 82 951 6
-23455: 8 6 4 3 54 3 8 103
-684: 47 427 6 111 93
-538105211: 53 79 5 8 147 214
-427: 2 39 4 227 36
-46721700: 439 1 2 2 7 821 1 6 75
-96998408: 4 103 5 1 3 9 64 10 5 8 8
-929792: 7 22 51 48 8 908
-182108262: 9 728 3 26 8 1 3 5 1 3 3 6
-27013609896: 9 6 4 76 5 6 6 5 464 7 7 8
-84960: 4 1 66 778 96
-9789: 29 8 6 4 309 8 213
-1254292600: 87 6 2 9 982 76 10 811
-40395182: 95 2 823 958 6 7 1 6 5
-137994809: 155 33 47 4 574 43
-101860: 98 56 9 316 8 45
-6394940: 223 416 454 40 10
-299574: 32 19 3 142 951 9
-40: 3 4 4
-410609520: 19 8 342 8 23 968 15
-115650: 535 12 5 6 3
-2591820: 1 2 38 1 7 5 5 6 1 85 44 7
-1544: 3 45 8 683 717 1
-4919765291: 872 2 809 7 994 5 58
-106160194: 41 99 250 48 3 47 7 71
-10116145: 2 3 3 7 2 3 1 83 6 1 1 45
-70200: 70 152 45 3
-953666: 452 2 48 91 3 21 6 726
-1989: 365 837 787
-138170: 1 7 239 82 78 904 2
-1596348: 97 37 627 19 6
-14469223: 52 94 4 1 74 3
-18819317430: 508 63 37 7 4 30
-23779386: 977 57 7 3 61
-130494339: 5 945 1 26 531 8 4 2 3
-57240: 9 3 63 53 12
-15430473: 937 6 3 8 1 4 6 2 9 301 9
-26979225507: 106 70 1 91 67 25 507
-947: 87 49 4 10 3 3 99 282 6
-7861: 2 92 570 9 312
-1902023: 889 73 36 654 29
-217204008: 6 3 89 84 562 43
-12280896: 9 336 272 9 414
-8748: 8 2 55 3 7 5 7 4 1 74 5 8
-3875: 77 44 4 31
-98858631: 82 8 4 9 54 5 40 7 4 31 3
-108659570: 5 133 449 865 214
-21472929: 4 60 4 88 931
-25548265: 76 386 4 929 2 4 216 1
-33610664231: 7 8 25 530 48 408 459
-9907455156: 30 330 2 4 1 4 550 8 7 9
-44466396000: 785 98 5 170 975 116
-261: 6 246 9
-931780082: 3 367 63 8 5 79 7 3 76 9
-890165367555: 5 257 904 82 97 91 79
-517812: 11 3 7 74 301 2 90
-19756008: 6 23 9 7 7 5 9 329 9 2 6 2
-318: 8 6 2 2 36
-13300: 3 1 2 46 9 1 2 9 36 4
-9313: 72 5 55 2 843
-6212221470: 660 87 42 94 398 3 7
-11485480: 7 114 568 598 731 8 8
-272945: 9 5 11 9 99 2 97 9 70 73
-7338600: 832 6 7 5 855 7 8 243
-2885: 32 9 4 8 3 196 9 2 4 1 2 5
-64886: 27 8 3 88
-53795280: 561 7 3 41 7 5 22
-1071: 60 636 58 3 264 50
-1614728: 3 887 5 5 5 619 3 7 6 8 4
-5737474530: 3 106 4 2 6 9 9 6 45 2 9 1
-471385127970: 506 857 8 729 930
-29038135: 20 3 61 335 7
-116693220: 9 845 7 35 545 7 4
-2718: 23 6 90 1 107
-1957951008: 9 581 57 78 8 6
-872105643: 78 64 8 255 8 76 19 9
-7050631: 5 5 8 7 1 4 88 2 9 985 6 1
-540612630: 662 4 7 7 5 4 2 9 9 8 5 81
-5664885508692: 71 9 5 5 7 4 2 9 9 22 486
-981739455122: 34 4 86 87 792 1 68 9 2
-2611086: 86 506 6 3 73 50
-604443: 23 15 707 62 749
-166424375: 41 50 9 5 5 4 4 5 5 13 5 5
-142705: 6 1 81 859 97 8
-96512: 372 5 4 8 8
-10300682: 4 24 469 8 1 4 48 98
-735876264: 817 53 7 4 9 202 6 8 48
-63035035: 5 7 3 11 50 35
-385290: 8 6 22 8 5 5 1 4 477 83 9
-223068560: 93 842 8 31 962
-28245564048: 939 6 25 5 2 166 9 4 8
-62601: 6 97 2 94 1 49 905 5
-5223705: 728 8 2 7 8 656 9 8 81
-186592: 6 47 50 562 8
-153887794: 191 209 3 5 257 49
-45415065861: 8 7 653 769 3 786 26 9
-4765325236: 5 63 7 526 6 39 6 7 3 6
-9252704: 694 2 57 1 4 4 796 8
-244739761: 4 5 21 742 4 2 796 9
-3025066: 17 3 3 8 7 97 7 8 82
-44785466: 68 9 65 377 89
-1189: 25 978 80 97 9
-37921905: 6 4 5 98 61 28 6 8 7 3 9 5
-683378968: 9 4 360 328 938 9 5 7 4
-746: 4 3 58 9 8 33
-20300880: 8 4 75 8 4 67 72 6 7 1 6 8
-4859680280: 50 2 563 2 456 4 8 91
-101953865160: 129 755 3 2 7 372 67
-739753: 791 7 927 2 7
-21134: 1 21 134
-16517: 1 99 83
-80920: 80 2 9 5 56
-33953: 92 1 9 41 5
-197610127: 7 7 7 6 84 3 674 10 67
-125399: 76 98 3 5 24
-6914: 4 24 262 1 53
-953: 81 9 66 1 152 5 1 3 2 7 2
-1018: 7 33 5 818
-729072: 6 55 32 4 249 8
-241744595: 48 1 347 95 1 90 5 5 9 6
-682083: 4 4 294 29 3
-1806679601: 2 9 2 49 2 18 699 5 8 1
-145013184: 6 7 69 842 3 192
-58789610: 16 1 902 5 901 1 55
-2160: 121 9 9 919 71
-60835040199: 6 7 2 8 31 4 4 890 9 6 3 9
-413542: 369 639 783 7 23 2
-3963317850: 675 479 227 6 9
-2222650400: 2 5 3 49 300 9 13 25 32
-933: 499 424 10
-459239372: 1 3 57 2 23 9 372
-63771446: 702 85 3 90 7 9 9 2
-2394004394: 7 600 57 4 340 54
-7662017: 47 74 22 98 1 64 553
-695505: 31 862 13 31 43 2 585
-11014180797: 280 97 400 49 8
-564216: 82 172 5 7 8
-13588211: 2 9 356 7 2 97 7 298 7
-1159803311118: 640 711 64 31 181 18
-2280680821: 9 2 560 8 7 3 1 4 5 5 11 1
-1632680: 50 50 5 1 3 7 1 227 85 7
-1705: 7 9 12 3 55
-157424832: 18 592 336 8 2 324 6 8
-7861936445: 69 1 17 42 335 67
-40608: 6 1 42 94 9
-88857414912: 52 841 446 42 64 83
-11418623: 943 295 263 55 41
-756: 94 65 555 4 19 19
-263007: 4 8 2 8 826 279 191
-69918412: 8 4 8 721 86 412
-10622: 6 219 11 8 22
-40846854569: 85 3 292 841 16 9
-1399560878: 6 5 972 3 1 2 727 9 92
-1251967628: 40 834 8 56 4 67
-1730: 373 586 18 688 65
-5763837: 3 3 81 683 97
-13534026: 4 9 727 6 517
-501787440: 4 9 4 7 7 9 8 5 5 462 84 6
-382060224: 4 96 3 7 52 6 37 84
-90329420: 467 509 3 3 380
-266046851022: 664 9 2 4 33 1 255 1 2 2
-13907000870: 351 9 9 7 4 1 6 563 6 5 7
-95025: 1 524 181
-9694669442: 8 88 552 43 106 32 2
-25012998: 3 9 4 1 7 9 472 1 3 256 6
-2762479: 12 907 214 381
-463098609028: 46 30 98 608 9 92 34
-345847101: 11 3 1 79 4 529 9 9 9 8 3
-6629013504: 2 2 790 5 4 4 8 6 362 8 3
-151639320: 3 481 8 98 85 37
-900851201: 95 8 1 35 2 94 6 5 310
-3023181756: 839 9 3 3 635 6 5 7 7 6 3
-78970: 594 502 9 8 56
-243927620: 37 450 5 14 5 994 1 8 2
-5002: 69 9 8 8 10
-146846990: 4 5 8 8 80 9 764 8 10 4
-8376971812: 957 90 8 97 18 12
-25982: 484 33 8 1 5 86
-87972: 116 3 738 73 2 75
-30219: 855 7 5 7 7
-40049: 804 3 4 3 4 9 543 893
-4096449691: 532 5 385 12 4 4 8 5 5 1
-1774079: 1 1 790 35 64
-18138613: 1 813 85 6 5 3
-7056: 6 8 9 47 3 660 2 6 9 3 3
-5286779: 6 88 67 64 9 5
-21548813239: 3 91 7 4 4 328 6 3 6 7 5 4
-54193526: 609 98 2 5 454
-3313: 31 98 1 8 267
-1272773: 82 5 57 31 6
-151927862: 9 4 794 712 2 78 1 4 4 8
-11599243: 51 9 691 86 906 43
-377568: 6 267 279 76 9
-4759070: 4 757 93 5 8 5 46 962
-475964300: 3 6 9 2 3 758 1 4 115 7 5
-3902012400: 3 17 381 7 417 520 55
-539408: 3 47 518 56 3
-471833152952: 77 781 4 454 784 9 52
-53928: 6 1 6 6 1 5 5 4 430 57 7 9
-744595: 58 5 914 762 121
-6604767: 7 55 3 83 8 1 9 3 758 9
-30467264138: 74 5 107 48 2 91 42 38
-7206: 5 6 2 67 6 6 4 7 678 9 6
-3729982: 6 639 3 972 66 1 352
-1400: 887 1 26 484 2
-10618567232: 609 31 778 8 28
-29344398: 2 7 9 2 190 1 653 1 398
-3132084: 9 5 527 42 2 422
-745442: 5 57 5 24 5 9 3 8 4
-25389: 75 94 24 60 23 66
-1064: 27 8 215 6 627
-2202: 7 67 751 45 45 892
-924: 4 7 84
-131962: 8 5 8 781 4 5 1 2 6 734 4
-15209: 1 440 8 9 5 2 7 1 32 64 9
-13445076: 1 211 537 7 6 742 9 4
-1662431: 999 441 33 47 4 6 887
-30956672: 857 1 902 8 4
-340965: 155 17 7 2 4 7 54 40 4 1
-3530969806: 813 56 843 92 238
-6677279225: 8 650 7 1 9 892 7 92 2 5
-202833: 436 3 46 46 6 16
-12852: 4 2 26 4 8 85 1 4 1 608
-4329: 4 30 77 1 39
-81602332: 1 1 9 46 90 657 975 3 7
-2699179736: 7 543 5 1 1 5 1 6 71
-344717100: 3 8 3 291 13 69 4 3 3 7 5
-5328968: 2 24 5 1 2 1 1 2 2 780 7 8
-883375333: 933 8 86 40 11 93
-12854142: 50 2 72 3 318 2 709 7 6
-1666239930991: 840 1 7 257 106 728
-3577484468: 5 962 4 6 6 8 373 3 6 4 4
-45942: 1 246 31 6
-13400: 2 1 5 184 292 95 8
-64941: 15 59 56 69 5 7
-6366942354: 8 71 52 5 8 13 423 54
-13377482272: 7 163 1 2 1 611 6 8 2 2 8
-1939360587: 14 198 725 965 87
-108931: 340 213 49 126 4 39
-978436: 5 47 42 56 8 4
-50217: 850 2 29 57
-324576332842: 5 76 6 6 552 332 8 4 2
-22302: 2 6 39 6 1 106 54
-881555370: 9 4 5 8 4 8 5 84 1 9 15 62
-123060175: 98 13 104 533 2 113 5
-1884730165760: 5 1 1 1 2 981 66 9 80 52
-1495440: 528 8 465 6
-997086938313: 147 7 165 75 62 5 9 9 3
-898129271: 55 3 4 543 2 5 46 93 77
-49705: 835 6 4 396 8 13 5
-776935098: 2 9 6 824 4 3 5 97 6 14 4
-30572049: 95 2 2 8 8 1 95 7 358 4 9
-18891: 9 2 6 21 4 74 5 5 726 3 7
-6904400: 172 610 40
-33890: 7 67 6 2 7 9 471 7 99
-1349088: 2 6 4 5 8 4 6 7 155 2 47 8
-3554816: 867 8 1 7 1 512
-9997: 9 327 670
-114417554850: 7 5 3 942 9 5 8 4 467 8 6
-179: 5 3 2 9
-33974281: 955 91 1 13 2 41 11 71
-3934150675703: 673 7 8 8 81 16 8 5 9 5 3
-5521774107: 6 741 39 21 895 107
-85742668917: 4 67 34 271 9 7 2 6 5 6 7
-25253: 77 326 55 96
-1382589: 66 70 4 917 327 4 33
-30290448160: 86 1 85 542 34 505 32
-44311773: 6 2 323 711 117
-3319100: 9 7 1 9 1 7 504 545 6 50
-223237764792: 975 26 328 327 7
-9361: 6 3 2 10 151
-133084092525: 1 6 76 3 5 392 92 52 1 5
-6014: 9 8 4 80 572 2
-121315163: 51 85 892 3 166
-39216456: 45 6 86 4 53
-44331578775: 655 984 415 8 75 869
-482258: 47 278 812 9 711 638
-145159: 890 55 21 5 30 1 259
-2529736075: 646 979 5 8 75
-34250388482: 462 7 197 24 4 7 5 8 2 2
-109320: 4 93 472 8 1 24 47 1
-4074378: 4 3 4 5 7 2 87 94 8 7 7 6
-3859615: 8 48 4 15 605 10
-75656: 8 9 1 4 94 2 98
-92471860: 4 866 94 190
-584644384: 265 23 203 438 4
-5701837232: 280 74 147 7 6 9 4 8 52
-2262625: 87 9 78 151 35 86 51
-527886: 525 2 8 8 8
-44023034: 2 830 1 734 9 72 2
-150440: 29 648 8 91 13
-1076130: 74 34 1 6 990
-114512499759: 63 6 1 2 9 7 1 1 9 759
-40139167: 19 22 979 16 7
-21414: 9 28 3 533 94
-2510798344: 4 922 4 4 253 3 1 84 5 8
-792: 5 52 6 20 4 51 5 9 3 87 3
-504009644: 38 2 3 70 1 607 6
-9509545: 2 2 943 19 376 45
-1106472320: 273 1 81 9 6 6 8 457 7 5
-438140: 2 320 9 5 76
-2652799: 4 61 1 806 817
-220: 6 3 83 74
-59927247: 856 7 716 8 7
-622284960: 454 9 840 8 1 160
-5069046: 96 21 140 1 47 5 3 93
-527: 7 5 513
-983: 3 11 47 3 743
-121980: 9 29 20 6 5 8 1 9 84 5 7 1
-91650: 663 23 722 65 130
-323870400: 135 5 126 952 4
-64641600: 646 38 3 59 8
-115420080: 96 183 40 6 2
-321683040: 8 36 7 485 47 7
-21700: 90 65 5 7 4
-2651590: 84 17 4 4 7 17 50 53
-432864: 19 8 501 1 32
-439: 8 1 430
-417145: 2 39 71 4 5
-283940: 9 8 96 78 3 83 1 95 9 80
-2511: 4 56 49 9 7 47
-97360: 8 779 10 322 87 7
-50259: 78 89 5 3 3
-8011325: 58 573 96 2 3 98 5 24 5
-741157: 288 6 9 70 4 38 3 9 4 61
-77760221: 27 600 48 86 121 7 7
-1003: 3 66 92 700 7 8 1
+......................D....B...h..................
+..............................h...................
+.............D...3.....X..................9.......
+...........C........X....2.hB......v........b.....
+....................................O.............
+......u.....3.........p...........................
+....u......................v....6.................
+......................y..D.....Ov.2..............b
+.....u..........X...........o........y............
+.........................y...B.f...........s......
+.7....................C.2.....Bsyp..........t...q.
+.u.7...........X............................Oe..t.
+...........V........3......6v.s........o....h....t
+..E........L.................6..........o......9..
+........E......m.2.P.......O...9...8....b.........
+..m..........3.......p..........M8................
+..1.....................K.p....................b.e
+5...............L...........s.6..........S.M......
+....5..1.......E.........k.f.........M............
+.E..Y..V......l.......T...D.......9....Q..........
+..............................M...................
+.....5....P................m...x..q......F......e.
+................f...c......................x..F...
+..V.C...........7.......a....o....8.........F.....
+.......4....L.a..g..P.....8......Q....7d..........
+...1......4..a............k......t...d............
+..........V..........L....m........K....Q........S
+..................1....k.....T....................
+..........l......a...............F................
+...........P...4.......l......x...................
+.............c....g........T......................
+.....g............c...Q.......................S...
+...............l..................A.d.T.U.........
+..........................f...0.............d.....
+..........G..................A............e.S...x.
+.........Y.......q........g....K..................
+.....................q.H4...0.................j...
+....................HA..............J.............
+..Y..........................0...J.......j........
+.......................G.JA...................U...
+.......5..........................................
+...........c..............G.........K.............
+...............................G..................
+...........................0.j....................
+............................H.......k..........U..
+.........................H........................
+...................................Y....J.........
+..................................j...............
+..................................................
+..................................................
diff --git a/src/main.rs b/src/main.rs
index f99ea2c..3baaa22 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -31,58 +31,106 @@ extern crate test;
pub mod util;
pub use util::prelude::*;
-#[inline]
-fn do_(i: &str, search: fn(&[u64], u64) -> bool) -> u64 {
- let mut v = [0u64; 12];
- let mut i = i.as_bytes();
- let mut sum = 0;
- while !i.is_empty() {
- let should = reading::until(&mut i, b':');
- i.skip(1);
- let i = i.take_line().ψ();
- let read = reading::κ(i, &mut v);
- sum += should * search(C! { &v[..read] }, should) as u64;
- }
- sum
+const SIZE: usize = 50;
+fn split(x: usize) -> (isize, isize) {
+ (
+ x as isize / (SIZE as isize + 1),
+ x as isize % (SIZE as isize + 1),
+ )
}
-
#[no_mangle]
pub fn run(i: &str) -> impl Display {
- // go backwards for extreme pruning ability
- fn search(nums: &[u64], tv: u64) -> bool {
- match nums {
- &[tail] => tv == tail,
- [head @ .., tail] => {
- let tail = *tail;
- unsafe { core::hint::assert_unchecked(tail != 0) };
- (tv % tail == 0 && search(head, tv / tail))
- || (tv > tail && search(head, tv - tail))
+ let i = i.as_bytes();
+ let mut anti = [0u64; SIZE];
+ for character in (b'A'..=b'Z').chain(b'a'..=b'z').chain(b'0'..=b'9') {
+ let a = match memchr::memchr(character, i) {
+ None => continue,
+ Some(a) => a,
+ };
+ let b = memchr::memchr(character, C! { &i[a + 1..] }).ψ() + a + 1;
+ let c = memchr::memchr(character, C! { &i[b + 1..] }).ψ() + b + 1;
+ let d = memchr::memchr(character, C! { &i[c + 1..] }).map(|x| x + c + 1);
+ let mut anti = |(x1, y1), (x2, y2)| {
+ let mut x3 = x2 + (x2 - x1);
+ let mut y3 = y2 + (y2 - y1);
+ *C! { &mut anti[y2 as usize] } |= 1 << x2 as u64;
+ while (x3 >= 0) & (x3 < SIZE as isize) & (y3 >= 0) & (y3 < SIZE as isize) {
+ anti[y3 as usize] |= 1 << x3 as u64;
+ x3 += x2 - x1;
+ y3 += y2 - y1;
+ }
+ };
+ match d {
+ Some(d) => {
+ let [a, b, c, d] = [a, b, c, d].map(split);
+ let mut one = |i, j| {
+ anti(i, j);
+ anti(j, i);
+ };
+ one(b, a);
+ one(c, a);
+ one(c, b);
+ one(d, a);
+ one(d, b);
+ one(d, c);
+ }
+ None => {
+ let [a, b, c] = [a, b, c].map(split);
+ let mut one = |i: (isize, isize), j: (isize, isize)| {
+ anti(i, j);
+ anti(j, i);
+ };
+ one(b, a);
+ one(c, a);
+ one(c, b);
}
- [] => shucks!(),
}
}
- do_(i, search)
+ anti.into_iter().map(u64::count_ones).sum::<u32>()
}
-#[no_mangle]
-pub fn p2(i: &str) -> impl Display {
- fn search(nums: &[u64], tv: u64) -> bool {
- match nums {
- &[tail] => tv == tail,
- [head @ .., tail] => {
- let &d = unsafe {
- util::powers
- .get_unchecked((((tail + 0xbf6) & (tail + 0x79c)) >> 10) as usize + 1)
- };
- let tail = *tail;
- (tv % tail == 0 && search(head, tv / tail))
- || ((tv - tail) % d == 0 && search(head, tv / d))
- || (tv > tail && search(head, tv - tail))
+pub fn p1(i: &str) -> u32 {
+ let i = i.as_bytes();
+ let mut anti = [0u64; SIZE];
+ for character in (b'A'..=b'Z').chain(b'a'..=b'z').chain(b'0'..=b'9') {
+ let a = match memchr::memchr(character, i) {
+ None => continue,
+ Some(a) => a,
+ };
+ let b = memchr::memchr(character, C! { &i[a + 1..] }).ψ() + a + 1;
+ let c = memchr::memchr(character, C! { &i[b + 1..] }).ψ() + b + 1;
+ let d = memchr::memchr(character, C! { &i[c + 1..] }).map(|x| x + c + 1);
+ let mut anti = |(x1, y1), (x2, y2)| {
+ let x3 = x2 + (x2 - x1);
+ let y3 = y2 + (y2 - y1);
+ if (x3 >= 0) & (x3 < SIZE as isize) & (y3 >= 0) & (y3 < SIZE as isize) {
+ anti[y3 as usize] |= 1 << x3 as u64;
+ }
+ };
+ match d {
+ Some(d) => {
+ for i in 0..4 {
+ for j in 0..i {
+ let i = split([a, b, c, d][i]);
+ let j = split([a, b, c, d][j]);
+ anti(i, j);
+ anti(j, i);
+ }
+ }
+ }
+ None => {
+ for i in 0..3 {
+ for j in 0..i {
+ let i = split([a, b, c][i]);
+ let j = split([a, b, c][j]);
+ anti(i, j);
+ anti(j, i);
+ }
+ }
}
- [] => shucks!(),
}
}
- do_(i, |n, should| search(n, should))
+ anti.into_iter().map(u64::count_ones).sum::<u32>()
}
fn main() {
@@ -94,8 +142,8 @@ fn main() {
// }
// std::fs::write("src/inp.txt", s);
// println!("{}", p2(i));
- assert_eq!(run(i).to_string(), 663613490587u64.to_string());
- assert_eq!(p2(i).to_string(), 110365987435001u64.to_string());
+ println!("{}", run(i));
+ println!("{}", p1(i));
}
#[bench]
diff --git a/src/util.rs b/src/util.rs
index 9654aea..5905ee6 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -939,6 +939,7 @@ macro_rules! ι {
}
};
}
+ι!(i8);
ι!(u8);
ι!(u16);
ι!(u32);