Add solution day 7

This commit is contained in:
monoid 2024-12-08 16:46:46 +09:00
parent c058b50fea
commit dfbe16ef13
4 changed files with 955 additions and 0 deletions

9
day_7/example.txt Normal file
View File

@ -0,0 +1,9 @@
190: 10 19
3267: 81 40 27
83: 17 5
156: 15 6
7290: 6 8 6 15
161011: 16 10 13
192: 17 8 14
21037: 9 7 18 13
292: 11 6 16 20

850
day_7/input.txt Normal file
View File

@ -0,0 +1,850 @@
56083790: 93 7 89 932 67 58 5
1607: 107 43 7 81 19
751931197720: 6 8 533 3 9 6 933 2 60 2
34649: 1 7 859 4 9
3125401: 62 456 52 5 1
7547: 94 283 461 9 3
55789: 2 253 3 4 26 8 1 4 3 2 3 7
67811: 1 587 15 6 700 2 47 6 1
2768025357: 835 13 85 3 258 97
349981: 9 62 3 121 775
2163840: 6 3 6 7 2 49 5 20 8 7 2 6
1965744438: 6 5 7 9 3 50 1 8 68 1 73 6
3251726208: 47 37 2 9 5 8 502 8 9 9 8
10541: 35 8 35 8 8 16 709
3746916524: 643 8 582 475 49
43479: 31 57 6 4 6 2 3 920 2
10054100: 1 3 1 6 4 795 7 1 489 53
1503936989: 75 192 2 2 7 6 989 1
13622: 20 95 46 7
426: 225 1 7 79 106 11 1
491705744: 78 63 92 213 744
18267919039745: 815 941 6 94 2 397 3
52556232: 5 927 620 6 232
35026084: 1 3 768 3 8 38 4 212 8 4
212064: 59 4 18 1 6 740 12 4
161622: 394 2 41
1465970090: 4 4 803 902 6 334
4032040411837: 700 8 9 42 8 51 471 9 8
136275307195: 7 1 5 2 1 4 1 7 90 7 192 1
340985: 3 77 738 2 2 25
988: 7 82 64 9 2 4 58 4 2 528
347569061: 8 2 1 7 543 2 6 3 7 7 91 1
5369400: 30 564 89 889 300
8072460: 3 6 7 8 23 1 3 6 2 6 5 891
6972: 699 59 6 9 96
81245257: 1 88 6 4 9 25 25 6 8 1 9
12978: 53 620 43 5 9 2
67165854: 6 5 86 2 2 7 1 7 8 530 2 7
2571327330: 7 1 7 96 71 6 8 1 330 53
311570632: 9 2 9 7 954 8 1 51 9 7 4
2347380: 3 3 7 7 7 2 3 6 41 7 315 6
28426430214: 65 3 5 97 4 64 3 9 6 361
2387455090: 68 2 341 4 1 4 4 5 5 8 2 8
1318681: 7 3 81 44 37 1
44908357: 21 8 206 35 7
1463904: 1 5 8 7 133 67 9 46 16
472792526: 4 18 1 6 8 195 4 7 2 3 9 3
3690175104: 6 566 7 88 7 63 4
6192506: 8 6 1 4 1 3 6 63 6 7 2 794
7079642: 704 2 9 367 39
745: 2 4 8 1 2 595 56 6 31 7
184367913208: 39 3 9 956 5 544 9 2 84
650706364174: 803 3 41 3 571 27 4
4372576: 6 396 4 4 46
53324925: 532 2 54 995 25
10178346240: 417 3 5 565 73 576 5
187548984: 8 586 7 246 4
434485350: 2 3 38 864 4 387 75 38
3006: 83 7 89 9 16
36971650474509: 210 953 158 46 9 381
6780975: 4 9 3 4 952 3 255 1 8 7
158481600: 8 14 8 964 200
87761786: 29 3 761 2 5 8 9
11341486: 126 3 3 1 486
1767: 408 671 4 616 9 59
49952093: 9 9 90 418 5
36790: 8 4 3 711 79
64253483776: 31 4 24 1 759 3 3 19 76
795955600: 63 3 957 26 550 4 2
15073717792: 2 7 4 3 5 7 4 8 9 80 7 93
5318893601: 7 730 95 688 1
697588861548: 1 1 3 3 1 8 8 481 6 15 4 5
4483638995: 3 1 2 1 5 8 26 69 9 2 992
475413888: 935 856 6 99 6 42
5444838: 8 68 4 83 6
5405636: 4 3 450 5 636
48897: 58 69 886 3 8 4
2033602: 6 593 7 97 5
122678545: 629 3 361 65 78
32636: 9 25 3 1 4 4 51 203 2 2
104005481: 4 2 7 3 3 3 80 85 48 1
473121071: 5 7 7 52 4 6 5 22 81 9 72
3411084045: 75 2 46 727 680 45
76570949: 7 9 8 7 7 5 8 8 639 68 7 1
1496: 6 85 4 276 706
254999: 4 8 8 8 3 9 5 67 5 1 2 61
163899400513: 936 568 35 5 5 13
572558: 69 6 20 140 68
5542152: 77 762 72 66
659770603626: 79 682 44 828 3 5 6 70
4599935: 3 2 696 9 81 9 605 69
5647581: 4 1 3 304 6 72 477
586823676: 5 8 682 3 675
268237487194: 3 2 8 7 7 55 2 487 1 9 1
14193504059: 31 3 223 5 36 26 4 60
220220409: 7 865 28 399 7 5
339946418426: 582 1 8 73 1 5 95 247 6
780000: 50 54 6 625 2
5865: 3 583 5
313565: 246 8 31 11 1 65
2290783: 29 8 7 458 4 275 4 579
1146: 8 92 91 3 2
562750027: 89 309 63 86 941 6 24
3278: 2 9 7 6 7 44
459: 2 3 39 6
1431120: 5 7 678 92 8 40
26405616402: 56 783 2 2 82 2 51 2 2 9
6040: 285 1 70 16 7 2 335
1717462100: 793 922 87 27 146 1
6188689550: 6 8 762 1 1 8 2 6 5 9 6 50
66816: 77 4 821 2 313
46132511: 6 911 37 528 5 10
103140: 53 7 9 2 3 8 7 5 6 5 18
3733695192: 289 4 80 18 9 9 9 519 1
11310002592: 35 3 437 581 32
1658410170064: 4 47 53 573 8 4 8 4 6 7 4
1578423: 4 233 9 740 3
12792914: 9 6 3 2 910 8 71 291 2
67366818479: 6 72 36 130 8 18 479
13292715: 92 9 349 46 3
16587893610312: 57 6 6 40 348 441 749
212642864: 1 92 8 7 2 3 642 1 864
13015307040: 9 74 1 2 98 5 6 338 80
37248: 425 17 9 678 8
7673: 3 4 351 382 3
19492545: 8 77 11 437 798 2 542
5037692049: 145 2 4 13 537 59 81
5227115460000: 25 952 75 727 76 53
5853837: 4 191 3 383 4
2895816393056: 76 666 517 39 930 5 9
871074: 37 6 5 537 2
2562: 4 8 5 34 7 7
128155006: 133 83 1 13 593
38655243: 8 6 79 9 1 1 33 1 88 7 7
37815730: 73 58 1 95 65 94
11088: 1 3 8 35 2 9 3 91 9 898 9
15331936: 1 9 27 84 9 56 302 2 8
616853160528: 770 34 595 45 6 2 44
1641140: 31 3 76 63 620
122969391: 495 18 82 138 75
5804719203: 670 8 90 191 63
11081356852: 3 36 86 672 903 85 96
267393: 545 7 49
134713: 220 800 43 284 14
34333934: 589 23 9 2 7 4 8 1 6 1 7
943506: 96 92 6 91 774
30954670: 648 1 537 9 29 72
109409456692: 123 95 8 5 94 5 669 2
2130162694016: 7 7 251 54 55 29 38 16
4508697507: 7 3 5 4 6 57 56 97 504
192249: 2 3 42 510 7 17 36 1 8 9
1489799920: 8 442 24 61 4 8 35 196
7546848: 189 8 729 4 594 619 8
76609349: 8 250 7 63 5 23 37
100845316: 8 3 24 4 1 9 4 516 6 9 5
311787: 82 38 82 79 23
79369486: 10 4 7 7 6 8 7 29 789 6 5
55707589: 278 5 347 7 311 4 2 2
1046: 205 5 21
166041240: 36 8 7 8 587 155 8
4249331981: 1 94 6 7 9 832 2 903
1055: 6 20 652 4 271 8
196560: 5 169 9 6 923 7 8 4 912
4990: 9 8 72 56 6
341514: 54 2 7 6 9
39823281: 1 4 6 1 3 630 1 3 2 97 7 5
623232732: 56 662 217 5 8 78 9 3 2
49660512: 429 142 90 814 1
76504346: 91 84 8 55 907 442
89795: 38 2 831 99 2
2969500032: 4 71 6 6 1 1 8 6 804 79 2
3663559: 78 7 431 27 32
86027: 8 6 96 64 11
347112: 83 978 9 93 36
51546: 51 54 6
386409137: 82 23 8 46 913 7
1091904: 5 3 7 7 541 51 6 1 726 2
5544149483: 581 797 6 4 8 149 483
4085638: 8 3 2 75 4 5 6 6 7 6 4 81
18112734072: 2 9 1 2 6 6 4 2 75 2 6 6
5519052: 88 8 751 9 1 724
985: 39 1 595
374115327: 74 9 1 361 2 62 45
1504216443: 47 3 131 9 1 3 9 4 38 6 3
61345300: 4 2 854 9 5 9 2 8 412 19
47163200: 8 27 8 5 6 5 3 4 428 70 4
41158: 6 1 597 991 9 1
525198449: 81 24 5 19 78 6 49
88799836506: 6 856 1 2 1 4 1 335 103
6801: 63 526 3 4 431 64 3 1 3
221941: 4 43 14 604 6 877
405758: 67 17 7 926 268 6
9871839: 1 9 918 59 1 83 7
226638: 3 87 31 1 1 7 4 4 58
567421: 565 2 42 1
15828100087: 64 8 7 2 6 1 92 249 1 8 7
1460382: 5 5 4 6 7 8 9 1 6 4 4 489
41128542090: 516 95 306 26 90
9685596: 11 176 5 499 6
834489: 6 9 7 8 3 2 2 58 659 830
1197651060: 50 307 2 3 129 26 6 10
50948514: 1 845 773 78 81
1244: 9 2 5 7 490 5 91 8 1 2 8
225050: 855 7 79 1 37 3 626 9 7
521432: 145 62 58 6 6
915: 35 4 1 52 5
10019798: 917 84 9 727 71
11416248: 14 9 9 7 6 226 7 7 8
20086: 572 2 484 5 3 3 4 454
40531: 90 7 5 76 57 4
476020832: 7 4 85 10 2 832
17460: 2 322 3 8 9
3656576: 11 257 4 6 2 4 8 53
384702322: 9 381 8 46 2 7 98 934 2
15921343: 6 45 55 1 845 727 6 6 7
948555: 5 9 39 4 166 448 7 2 1 9
833286: 8 465 224 1 6
83442633: 1 794 9 4 380 4 8 6 30
4451643516: 464 8 7 399 3 518
6035800: 43 1 14 84 3 4 919 7
120650823: 3 31 566 92 7
6128187052: 6 17 127 6 56 705 1 1
56112: 370 2 8 1 74 9 677
31903: 523 1 61
175384445037: 9 1 989 1 57 7 126 40
842522: 39 42 8 63 94
3200608226: 98 36 126 92 72
29954: 7 73 89 5 5 7 379
1151217: 1 2 8 8 774 4 51 7 5 244
1415015: 56 61 59 601 7
1200971241617: 3 147 121 4 8 411 5 20
87892: 134 7 5 602
856: 76 2 1 39 97 4
3078938848: 23 7 488 212 89 992
278502: 9 9 8 11 7 3 44 7 34 5 57
640001160: 50 400 8 29 40
2191382: 561 458 7 61 22 3 35
40361724: 2 8 278 36 635 1 9 1
14599510: 3 176 44 507 41 3 5 25
8256533040: 824 6 10 53 268 36 3
31936421: 3 775 10 57 9 4 908 8 5
123320992885: 5 9 3 52 4 4 9 3 7 8 409 8
6787076: 5 7 9 711 27 5 7 5 6 7 1 9
126143219768: 7 8 767 85 1 4 24 7 1 8
1363526530761: 38 88 60 784 53 52 4
665704: 944 6 984 315 296
335678127: 8 9 111 8 21 3 562 5 5 2
1427809: 8 54 7 8 59 5 475
37247712: 38 3 38 635 9
41454019283: 913 23 4 9 49 1 928 1
361426: 279 70 1 3 5 79 26
211934179944: 53 7 90 401 394 4
10651627926: 21 6 3 9 3 1 52 36 9 54 1
13014122: 89 8 8 752 812 2 4 6 26
10533166: 105 15 1 69 57 54 66
13334317392: 9 2 9 2 93 16 9 1 8 29 6
35845: 3 5 6 2 2 6 2 80 4 8 4 5
958806273: 4 3 6 3 9 801 3 4 886 7 3
1662: 1 447 2 89 7 2 1 3 4 4 2 8
1204062750: 5 7 4 173 8 1 2 1 1 984 6
106347844047: 7 7 989 7 9 19 21 50
5243574: 3 2 5 1 9 6 25 9 7 3 905 4
160059844256: 9 5 81 1 771 77 2 208
757925: 1 70 427 25
2774739: 6 75 61 85 4
3609299: 8 568 2 9 6 20 58 75
4052517: 8 73 981 51 6
9197: 5 2 4 800 1 246 98 53
2286636: 24 56 3 873 103 6 30
25872067585: 756 924 154 6 7 5 81 5
7091153051: 59 8 743 536 15 11
717443: 7 173 9 7 45
881: 7 4 14 7 832
32120: 222 93 37 490 93
2117: 2 9 6 8 66 2 5 53 8 7 8 77
12032: 656 611 636 4 6 590
227589: 3 611 1 7 9 34
2241278: 789 1 4 2 41 8 698
2598: 1 4 6 22 2 50 743 1 7 1 3
115879: 21 8 990 7 9
132890316: 2 97 685 316
118870567: 547 36 605 70 560 5
316511216: 4 95 3 592 6 2 91 3 7 3 5
124350: 4 33 1 942 6
1102002: 4 55 2 849 11
106464836: 442 1 651 8 37
154287: 55 4 704 2 733 93
930014: 24 6 54 7 4 9 5
13895470: 6 556 5 989 4 5
22814: 5 5 1 2 6 653 9 1 5 96 6 8
48533638: 70 9 4 6 8 7 1 3 4 869 9 2
2828279: 2 30 5 780 98
57540784: 6 8 1 9 7 7 38 8 5 1 792 4
1030124933: 2 5 26 7 205 2 8 5 1 941
40932: 566 72 4 79 97
29104: 1 3 800 438 8
48444: 9 39 3 46 6
2500: 46 8 5 7 610
47135447869: 101 70 6 641 52 1 6 2
5638598586: 687 633 9 82 3 606
102994668: 66 2 3 921 931 84
1161: 1 37 214 910 1
1286879: 501 6 4 390 454 77
44159213957: 20 3 791 9 7 28 344 4 5
98886480: 988 51 34 699 781
60: 40 4 4 9 3
10327537: 999 6 38 293 535
120310569617: 96 41 3 7 446 979 622
34399817046: 5 508 43 67 704 6
1785171384: 2 9 193 6 98 969 12 2 9
9577827: 275 6 58 78 27
1205840: 39 377 8 5 355 2 80
209165274738: 13 7 43 97 957 355 4
799259160: 8 6 93 5 1 9 6 5 4 1 9 890
14737664: 655 225 34 122 7
9289091880: 9 71 2 5 687 529 4
41812: 5 836 9 3 1
129: 8 2 2 88 20 1 3
446228143: 638 9 9 1 8 13 97 9 7
2216793238563: 46 291 3 7 5 978 92 6 3
24533403481: 7 8 92 1 6 8 8 775 8 7 4 1
1785761: 324 8 8 4 6 367 4 588 5
1822613000: 58 99 94 125 988
5110848: 4 934 9 152
189320592: 5 4 74 4 36 1 2 4 26 8 3
2200066: 817 8 48 334 4 973 33
42089099: 5 5 42 855 35 95 4
49232576: 886 934 83 631 41 63
8676: 46 600 90 222 6 9
111969042432: 1 5 8 6 8 4 4 74 4 962 8 6
346282694: 6 70 4 3 2 29 914 85 4
8791: 11 6 1 1 6 8 97 934
38853: 76 511 3 6 8
399056809: 7 953 5 58 82 67 7 3 9
342807711: 3 44 5 5 6 2 434 2 9 4 15
8524704: 48 914 2 7 94 954 96
137340: 3 3 24 1 1 8 446 5 9 9 7
211943838968: 1 4 33 3 941 812 6 1 3 4
266880: 4 25 2 9 361 417
75006409268: 4 391 73 79 160 927 1
20926452: 3 1 674 82 44 52
4192096657: 698 4 3 8 42 6 3 2 54 4 1
8066916: 5 983 69 8 5 580 132
548778868: 841 988 3 78 40 46 7 1
1040559: 96 8 71 93 3 1 625
946657001: 945 1 1 650 6 5 4 9 6 3
714882712: 16 3 6 8 1 2 8 3 610 7 9 3
45769946: 1 784 84 695 26
114317969980: 940 5 7 547 6 74 23 80
377186608725: 4 385 8 9 86 6 87 1 24 1
26128128: 2 253 29 92 130
101628: 8 3 5 8 2 674 3
3416: 7 46 69 4 7
306753346: 6 7 1 72 5 7 63 631 46
50492: 1 6 8 2 2 7 12 9 1 1
169260086: 560 62 5 975 86
278853120: 81 36 784 5 608
7504553: 8 54 6 8 624 553
665167: 24 92 6 3 9 70
387193982747: 767 7 387 9 1 655 50
4203828: 896 469 2 5 901 3 659
6113: 1 52 9 1 3
15109568581: 5 472 87 64 495 86
77199: 8 6 5 55 1 5 3 1 3 2 41 78
27566775: 3 301 6 305 697 4
672: 7 4 6 2 336
12024890207700: 962 611 9 827 795 19
107892318: 338 7 14 6 4 3 318
221200150: 6 2 4 50 5 3 8 38 3 4 22
4886: 16 1 25 3 13
22961627: 376 1 8 58 8 1 6 8 2 7
1004796: 39 90 8 8 37 527 7 5 7 9
82139408541: 4 1 73 8 384 962 541
799635: 26 4 1 984 25 35
253278581: 531 6 72 9 47 36 236 9
107449434: 35 8 164 78 3
36617906: 697 63 7 263 89 8 827
740: 6 2 29 669 34
4818883: 2 516 6 852 12 57 787
659740: 72 7 9 51 9 6 19 2
47340305162: 6 77 82 94 743 3 719
129681186: 7 7 402 7 1 9 1 86
695324: 816 85 2 752 968
520: 22 8 8 271 9
31726191: 7 453 6 10 191
44082432: 415 5 99 488 38 2 64 9
48142: 339 71 2 1 4 1
81505848266: 4 4 5 6 9 81 4 1 848 266
5686475: 347 14 117 261 5
2806: 380 7 58 9 79
50022981: 67 4 96 72 13 3 6 816 9
4931703: 2 7 9 7 6 9 38 7 20 1 6 9
151831669: 75 202 6 238 87 661 5
2152935: 6 93 4 2 3 3 677 5 2 2 71
283581: 657 73 387 965 96 3 7
1858: 72 65 6 6 2 31 682 994
58139: 8 93 3 651 77 4
41433: 7 491 83 94 5
1798676: 899 338 2
71287: 7 1 287
593767487: 438 1 892 664 674 87
9171504040: 4 573 10 593 268
123963840: 6 22 8 78 301 5
4934: 6 8 2 9 6 98
17274262500: 330 5 517 30 75 9
13643845742: 6 5 799 417 7 7 1 5 8 9 2
82443: 426 13 384 78 65
34698: 84 76 12 6 30 3 48
1298100692: 1 511 3 4 7 3 333 8 9 2 1
134467: 8 8 98 72 54 7
21938: 36 7 3 86 8
728106: 71 9 90 9 6
1036239: 95 14 98 97 85
12834: 245 14 3 406 96 4 39
1869067: 8 514 11 85 2 280 41
3093224: 67 8 3 76 28 6 5
3907947905376: 814 2 311 627 4 96 6
8145923: 37 64 5 8 86
3760433: 9 5 207 84 4 8 4 5 3 2 5 8
703560842: 1 8 2 533 5 6 1 1 20 4 4 3
84702: 3 3 8 10 9 162 138
1854627894: 9 85 949 55 4 89 6 63
212488452: 6 5 2 968 5 927 292 52
2639: 29 65 28 6 1
8872: 6 4 8 7 7 9 7 362 25 8 1 7
9183433: 7 1 5 527 2 6 5 5 4 2 3 3
872676: 73 6 77 9 69 9 53 732 7
89407: 34 95 5 69 7 45
7326974: 6 7 6 28 1 1 7 1 8 69 4
4335417: 6 69 2 414 8 17 9
3118380: 311 83 1 80
6997518451: 649 3 6 599 38 2 9 9 51
692: 31 46 45 502 68
223725648: 74 574 1 3 563 3 16 66
1736100: 81 451 8 5 643
86403: 26 65 943 7 83
42101628673: 6 6 8 75 10 1 58 327 7
4279409520: 92 1 3 29 7 1 8 5 6 4 722
38262285: 4 9 2 207 55 283 1 2
15694: 956 16 144 9 245 1
290897817: 49 1 4 2 8 3 3 2 1 75 3 17
36153083: 4 5 638 280 390 75 8
17073311: 5 3 97 8 16 5 674 7 884
2630402985990: 932 414 46 228 6 65
8456: 2 324 461 4 8 7 93 516
1866: 12 3 48 4 6 3 169 923
936323046: 6 5 9 8 3 32 1 304 6 1 1
83735645: 2 2 2 483 1 1 57 6 3 4 1 2
19300233286826: 7 3 901 797 34 102 27
435872007: 32 514 500 53 4
633652800: 2 8 532 2 7 600 88 11 1
8065: 6 36 36 34 255
166518: 84 5 8 844 8 8 87 2
305292: 3 54 4 4 7 43 8 6 3 412
37620: 6 2 70 6 1
2435900740: 2 7 95 8 443 92 1 91 70
4843: 1 31 44 3 193 3 417 6
2839188: 42 227 768 23 66
2056845: 7 64 583 35 57
6104: 253 90 461 7 473 3
50592: 15 8 385 60 32
962693911: 706 804 4 8 60 8 53 3
962: 194 1 1 4 109 7 9 43 6 8
103923456: 81 2 9 452 2 64 84 8
21196: 43 4 58 600 2 44
27635641600: 2 4 72 1 165 6 80 424 5
244415360: 3 7 54 481 941 20
61436253: 989 926 363 782 67
26144169424: 245 5 7 7 50 24 76 62 2
436321776: 671 8 69 589 2
78781130100: 87 534 52 6 9 900
14607: 5 184 8 2 9 28 8 2 59 3 9
22411339: 223 71 8 9 3 948 61 9
9569229: 956 89 3 25 4
14623182843: 1 2 50 56 9 7 7 7 6 843
2746: 701 46 3 7 308 190
473279: 73 86 96 31 95
83008: 690 118 713 787 88
3568192: 4 53 246 9 4 74 64 98 8
8507525834: 92 99 7 934 34
1005791960: 2 5 4 368 6 3 1 1 4 949 4
320458: 474 8 4 5 20 65 21 4 36
1281302: 361 2 76 6 97 7 754 5 7
88145: 5 7 6 7 3 2 983 87 4 1 8 2
337502756: 699 482 196 43 57 55
346898213: 34 6 6 3 76 2 93 1 5 4 7
60369: 7 4 81 5 2 377
5415: 284 7 70 3 5
61466445: 373 744 570 55 95
18402973160: 7 48 3 2 6 1 4 82 1 5 3 7
2730744248: 5 903 9 32 514
1551240: 190 3 36 8 40
1024788284922: 4 1 55 67 81 4 53 461 2
7342736119: 831 470 69 38 47 4
3927: 5 7 3 24 25
2400060: 93 5 9 53 255
982227586: 98 22 19 8 585
496314: 7 56 19 719 6
4040257535: 6 9 668 1 3 4 7 4 224 6 1
13483151031: 13 769 31 564 977
46403: 8 54 401 37 66
45397: 2 6 91 73 6 91 97 1 94
4447366: 577 5 8 77
2625719950: 872 78 259 82 469
296: 4 7 189 2 94
166198958330: 166 198 1 7 86 72 329
36855: 46 2 57 9 39 1
705672: 6 8 5 8 7 7 53 840 648
493746168: 7 7 8 8 2 1 3 1 5 270 8 8
686609000: 77 4 837 7 7 55 2 964
602767: 8 1 5 955 5 121 780 5 7
1022401: 497 696 857
10384: 9 2 944
21426: 65 2 50 596 26 15 3 8 7
9385241: 155 60 9 8 88 16 7 5 7 5
3775338000: 66 67 375 152 498
217246229919: 3 61 38 69 7 6 29 922
51802633975: 740 7 2 40 3 230 966 9
4452: 5 813 380 7
246173: 198 6 5 206 405 3 7
562695027: 9 8 96 59 844 2 26
1309857: 31 99 6 690 891 87
2779776: 34 74 1 72 8
7741497922: 90 5 9 20 8 7 797 3 1 71
1671485818434: 43 6 993 4 5 757 4 51
11213727676: 1 453 3 328 2 7 77
6673501088: 2 73 8 3 3 357 6 4 7 1 4 4
2787762: 33 809 8 79 3 759
546764: 15 13 351 70 2 1 5 58
136: 92 1 43
93253: 9 3 25 3
352868: 3 29 1 4 866
32376156: 879 635 54 33 65 3 4
871235: 120 12 66 35
1831247: 128 51 4 1 247
202176000: 8 1 1 7 6 6 9 768 5 3 5 26
1722975: 3 572 51 646 5
175468894: 2 74 9 6 4 57 94
16488352: 8 5 277 62 21 3 87 8 6 8
51385600385: 8 4 5 3 80 8 5 248 38 5
15120984186: 65 3 6 5 1 5 1 833 66 7
142: 7 1 6 6 122
3014946: 4 2 799 39 7 1 1 2 96 66
545580: 38 579 78 5 157 5
4896: 6 810 25 5 9
25438585: 93 7 5 7 57 59 3 5 7 2 6 7
375110: 2 9 755 5 2
7096: 2 4 49 1 9 7 3 63 2 24 8 2
323424: 4 847 1 380 44
857191: 1 500 93 6 1 3 477 2 20
2811487360: 3 16 1 69 5 89 352 470
9747: 6 27 32 22 5 9
295167150085: 2 6 8 4 9 2 3 9 867 2 64 5
22419298503: 921 387 62 1 629 575
32775: 69 67 58 7 8
594305316: 9 66 30 2 3 31 6
212428348: 6 2 7 5 22 7 42 3 2 8 5 4
6705301: 5 86 433 5 9 567 2 2 2 9
29019: 9 31 8 4 33 70 3
4951088: 5 2 2 9 98 34 3 1 2 420 8
14933344994826: 18 635 212 369 7 54 9
1880596497: 944 853 323 54 9 6
32316: 924 209 63 27 24
89674752: 17 1 6 8 131 93 6 2 4
65803914: 871 310 692 96 3 81
370805: 6 17 727 7 5
1424: 559 847 10 8
15075: 6 128 465 1 3 69 4 3 1
9044785693: 45 210 4 55 7 5 694
1622304: 8 16 5 8 3 7 8 3 366 8 9 4
31356346: 52 603 346
30633683680: 3 63 9 8 6 2 3 5 63 367 9
1347: 2 96 7 190 372 482
10184: 3 2 9 90 914 7
401359728: 96 871 2 912 7 341
10759876: 9 24 90 22 259 1 9 164
8217375: 3 465 1 349 2 45 3 75
4891840: 36 849 7 3 40 4
8803089: 8 3 234 57 6 7 2
3766682: 6 31 66 628 54
320646: 87 6 6 6 609 2 9 2 5 939
23741337: 65 485 1 3 753
8910824: 54 165 74 8 76
227251542: 2 171 3 74 1 345 36 6
19602320: 3 764 52 294 51 69
230076: 4 57 36 420 3 84
5563429: 2 145 3 34 371 652
74531683: 8 151 92 3 715 16 5 83
152843330: 88 445 6 32 54 2
3321822781: 4 1 1 450 4 568 3 9 1 2 1
249089204069: 97 3 8 8 3 5 8 40 69
4413375656844: 459 3 8 487 671 49 6
1296667: 7 88 508 661 6
17345405: 6 147 36 16 546 69 8
465564: 655 6 303 3 9 53 9 5 3 4
32376886: 9 6 4 598 74 42 7 7 5 4 6
563892495: 86 96 702 2 6 495
633298: 97 556 110 83 5 2 8
50787046: 4 62 953 204 634
87390: 68 18 67 72 3
2403240558: 1 768 18 7 755 5 8
12412077102: 50 3 6 82 783 9 5 1 7 6
331930: 1 840 5 56 7 76 614
936742758688: 93 674 275 8 688
51431418948: 8 3 3 6 4 1 1 38 61 90 4 5
3299009805: 95 1 6 5 9 56 5 523 5 7 9
5752278998995: 575 227 899 89 93
4019250: 728 12 9 6 46
24575905: 3 7 5 628 167 2 8 7 6 3 7
22631446711: 867 498 156 84 4 52 3
4827: 1 6 70 820 713 3
46502100: 34 4 46 270 5
3280728: 40 97 1 2 1 5 4 9 92 8
161993: 7 7 179 1 27 733
7222928744: 87 343 1 2 3 81 1 3 242
131281481: 5 146 1 370 238 6 80
102633899: 34 3 62 760 629 7
403551: 58 772 1 62 9
4798692: 3 42 4 9 95 948 1 453 4
4642: 56 1 16 5 60 22
3925858: 392 5 85 5 3
10078111: 33 76 2 97 84 9 55
42102630: 830 2 9 5 1 5 9 3 399 6 5
3444562: 352 5 5 89 9 832 9 73 9
3813120: 414 28 38 993 8
504489: 679 6 82 730 337
58166874176: 3 7 4 1 147 5 6 7 409 8 8
63099786651: 7 150 8 8 62 1 1 10 8 1 6
115684: 3 674 3 1 5 4 9 5 7 6 8 8
1118059280: 3 6 6 9 382 1 8 1 542 5
218297: 916 7 6 34 82 3 1
3152907481916: 381 25 4 331 81 9 16
36711001901: 1 9 4 88 7 9 8 5 1 259 3 7
3150538559: 6 99 6 5 5 3 1 1 3 742 9
17007278: 58 9 1 6 90 343 3 278
2796157: 76 4 45 4 864 6 247
2480886: 530 65 9 8 475 5 6
396507829: 37 24 4 610 782 9
2694431: 6 4 60 5 2 9 898 30 431
35304: 43 99 8 89 23
27636008: 80 5 135 5 1 84 7 8
25806: 3 8 3 49 298 69
62775: 30 23 81 4 81
21282: 599 4 17 65 36 1 288 2
270043318363553: 458 88 9 7 289 67 5 5 2
555: 2 2 16 1 201
46368: 8 6 69 6 8
436: 283 7 79 64 3
1190: 29 70 2 3 199 790
8299183120: 49 9 6 249 82 4 4 292
38489155322: 3 30 347 4 7 74 2 6 3 4 1
239345596803: 23 934 5 5 96 803
85926648539: 8 70 1 1 5 135 11 39
307820736: 8 3 6 7 8 65 652 9 9 4 2 6
6377: 7 8 305 4 63 15 572
1386630: 1 4 6 1 2 24 7 4 6 4 4 866
16506803786: 3 611 1 9 7 9 1 7 6 6 1 84
434593488: 543 23 4 1 7 9 7 9 5 2 88
2398860: 3 2 3 6 1 6 423 2 5 7 9 9
506942: 8 9 121 814 7 176 412
1457: 412 17 698 326 4
167420: 380 4 1 1 110
906118132140: 924 5 5 8 9 242 4 2 90
200736: 697 32 9
126228: 21 25 533 218 6
187376052: 57 623 316 872 692
464: 4 27 27 406
3459390027: 934 97 37 9 42 2 80 3
597495: 1 892 586 3 4 574 43 5
74239: 933 84 73
85839: 85 8 13 26
3660622: 6 6 598 23 799
86013549308: 222 562 971 1 71
36147: 36 1 50 1
564169489795: 5 28 986 67 61 1 9 7 9 5
485744688: 3 34 9 40 5 8 59 4 12 1
2647095: 992 8 706 37 305
435372: 33 7 18 4 12 7 6 853 5
66136: 8 8 1 6 1 9 2 175 5 72 7 8
509184085: 2 1 90 60 544 8 4
332208: 41 518 8 8 1
4450: 34 6 99 349 2
1393: 7 546 50 782 8
186344378: 2 77 32 344 376
243349150: 88 4 66 803 319
18989094942: 23 8 6 4 84 9 2 3 1 9 41
199257670: 8 19 988 243 582 4
451: 58 6 103
76860461698: 1 2 1 7 3 2 63 5 4 61 698
1772246412: 683 72 53 9 6 4 12
51561: 211 61 18 2 2 5
5166: 475 8 33 6
39670700: 1 94 5 134 310
633879523: 12 176 36 51 6 3 523
50200413: 538 74 2 82 13
456540907: 1 52 3 5 40 784 71 49 1
22962349: 3 2 16 953 8 982 368
42648902962: 5 4 8 66 7 345 295 5 7
208380828656: 2 818 5 5 52 3 5 2 4 814
155258217: 8 3 391 8 9 6 624 7 2 3 9
2496037526: 21 8 1 16 52 27 7 98 26
9212: 16 3 773 6 996
601724: 3 19 283 1 5 5 7 7 2 1 4 1
45260: 3 30 47 5 5
372738: 81 46 9 4 8
209: 23 80 59 47
109860660: 2 7 437 1 27 165 4
7165120475: 9 5 154 5 4 5 1 5 53 5 85
107002: 49 6 6 324 8 74
59885184773: 90 864 758 31 508 2
808339: 197 43 7 2 541 6 11 74
3372115896917: 8 4 5 7 4 5 9 28 57 91 7
696960: 1 985 3 67 660
888723: 9 88 34 3 33
25780342: 883 965 22 7 634
12446: 7 5 3 1 46
1154575: 25 3 405 615 9 9 7 73
130222: 3 73 18 331 799
69984: 5 1 8 416 715 141 4 1
125837559077: 4 631 91 6 2 5 9 9 4 987
204368465: 748 609 293 3 514 9
11360: 6 6 316 32 96
21510322: 9 6 3 6 55 1 605 962 2
2410331315: 574 247 6 195 17
21453306: 48 17 66 5 93 52 5 81
879180066715: 1 5 4 7 6 5 8 2 319 209 7
601412430: 15 4 14 124 30
495281224: 1 4 5 4 6 6 8 4 8 81 224
2787: 8 56 8 4 735 4
60651324: 2 9 787 74 69 29 2 8 6
640: 38 3 479 41 6
3905: 33 16 589
77339: 5 7 55 15 73 5 2 45 644
3541: 12 429 1 8 5
1326529390: 7 3 8 95 7 24 8 43 2 8 3 4
832692726: 29 739 40 1 7 28
1236216182: 12 3 55 6 7 4 61 85
20258: 5 112 36 98 1
1743830998: 58 5 638 498 1 6 8 1
165440626713: 5 4 44 188 6 2 67 15
12797250091: 4 1 4 480 717 1 8 581 3
4612461: 84 9 61 9 70 7 1
7807: 776 4 7
212503200009: 17 9 89 5 75 800 5 52 9
370784953: 6 8 4 7 51 7 15 765 15 3
44289: 57 1 763 31 4
54450: 2 2 14 65 450
649705: 888 3 1 5 58 366 1 133
64594944: 7 9 688 652 9
21238: 53 6 9 38 528
16512: 2 2 2 42 192
334461: 107 390 8 86 4 527 4
91261614: 7 9 67 39 9 4 2 5 5 46 66
3479: 749 391 2 3 53
8253: 815 6 92 2 1
37276513: 6 500 12 4 442 7 1
2351539246: 691 381 457 48 46
9169: 5 94 8 2 9 8 4 3 541 3 4 2
34618020: 20 6 1 1 48 70 6
15292375: 1 83 772 766 6 8 2 23
260442003: 8 6 3 6 390 742 6 1
1901238316552: 2 5 7 97 4 38 316 5 52
5443993: 537 2 21 6 502 33 158
120969415198: 13 93 694 151 97
217273: 8 6 5 24 3 9 1 53 8 6 7 7
257260: 4 3 225 8 95
3690169721929: 85 42 689 153 627
160: 57 8 91 4 1
331255576: 3 1 1 7 7 39 3 9 3 5 5 576
72784124: 4 813 170 11 524
33892892: 5 6 9 1 575 5 7 5 5 47 2 9
853934536: 847 6 93 45 38 1
9875: 2 149 4 577 698 4
30902400: 222 400 1 58 6
13064065: 67 1 45 619 7 14 52 4
184577: 87 85 3 3 4 7
422231: 937 5 3 9 5 299 4
11166176: 3 66 193 34 158
56347728: 4 8 2 66 4 26 4 964
201232813: 83 606 9 2 616 32 810
123424318028: 1 3 247 1 38 3 1 802 6
4366230: 7 7 5 9 44 9 66 5
7477050016: 772 1 631 3 2 63 4 844
152336266333: 9 995 817 5 5 381 4 6 7
40981217760: 58 111 842 9 35 3 8
5766837: 139 20 7 90 386
38401564: 96 4 4 999 4
11135115360: 8 8 97 40 6 6 22 4 405 2
824315949: 433 85 38 5 1 30 919
1535881: 6 715 9 6 367 2 4 8 8 1
18409041: 6 68 48 940 82
16645: 739 754 355 9 9 1 3
6022000295: 849 4 2 4 1 886 4 7 1 48
1014087438: 979 830 48 3 26
6758002718: 719 246 32 199 6 926
684756: 71 590 23 7 56 1
430296: 422 5 3 2 96
4447: 3 441 7
1811188: 3 713 97 810 2 8 18 1
71286: 7 1 23 5 6
35709696: 466 4 4 4 3 3 5 6 88 9 8
2377492897: 6 8 2 170 654 3 6 2 8 9 7
6132692: 10 758 95 6 629
3922831: 855 62 74 82 8 1
12452476: 2 91 440 77 26 5 31
54744: 2 7 124 6
128744272081: 32 1 860 2 4 77 3 4 2 6 1
75755758: 7 84 79 61 4 20 4 2 3 26
52339056: 1 867 88 7 98
276119: 3 235 4 21 5 39
30529: 6 3 167 4 465
1268940: 254 80 829 60
129626: 259 7 14 526 5 9 69 8
5237: 519 6 41
804267: 34 53 446 162 414
18755: 17 8 75 4 1
44632: 633 4 6 7
128204825622: 1 720 87 745 4 6 1 62 4
9536: 949 4 3 3 1
457490: 68 7 6 55 6 55 2
1444800: 6 26 43 50 21
339154325: 871 32 507 326 24 5
882711: 4 8 870 678 32
498865: 8 99 9 73 2 4 5 24 623 2
22755: 75 8 1 3 16 7 1 75 3 3 41
3051450: 30 51 391 59
37279698: 109 9 38 978 61 659
26348935: 9 239 8 7 48 300 4 631
15429882533: 9 8 40 486 7 56 121 4
7372452539: 2 737 97 98 995 40
950: 50 314 3 575 8
70550298: 100 495 2 2 702
817053536515: 6 46 6 315 73 7 956
2429481600: 515 4 702 70 24
9538543: 476 2 9 9 543
24624323109: 76 6 3 38 378 4 746 4 9
27418374008: 486 3 6 138 2 56 8 8
18305285: 2 9 7 2 3 7 3 4 6 336 8 5
99122: 8 41 4 5 3 587
1669: 5 5 7 101 6 5 8
90208330146: 942 6 1 57 8 957
1063: 15 990 7 54
82119528: 304 1 453 3 5 28 9
354415654: 7 872 984 709 59
4578519: 3 6 79 3 4 6 4 8 3 89 3
22163061663: 3 87 924 98 919
122369940: 8 69 382 265 4 45 63 9
132274: 4 3 41 81 27 6 2 4 24 7 4
52771515: 95 1 9 7 1 301 7 90 3 5
15156126976: 6 3 70 9 9 3 8 4 1 9 973 3

49
day_7/solve_1.ts Normal file
View File

@ -0,0 +1,49 @@
export type Problem = {
target: number,
numbers: number[]
}
export async function readData(path: string): Promise<Problem[]> {
const file = await Deno.readTextFile(path);
return file.split("\n").map((line) => {
const [target, numbers] = line.split(":")
return {
target: parseInt(target.trim()),
numbers: numbers.trim().split(" ").map((n) => parseInt(n))
}
});
}
function solve(problem: Problem): boolean {
function solve_inner(target: number, arr: number[]): boolean {
if (arr.length === 0) {
return false;
}
if (arr.length === 1) {
return target === arr[0];
}
const [head, ...rest] = arr;
// console.log(target, head, rest);
if (target % head === 0) {
const div = solve_inner(target / head, rest);
if (div){
return true;
}
}
return solve_inner(target - head, rest);
}
return solve_inner(problem.target, problem.numbers.toReversed());
}
if (import.meta.main) {
const data = await readData("input.txt");
let count = 0;
let sum = 0;
for (const problem of data) {
if (solve(problem)){
count++;
sum += problem.target;
}
}
console.log(sum);
}

47
day_7/solve_2.ts Normal file
View File

@ -0,0 +1,47 @@
import { Problem, readData } from "./solve_1.ts";
function solve(problem: Problem): boolean {
function solve_inner(target: number, arr: number[]): boolean {
if (arr.length === 0) {
return false;
}
if (arr.length === 1) {
return target === arr[0];
}
const [head, ...rest] = arr;
if (target % head === 0) {
const div = solve_inner(target / head, rest);
if (div){
return true;
}
}
const sub = solve_inner(target - head, rest);
if (sub){
return true;
}
const str = target.toString();
const head_str = head.toString();
if (str.endsWith(head_str)) {
const new_target = parseInt(str.slice(0, str.length - head_str.length));
return solve_inner(new_target, rest);
}
return false;
}
return solve_inner(problem.target, problem.numbers.toReversed());
}
if (import.meta.main) {
const data = await readData("input.txt");
let count = 0;
let sum = 0;
for (const problem of data) {
if (solve(problem)){
count++;
sum += problem.target;
}
}
console.log(sum);
}