add day 7 part 1

This commit is contained in:
Dmitry Fedotov
2024-12-15 13:45:24 +03:00
parent 028470c93e
commit 08c213c75c
4 changed files with 947 additions and 0 deletions

38
day7/code.py Normal file
View File

@@ -0,0 +1,38 @@
import sys
sys.path.append('../aoclib')
from aoclib import Input
def parse_input(lines: list):
equations = list()
for l in lines:
s = l.split(':')
eq = (int(s[0]), [int(x.strip()) for x in s[1].split()])
equations.append(eq)
return equations
def solve1(eqs):
return sum([e[0] if may_be_true(e[0], e[1]) else 0 for e in eqs])
def may_be_true(val: int, lst: list[int]) -> bool:
if len(lst) == 1:
return lst[0] == val
if may_be_true(val, [lst[0]+lst[1], *lst[2:]]):
return True
elif may_be_true(val, [lst[0] * lst[1], *lst[2:]]):
return True
return False
if __name__ == '__main__':
lines = Input('input_test.txt').lines()
#lines = Input('input.txt').lines()
eq = parse_input(lines)
#part 1
print('part 1:', solve1(eq))
#part 2
print('part 2:', '')

850
day7/input.txt Normal file
View File

@@ -0,0 +1,850 @@
7628244: 4 6 99 4 321
1961493912: 729 232 83 28 46 1 9
79325232924618: 907 466 857 34 3 618
5036760: 5 647 4 2 79 274 8 3 3 8
152117: 5 75 9 3 46 162
63846: 341 9 239 239 6 3
6073704: 8 6 93 562 6 9 91
7044340: 98 302 7 34 492
5044440960: 15 31 520 3 606 2 58
1802308: 18 5 596 6 81 1 8 6 428
12312698599: 598 5 99 548 372 52 3
519237: 79 718 3 849 118 9 9
7898: 5 7 34 8 86 49 63
4609664: 67 688 64
6247040: 560 61 3 704 10
23641455: 656 120 84 8 5 3
1781: 79 954 699 49
90005760047112: 9 37 560 2 480 471 12
726: 8 24 47 7 92 63 9 1 8
1449585: 38 147 38
5434836: 9 3 9 6 7 35 1 8 8 2 8 66
5819: 3 94 2 3 1
1276: 31 41 5
513617: 5 13 61 9 1
14810186: 7 80 7 910 3 1 3 7 881 8
23860876: 568 7 675 6 783 41
1231955: 11 5 64 401 3 2 1 80
5901: 9 300 107 2 204 83
3880: 63 698 5 2 73
1598732: 12 84 314 732
5843810: 8 8 823 108 18 5 1 6 5 8
1680456932: 8 5 30 5 7 3 5 799 3 2 4 4
36509324: 2 3 159 795 9 4 70 404
790: 47 6 9 20 479
859825355255: 6 2 1 8 88 3 5 1 936 7 5 4
5417549724: 82 6 5 55 20 49 637 85
14040: 835 3 24 6 8 4 6 4
1250752368: 657 4 2 361 524
7603: 72 9 79 33 3
1532040444: 15 876 965 58 42 600
3754036: 2 5 938 3 4 5 2 5 4 3 16 6
468913968: 762 6 941 6 938 9 6 8 9
12435103: 1 3 9 7 6 4 47 2 636 31
132300: 42 3 6 35 5
963: 4 887 72
519567: 84 7 1 882 54 15
137040: 5 6 571 2 4
222433510494: 436 696 352 6 733 80
765312: 7 664 41 760 4
59571471369: 6 3 267 5 7 41 6 97 8 1 6
7014: 4 7 786 8 54 584
391006260: 312 139 98 92 372
32613: 438 5 231 72 766 3 20
93835690: 1 407 32 4 626 65
15280749: 49 77 450 11 9
34840: 9 19 37 536
11336382: 3 1 23 901 466
243945: 9 174 75 9 94 579
437035: 3 24 8 3 2 7 4 76 43 9 3 1
485832600: 7 5 192 6 6 7 9 75 8 11
1974037092: 6 9 743 70 492 223 29
1567: 1 521 3 56 917 2 5 62
10703137: 9 9 2 165 6 9 8 4 1 9 2 56
8762640: 1 2 73 248 4 84 71
34935769: 3 970 1 95 661 458 12
2217248: 71 549 119 3 2 45
6154457130: 6 6 7 4 8 48 4 8 3 84 236
1388613996: 9 9 281 5 14 999
150745343: 2 5 843 8 32 6 59 2 4 3
9665473: 56 644 268 321
1011: 9 601 15 251 83 52
50736683095: 6 5 40 604 9 7 585 1 7
8159: 6 25 6 9 59
6658270: 68 1 419 5 33 230
416909: 4 4 883 2 59 15
1493958: 5 9 914 5 9 8 8 4 8 266
20162515464: 7 4 73 83 8 6 993 4 91
7914954204: 511 492 583 30 6 9
1499: 8 8 7 115 8 8 3
5389101971: 4 5 5 84 611 9 9 971
50436416: 784 33 373 9 64
2116490397: 7 6 407 4 49 35 6 1 397
434013: 43 33 6 15 97
2612480: 86 300 846 8 32
41195571: 41 18 9 6 571
23934733065605: 53 9 8 7 8 7 1 7 2 5 448 5
241944: 47 1 63 3 8
47496055: 44 8 366 907 3 90
56741859: 2 81 547 27 3 2 8
702780: 83 24 9 57 689
19221408: 7 593 66 9 32
21672: 769 5 28
314230743840: 5 2 37 1 781 9 5 6 7 5 5 6
24449: 773 916 9 2 1 7 7 7 656
732965386752: 2 4 743 881 36 81 64 1
68914900: 190 874 415
2856: 7 8 51
47874339: 6 8 326 45 20 7 9 54 9
185955891: 1 77 5 161 290 4 3 9
13714303: 10 9 90 2 52 94 839 1 9
251585: 1 52 5 948 365
66232894480: 827 911 176 5 80
4606: 2 3 641 760
3278601798877: 8 6 145 9 38 471 3 5 77
401510972734: 8 561 469 72 6 1 34
30366: 4 2 541 10 7
18213170448: 6 8 6 155 3 5 24 4 6 3 4 2
70977643971: 4 16 93 265 975 45 96
5130797: 854 16 84 60 798
12449484: 8 9 3 9 860 524 482 6 3
71752928: 717 520 34 2 892
43587539265: 676 466 65 826 78
13737950968: 5 6 263 9 147 7 8 443
2405: 559 480 2 647 717
6084144204: 734 8 4 207 20 3 1
245372235167: 59 9 73 385 633 811 7
8361522: 28 14 395 3 54
35168581: 21 98 16 5 81
108824100: 664 7 4 2 2 9 3 6 5 7 77
736232: 2 5 963 759 2
4641174: 4 62 48 57 388 306
408931: 866 8 77 43 1
785386738: 9 1 2 7 1 923 9 67 6 1 2 1
72960: 20 6 608
16586390: 5 8 5 9 898 3 9 4 57 68 6
32760: 25 14 4 51 6 223 5 4 1
54859: 1 348 6 26 571
601806: 5 90 51 2 6
6977744: 5 6 75 25 6 443 489 5
982: 10 6 5 3 919
8490: 40 430 297 11 56
28257501930: 63 2 4 10 8 1 8 4 8 9 7 6
1033274880: 792 8 72 453 5
1403475: 1 6 38 803 8 9 5 3 5 7 5
64692: 11 9 1 11 9 167 341 9
1877778226: 7 505 59 9 4 64 9 226
54344: 67 199 17 24 1 8
297324210: 86 3 31 42 3 82
6843: 81 113 5 2 1 17 1 2 1 6 2
32185612: 55 45 811 13 69
3806: 24 76 42 2 1 74
19584: 400 5 3 8 6
7766: 7 7 133 390 851 8
1747: 1 66 8 7
30782706: 80 583 382
1178995664: 882 62 4 7 308
2971254: 1 62 87 542 50 1 9 492
1326251962: 8 5 2 612 7 114 8 2 962
3685243: 363 86 466 35 8
46474134867: 6 2 146 905 8 7 8 3 867
5886: 7 84 6
2174880121: 81 655 591 5 11 8
217122543: 625 7 919 6 972 1 4 9
5943912: 1 1 297 25 2 3 8 9 1 6 6
142148: 2 8 4 2 6 62 6 8 5 88 9 9
13662183920: 793 447 390 92 385
590330: 13 50 351 592 26
639240: 91 282 36 2 7
23843783: 3 250 6 53 4 94 25
1499827: 153 7 3 14 6
3249689: 406 21 8 5 2
312771946: 3 6 36 87 761 945
35920: 29 2 1 1 1 4 5 9 2 88 4 4
11069543: 139 828 207 96 839
527: 4 37 90
334429: 233 2 690 36 29 12
63997: 9 649 8 5 12 762 1 6
22112631112: 9 87 3 183 5 2 53 8 643
39496298282: 74 1 12 7 9 1 6 5 4 4 87 2
8490587615: 983 80 992 87 95
70: 11 52 7
996: 2 48 31 583 88 46
72845623715: 342 5 2 851 1 1 4 743 5
142721: 2 5 7 299 8 6 1 86 8 337
832334735232: 9 8 9 8 871 49 9 2 209
1791792: 8 43 9 2 7 258 4 51 9 4
414011688224: 9 460 116 8 8 2 2 3 1
54386: 7 9 6 700 3 9 8 728 3 2
1489144: 8 15 687 75 8 15 97 19
620286: 6 613 7 28 558
85262: 34 41 189 6 212
2528944317: 69 1 2 3 2 6 5 6 7 42 5 96
13739364530: 87 42 94 3 20 58 4 530
686055: 4 96 27 2 1 6 802 37 7 5
18045269206: 776 283 9 99 71 83
816: 1 32 14 760 9
196594196: 1 3 7 69 876 4 7 6 188 8
1756: 556 6 1 604 493 96
99960: 80 5 6 49 4
370507746: 433 9 266 89 746
7199850: 52 923 3 25 6
1218: 8 4 3 574 2
61785: 56 11 2 461 14
84988680888: 996 46 35 53 299 586
157: 65 89 5
239270618016: 7 2 67 4 310 5 4 504 2 2
1289792: 81 34 81 44 7 8 8
1699: 47 6 6 4 3
3482334: 8 41 12 345 5 587 1
1397025430: 399 15 35 43 2
1432861735: 434 33 7 52 7 17 3 5
125760: 1 4 7 3 993 20 266 8 2 6
16: 9 2 5
394574: 7 8 789 8 5 718 2 6 32 6
80539: 474 23 308 32 7
184086756: 5 409 408 4 9
304: 38 2 4
139051: 3 9 1 515 1
945937135: 995 646 77 3 95
45245: 8 9 3 1 4 3 7 27 8 444
8268: 68 26 4 26 32 53
133455942999: 93 35 41 94 2 994 5
306: 5 2 1 6 18
3090503113: 169 827 614 7 7 443
1042306: 3 9 47 8 7 5 6 150 6 2 94
84744212490: 1 754 7 89 4 3 6 10 9 35
596066572: 2 5 4 119 9 2 3 626 5 9
45229035: 8 641 84 105 75
7782935043: 70 8 3 1 60 1 20 8 9 1 16
55788560: 367 1 16 48 95
35084: 3 9 37 79 8
63100683: 630 92 3 5 680
7030640: 5 329 30 860 7 62 5 4
1109595612: 6 6 8 2 7 9 4 39 9 903 8 6
395: 1 66 1 328
11619243: 58 335 598 9 94
302075983151: 594 708 218 7 233
806387208192: 32 24 471 678 8 411
13503236: 9 5 51 228 8 462 4 36
1012: 74 8 2 78 348 417 5
168190: 31 864 717 544 78 22
1817161: 1 4 2 9 1 428 12 28
370985697: 62 8 8 8 3 2 1 2 23 7 8 20
11573184: 589 94 92 97 2 158 6 7
2043091: 72 6 56 7 35 414 1
24732: 671 2 18 576
2947000759: 64 8 95 612 99 3 7 429
88275285: 19 61 673 9 5
6326156: 7 77 753 9 56
8140209: 74 390 6 94 3
39962565: 2 3 4 990 4 8 8 9 6 1 4 1
27605: 739 4 492 2 8 1 4
46573451957: 776 8 937 62 957
4921024: 7 6 8 91 64
1079: 78 4 985 7 5
4302: 85 81 5 5 467 69 6 1 30
470: 2 24 8 27 59
674438: 42 37 7 62 2
602621404: 97 84 465 716 7
1226633730: 1 9 52 665 211 141
11424163: 4 9 3 4 8 2 75 1 5 65 88 3
6877: 115 5 1 2 9 52 5 8
6841448: 986 652 29 8 48 3 8
40625: 3 810 20 792 25
97026834777306: 98 106 989 777 305
2853460825: 9 317 4 608 20 5
134027: 9 3 6 7 9 5 910 6 5 62 15
91489893: 9 2 73 1 71 943 7 1 1 2 3
152850676: 4 382 1 49 6 24 53 999
29628319686353: 5 143 8 8 44 5 2 9 7 9 4 8
30289: 5 554 55 4 49 7
162228: 208 54 459 5 45
9705: 4 7 7 7 2 9 3
514321952: 9 2 166 5 6 5 8 54 7 1 4 8
34944632485: 713 10 5 5 755 10 49
7248: 9 717 83 152 560
119106: 5 5 961 47 39 3
18800509: 545 9 2 64 37 53 84
34056167: 86 2 387 170
18611306123: 2 615 3 1 9 1 306 114 9
47880450: 4 13 77 1 9 113 7 1 58
73491264701: 88 949 791 2 7 71 88
642395781: 90 518 74 649 22 5
1053209376: 7 2 1 1 3 98 9 7 6 8 414
37970: 3 4 63 5 1 7 6 2 313 29 9
65455: 1 4 935 1 5
1835652: 664 4 98 3 2 79 9 1 1 7 4
281581440: 5 21 581 962 4 6 730 4
2057518: 9 320 3 238 433 2 763
238892724: 280 53 995 721 181 8
68125389: 52 6 59 4 37 87 902
191675618: 44 9 882 6 484 2
5072: 86 49 439 320 99
1387360: 92 2 290 26
271585: 4 6 73 4 8 168 44 2 9 1 1
5726462257: 95 44 6 54 5 77 57
35862548: 377 5 95 39 9
59890: 59 8 31 7 3 49
112277248842: 9 8 54 323 9 2 8 4 8 43
771052778: 981 5 782 770 6
1682005: 3 18 4 44 8 9 7 7 9 9 86
3330530202: 2 2 970 9 123 283 67
5318481802: 360 303 82 587 83
11351229814: 433 6 73 5 506 7 531 1
16099247493: 7 59 7 283 6 1 505
5519: 490 2 2 37 5 2 203 6
218279020896: 90 7 7 573 6 68 6 95
3382524921: 218 7 501 15 9 921
178528677: 8 27 9 970 818 177
429: 3 4 3 3 2 4
4788723: 6 3 76 63 5 9 79
16000: 3 655 1 8 280
17782908472: 13 482 66 43 4 72
5809186: 8 29 883 7 2
80900240: 92 925 7 5 8 100 1 4 71
15954: 43 371 1
7642: 57 9 67 9 7 6 1 59 6 28 1
9713429792: 784 815 531 7 13 4 88
70703: 7 6 8 1 779 4 5 4 53 2 6 2
1251960: 69 9 57 509 2 9 9 4 8 3
533136923: 784 17 4 231 4
2395798440: 138 166 68 85 3
319332: 8 755 95 6 52
59868: 554 220 77 58 208 4
8382: 93 9 2 4 6
4836783615: 6 76 795 4 3 3 1 5
38798186: 26 251 12 99 14
3270811: 3 205 7 9 571 8 11
162284236: 99 591 57 235 28 4
30545424: 1 252 78 7 222
22070450: 220 704 4 6 4
1810806355: 3 2 7 7 1 3 7 75 99 443 1
14680313091: 31 8 29 486 6 4 42
84892457: 50 773 4 38 11
731862: 2 26 7 2 4 2 91 7 8 70 6 9
172956: 2 4 1 497 58
2750194: 5 502 65 2 89 6 3 9 75 7
312245527861: 2 4 499 6 11 5 6 9 8 3 4 2
546028722287: 7 7 6 8 98 63 5 4 3 289
6151: 81 4 61 15 24 352
235005413376: 6 4 5 2 39 8 1 652 8 192
397667590323: 9 850 820 4 987 143 3
580871: 7 5 16 59 20 69 64 4 7
1516898: 2 96 790 10 1
215916: 360 4 51 6 8 397 3 1 20
887: 9 1 7 5 9 4 7 792
41342963: 516 124 1 661 1 8 3
54624: 6 943 384 22 764 8
11940: 66 3 433 95 20
1057506: 7 764 271 8 7 4 67 9 30
96: 6 3 4 4 44
19218: 126 38 794 824 3
217222512968: 95 1 273 5 6 2 7 6 76 8
28255035: 3 8 4 39 65 38 708
1003838: 9 2 250 55 88
30169689: 66 9 217 9 69 689
10711992: 452 8 71 41 82 5 6 99 6
3599049: 850 17 625 573 23 5 4
59101341155: 775 43 2 51 3 286 62
807: 2 82 2 3 265 38
1315001: 157 1 42 83 38 77
17704470: 890 8 8 1 9 59 8 444 7 6
171041: 9 4 9 4 5 39 2 2 2 2 150 3
14700: 4 6 88 30 5
23703: 8 434 3 29 1 5 4 436 6 9
9910: 95 82 218 65 45
1154811340864: 9 1 6 1 464 4 92 4 6 8 6 2
47924760: 1 24 766 310 6
4: 4 1 1
6361817398: 1 1 6 2 56 1 5 56 77 3 98
140670067: 18 216 450 6 68
3390660: 763 87 45 7 9 1 5 108 5
395782124220: 41 9 469 7 285 7 9 940
1559760360: 64 204 2 970 120 3
126005873: 78 2 5 811 5 1 965 33
1782779: 79 59 40 277 9
37865018527: 7 6 5 7 7 3 41 5 3 7 617 9
14177825966: 5 8 38 287 1 8 5 74 1 5 6
104222547: 94 3 9 546 1 24 2 83 9
973: 107 2 127 1 9 622
2278: 94 83 872 861 368
35600958: 7 305 796 7 2 9 51
459258: 2 4 897 9 6 42 4 6 5
87602135424: 6 328 720 69 7 4 12 8 4
27075749: 54 5 135 8 46 149
108129417: 406 822 1 6 9 36 2 9 2 3
5960388: 5 5 5 4 5 9 883 16 1 1 6 6
180646200: 3 8 3 46 48 1 6 540 59
2890355710: 89 38 5 8 47 727 5
767: 1 6 8 5 5 4 80 283 8 5 6 5
1852823: 18 28 3 4 823
13881672: 68 81 6 4 63
10077616: 65 8 969 8 2
2131: 57 8 35 5 10 4 64 16 9 2
6105615: 76 536 24 96 12
1536527: 1 5 4 4 9 4 5 8 979 78 5
7238: 7 779 813 1 110 861
838908: 2 9 786 509 36
1776731726: 58 83 302 65 726
826: 27 383 366 41 6
26244: 2 690 9 28 6 6
464492028: 977 28 3 90 4 462
811939893140: 52 65 33 23 545 692
9206127960950: 63 29 5 98 532 6 558
9689856: 5 6 95 82 305 6
81935: 9 19 4 5 861 6 35 8 9 1 7
457029988: 96 2 4 635 7 204 9 1 7 8
748569604861: 2 7 4 6 6 5 8 2 54 8 48 61
46508382: 92 856 34 4 5 608 5 82
8971614: 674 87 153
24640: 39 520 1 44
572800: 5 727 18 82 2
117084858: 456 5 91 477 9 563
250349: 193 5 77 5 3 6 8 38 79 8
4578: 3 636 7 67 38
9144283471: 2 2 9 9 617 4 8 39 2 7 2
7240: 8 994 731 4 308
358075: 7 658 8 15 6 3 81 85 55
4674: 152 3 11 5
7285254: 63 10 899 111 657
83072: 1 11 693 2 59
7766407164: 7 10 99 960 7 161
3318: 61 1 31 9 367 7 73 5 6
218017: 9 508 6 8 3 10 5 1 8 7 1 8
304646586: 2 4 1 5 886 8 5 7 8 9 89
628528278: 94 7 6 861 766
1035489599: 7 595 63 4 273 5 6 4 35
2606418: 7 432 86 4 837 1
3559196635: 3 8 8 2 6 9 9 1 1 966 3 5
67687032: 4 36 1 1 5 4 829 2 6 9 8 7
165345: 6 1 644 97 7 219
72759: 28 22 596 7 6
3356540791: 6 1 86 2 91 7 3 42 198 4
1426951: 8 3 7 3 63 6 9 4 9 1 951 1
745148376: 5 81 157 657 84
72389658061: 722 9 3 6 1 1 6 5 1 66 61
8191368: 9 5 302 40 1 12 9 6
161160210: 87 12 8 9 536 3 4 6
11225007: 14 401 741 3 9
3633: 40 68 948 78 68 9 3
1178: 79 279 58 754 8
1525415041: 37 4 1 5 906 3 5 8 9 8 4 3
290180: 18 217 423 9 49
800368: 750 6 497 63 5
137702873738: 12 35 514 398 90 57 6
2389657539: 5 367 2 8 87 32 749 1 3
15525: 8 214 13 9
381151400: 295 23 4 89 190 70
9407440: 9 9 900 89 14 2 314
43209085: 48 495 7 202 9 679
70535713743: 7 1 24 8 13 6 5 7 11 9
83729: 45 4 465 1 28 1
7371648: 808 419 2 26 9 972 6
531779040: 9 8 288 195 557
628988980: 27 760 8 7 8 9 21 2 33 4
109237369: 6 38 7 7 4 7 556 6 1 5 4 5
15447348: 178 7 5 6 343 6
2382536010: 63 84 8 5 8 403 10
3149079: 5 766 1 822
56274036: 8 21 825 6 406
500198: 88 378 9 25 198
232560: 9 5 48 51
1566: 29 183 61 40 5 1
34675100275: 4 7 5 52 64 64 9 8 37 9
49538475: 22 30 510 3 75
1778977: 2 54 27 370 9 7 32 3 5 7
256583641: 5 7 7 9 5 591 89 1 641
6610: 1 182 35 212 28
195724: 35 2 480 11 29 329 6
3582340: 11 476 76 9 916
13328649: 8 6 5 38 4 66 8 780 3 4 9
34929378: 9 43 1 62 4 9 737
721920: 14 738 960
2719694: 6 440 5 791 96 1
380547: 2 9 4 9 2 757 2 90 4 35 3
254888388: 250 909 87 33 361 7 6
14052058: 839 12 869 2 61 19
207720: 5 577 72
3778432: 2 59 35 1 2 56 61 4 1 88
82363922: 5 9 182 1 8 989 694 4 1
38529: 929 1 26 8 4 9
1048356: 2 854 5 6 102
46036298: 55 837 7 5 96
96309360: 1 591 56 5 6 97
713076000: 78 70 1 653 8 25
72047: 7 64 965 79 3
29162428: 9 7 611 8 35 45 66
3256: 767 4 15 80 2 91 1 1
18738: 2 7 4 82 8 7 2 9 293 9 3 3
108218: 349 310 9 19
94420385: 60 9 9 3 1 1 45 4 5 3 8
14900511360: 3 941 437 43 840
103687: 5 93 943 78 8 92 3
35714: 8 476 9 9 879 554
5249: 9 4 2 519 60 8 313
93493: 471 5 92 38 507
6088434: 998 61 77 356 201
804104703: 528 9 6 271 7 49 57 3
2655475040: 57 477 8 462 68 3
28148: 59 8 7 1 6 2
41936003: 4 8 42 9 8 7 1 5 935 68
249637: 5 2 239 63 7
4230464: 34 2 546 689 4 1
71878680: 760 80 6 1 236 7 45 8
9576: 78 2 93 3 38
26054280: 628 5 6 7 980
38549406: 88 65 313 43 42
3858244: 7 55 74 37 804
282194985: 70 1 32 4 37 5 85
281341314: 287 2 5 829 98 72
270309: 83 549 85 13 29
37002: 614 3 4 2 7 6 337 7
97277: 560 6 1 4 443 7 68 28
410204: 40 62 9 391 4
44618004: 6 166 703 41 9
9221169: 1 44 166 22 323 8 7 41
990: 6 5 3 41 1 863 8 1 6 58 1
12141: 12 59 171
2211627792: 7 9 5 2 4 8 93 325 7 4 8 6
1810: 33 54 28
7916373: 5 3 2 338 1 399 5 6 161
3724: 3 1 72 4
2945043428: 9 3 3 40 8 9 8 756 4 8 5 9
538204665098: 498 87 92 46 650 9 8
16165: 4 2 61 232 157
4561621424015: 91 1 595 834 7 336 6
197196: 19 6 750 90 356
288814688: 7 1 90 5 23 69 44 755 8
4082: 91 4 9 73 733
15440733: 367 5 699 5 7 58 7 7 3
67321: 23 78 95 22 7
403877820: 85 602 6 46 2 6 355
14375914: 7 8 75 67 2 149 8 392 2
11903425657663: 247 47 8 77 7 489 389
970: 1 2 81
2096: 32 8 6 95 30
188039: 1 5 872 43 557
68393082: 683 80 6 37 87 82
2603531: 2 465 4 476 9 2 2 79 1 7
26929768603: 7 8 8 6 70 97 8 2 9 6 35 3
5098291: 501 8 3 7 6 5 93 355 1
43362: 4 39 5 4 33 6
2194015117: 5 12 36 4 4 4 151 20
421625: 138 66 56 1 46 4 77
79584: 3 52 4 482 1 2 254 2 8 3
51496: 86 12 83 447 82
181692: 4 77 6 6 98
17312103623: 51 71 64 5 4 278 5 478
8383226: 7 554 45 5 3 42 918 50
110029590: 5 7 80 1 335 954
1140135705562: 2 3 2 7 4 7 6 52 9 364 2 7
200533206: 4 59 5 99 7 7 10 7 3 5 8 6
3987100064643: 4 256 2 30 42 656 34
559083: 3 52 81 9 81
200: 6 1 18 8
114098823: 8 3 404 2 6 9 4 114 669
2500926: 25 3 986 634 5
2000: 5 100 4
409905025: 12 53 65 825 97
33027482: 5 6 30 273 1 76 5
157428488: 9 80 229 1 432 2 6 64 8
58293021891: 607 3 5 5 2 15 959 706
58809: 57 860 2 9 935
59640: 4 5 2 695 81 105
22863176507: 46 9 93 968 1 551 141
3041: 6 5 41
1359960569: 4 7 61 1 8 57 41 20 568
23055: 261 88 7 71 9
181720713: 539 629 67 8 97
1896250752: 61 2 208 6 1 1 5 1 745 7
2673309912: 8 108 17 42 8 1 7 9 182
39811688: 995 29 4 80 5
105771: 8 1 6 22 30 6 9 29 842 7
2073038730: 95 7 12 29 39 70
21728414730: 95 4 953 1 5 9 6 7 25 6 4
53048: 5 19 65 587 15 790
3297: 4 9 32 7 2 5 9 3 6 321 6
3200805752: 5 6 909 662 406 4
12652964: 9 2 213 5 913 1 248 6 4
91958709: 676 167 8 17
26204955: 15 1 6 5 6 7 9 2 60 154 7
267156820305: 434 158 822 44 5 549
260136: 8 9 4 5 5 49 9
3149512960: 135 58 76 610 88 4
7308659: 400 761 3 377 8 7 1 36
265080: 1 7 336 77 20 10
28529: 2 471 635 5 5 3 1 818 8
43284: 76 5 4 522 9 5 5 5
4115: 3 672 695 3 5
62027728598: 77 5 26 5 385 10 23 7 2
5708751227: 253 2 665 27 4 5 1 827
97146778: 942 4 4 284 2 676 9 9
285790478551499: 646 790 7 9 8 1 8 9 37 8
35899: 4 7 641 2 3
371250954: 6 2 76 13 5 5 455 528 2
171506263050: 75 1 5 7 8 2 647 1 448 9
7200: 96 5 5 3
432961203: 7 9 7 415 54 92 3 3
29589051: 5 422 5 7 56 697 4 3 3 1
18462: 9 69 7 599 5 3 5 1 4 6 1 3
80124620: 80 12 4 619 1
365168841: 5 2 14 9 9 9 4 8 1 4 8 841
848065795: 95 113 79 118 677
125903415: 82 66 2 9 41 5 407
642075660000: 58 2 60 750 79 3 519
128544494: 2 6 6 251 5 8 15 1 4 5 26
81: 50 14 8 8 3
2191919: 263 690 23 15 4
1175127: 65 4 77 37 547 57 699
174240: 277 1 4 24 3 46 7 6 30
35866999: 712 3 5 3 5 5 68 3 9 99
1753: 6 73 22 64 793 5 431
356132: 91 33 62 54 46
14699468: 1 6 93 439 6 7 3 20 968
4146: 1 2 805 5 88 5 10 3
250950336: 27 1 26 96 371
36829515843: 2 5 2 2 8 8 8 755 4 37 8 3
2087702599: 8 26 760 4 6 2 572 27
1303172640: 17 19 7 16 1 784 365 2
52452167: 4 308 1 8 50 846 1 166
8035319: 51 232 7 4 97 3 8 5 987
12216: 97 61 2 4 378
12041593632177: 7 964 56 9 4 93 4 270
54372975: 2 6 6 6 7 447 61 3 8 1 6 8
7118010: 198 9 77 84 66 41
9604728: 1 6 4 1 323 95 51 4 6
3664488: 3 2 9 5 98 5 3 779 8 2 2 4
10510080: 85 46 7 4 96
30035992: 67 138 58 1 89 56
12109554: 8 5 2 1 9 2 6 68 7 390 9 6
42668283: 282 8 419 238 4 56 9 4
3073: 9 6 55 5 319 1 9 7 252
2847588: 89 44 48 2 718
331718625: 805 67 78 5 457 575 9
1131788: 1 1 28 83 487
976: 5 4 9 64 4
8490960281479: 8 490 9 60 281 479
199074: 15 4 794 5 55 765 310
2668845915: 2 8 416 26 707 327 99
1071: 8 1 7 47 988 17
179608319782: 2 442 3 4 7 203 97 82
14568: 543 58 6 8 3
65201: 16 39 20 7 97 5
3677695041908: 459 607 26 6 45 22 3 5
125599719: 712 70 45 49 8 25 7
8883: 12 41 5 1 426 284 4 7 9
4660962: 8 8 320 6 7 61 37 8 2 41
26998: 7 1 830 4 6 2 4 8 1 5 78 3
510670: 829 616 6
12393: 37 4 8 932 5 747 7 262
159096: 1 574 5 289 624 6 7
1478: 869 539 66 4
759537: 518 10 6 288 4 7 33 9
5263168: 3 289 4 6 2 4 8
104011572: 619 4 462 4 42
731449125: 231 9 7 3 439 5 99
182484252: 2 740 3 5 685 5 5 8 3 9 4
78846: 3 2 41 2 4 1 68 74 6 5 6
1572: 4 381 3 5 4
333247970: 928 95 6 5 630 20
75132300: 80 646 6 49 4 88 12 1
9834: 2 4 47 97 62 409 1
4938765: 883 2 1 5 559
1548777315236: 6 88 9 5 4 732 809 4
483: 61 14 403 2 3
1760724: 6 305 6 959
193285026: 1 5 7 67 2 49 4 3 8 1 29
563811395: 1 1 6 264 571 9 5
1567808: 6 11 36 829 2 544
4958217: 6 891 7 745 510
5617976: 1 4 4 1 179 76
538484700: 7 19 5 9 1 605 5 38 86 5
183189779102: 7 1 5 61 1 2 4 7 981 4 6 2
63183495: 2 807 9 2 7 5 4 5 2 6 6 95
153065039: 672 469 419 7 4 5 97 9
65688: 6 9 2 92 42
4774867: 9 82 647 5 1
8640244907: 9 80 5 6 61 2 4 4 9 2 9
47576754: 177 4 2 3 2 123 78 12 9
655503408: 560 9 5 68 18 933
58457016: 7 7 8 2 2 7 4 2 8 64 586 9
115026014: 639 18 600 9 5
25337188: 3 8 8 2 10 1 889 902 8
1829: 18 5 931 808 1
1093456: 44 8 312 4 751
3848605: 8 60 8 8 605
779: 6 681 1 10 76 5
11024031: 706 2 819 360 19
1995966176: 1 8 6 943 788 4 661
729325241: 7 2 1 8 2 3 1 9 4 9 3 41
2087295: 68 4 307 515 7
324728: 6 9 43 692 62 4 389 1 8
1411187: 770 4 24 353 19
756456: 1 258 4 2 1 7 6 51 36 6
10546140: 72 479 2 145 66
747622289: 56 1 78 57 11 3 70 1 28
154318358: 9 6 9 8 2 6 3 6 6 6 425 7
9540564: 20 692 461 993 562
1596727650724: 997 954 78 4 681 4
283932: 9 2 3 64 42 62 33
688226956: 96 2 318 7 956
233645: 7 8 6 528 3 7 9 1 775 5 8
3361664212228: 35 7 3 8 9 6 8 8 3 7 604 7
101782: 2 365 2 43 3
2220: 4 76 2 5 5 2 79 435 1 56
1629: 8 1 2 3 6
64811754: 4 81 2 117 54
690: 46 4 4 562 71
296670: 5 45 28 77 899
1992844: 465 8 9 277 9 4 7 59 1
18767: 67 14 2 6 1
23172241: 38 62 6 233 8
227350319: 768 8 6 37 6 5 7 39 8
65: 5 32 7 18 3
255964: 61 493 72 93 356
94321509: 94 321 509
231572184: 836 5 554 98 86
1810868: 1 5 3 10 868
2375: 324 7 2 61 44
24885: 71 881 5 217 5
1247: 84 70 5 645 443
116644617: 703 2 66 419 8 7 3
794: 3 52 436 202
212912504: 895 8 87 1 384 25 56
523217705: 969 845 2 71 9 32
1868: 68 7 384 8 4
1128: 76 3 5 886 9
387599: 29 9 66 9 99
9499: 337 2 7 1 4
4580010: 455 2 8 629 890
102314604: 96 24 7 39 5 737 47 28
1192992480: 6 5 5 4 34 43 4 85 4 3 5 8
31540903265: 76 415 903 193 72
634801: 9 2 690 1
36295575: 49 50 9 94 813
26294408: 9 2 87 87 7 1 495 4 8 3 5
5965770: 32 35 42 265 8 90
4314150275: 3 1 3 4 6 8 148 388 3
9366968768: 9 4 90 8 9 60 687 66
183862716: 424 406 5 89 632 12
58755208796: 5 8 7 55 1 99 9 7 9 6
270309109824: 5 29 8 9 9 34 4 767 248
1020392: 711 305 76 339 1 23 2
17886: 4 7 3 164 86
89977: 8 1 93 13 664
18537: 5 35 9 5 98 15
985: 72 2 911
649173616: 4 7 86 145 6 3 9 28 169
351: 4 9 2 247 17 30 1 3 8 8
1492: 690 15 787
962649: 954 8 3 9 8 3 4 7 6 1 1 9
1808352: 4 8 8 483 39
1415985480: 1 757 8 565 5 9 364
902836: 48 28 187
53913600: 3 4 4 2 688 4 360 52
11373431: 418 3 9 9 6 431
95091817588: 4 3 474 33 15 7 363 2
330876: 542 1 294 21 456 252
1480836: 14 833 633 8 35
79262534: 251 627 63 5 29
622058951: 454 161 7 63 55 3 951
2226: 2 8 4 9 1 4 3 2 639 2 3
264829: 7 1 5 14 799 55 2 7 9 96
235060978: 6 1 29 4 8 331 13 866
1104948901631: 3 234 787 2 88 2 16 2 9
1915733: 3 983 35 642 5
738900: 41 2 3 7 78 3 656 4 5 60
34792531: 69 585 5 24 7
9843246: 50 3 8 10 9 4 2 5 7 7 7 9
130585: 4 24 919 297 88 5
31415994: 3 8 5 43 17 4 8 8 7 89 5
1888165: 743 5 36 1 4 6 6 8 3 3 5
332332: 49 1 119 69 277 28
2541948: 5 506 5 34 79 57 91
5672925: 6 378 2 833 65 3
8965662209: 2 539 2 2 83 2 194 7 8
484709075: 8 132 85 94 54
133850216: 410 19 78 4 80 4 298
7856274: 8 52 5 5 4 8 1 4 93 1 7 1
5181660: 69 6 104 51 660
3680381: 4 6 3 5 3 307 80 3 76 5
3489172525: 8 81 995 46 86 305
258968211264: 823 46 18 6 3 84 646 7
3527203: 61 938 598 7 61
1116643: 9 551 997 2 3
41300: 33 3 8 69 8 1 9 7 595 2
71601827: 638 7 9 8 4 6 2 2 30 876
120: 9 11 21
56621: 7 7 21 55 6 20
88843640: 2 3 5 42 21 67 877 32
3588455952: 2 660 42 69 2 6 1 43 74
7000920: 3 747 27 880 9
45208150452: 62 3 785 886 452
1166883432: 1 8 642 85 4 66 52
29193454: 2 2 4 4 35 2 5 558 74 5 5
1793933: 251 712 177 504 3
1627005: 3 23 7 214 25 7 559 9 6
8058301365155: 2 818 2 543 907 3 156
77806: 3 8 935 1 68 1 7 76 1 58
1206: 2 4 29 83 6
69883979378: 4 328 7 8 3 256 7 8 9 8
39591121104: 7 6 9 80 6 5 23 9 3 3 57 8
1458662: 90 56 3 2 4 577 9 9 4 3 2
946590: 57 461 5 1 6 67 6
34760252192: 3 3 62 1 75 7 1 4 7 87 6
169212803: 10 88 273 461 703
5975856: 8 4 1 1 3 92 4 42 6 159
53581: 16 49 18 92 59 835 1
634284006: 4 193 2 70 72 2 3
770: 17 20 4 8 5 51 49 5
1230460: 4 787 8 7 4 55
7714000: 29 95 4 700
401184: 5 691 679 45 3 32
1374464: 47 3 8 3 654 1 9 3 2 944
1247: 7 84 28 1 630
516849: 511 5 8 33 3 11 2
26278489293: 93 57 4 109 3 6 98 99 7
16583292: 7 7 8 8 8 5 3 182 6 33 4
1691940: 2 4 2 91 9 40
21656: 8 42 62 1 824
129896760492: 4 5 2 6 781 6 67 7 4 9 1 2
1328683: 5 86 898 681 2
127431241: 121 4 8 78 51 329
2849218639: 9 13 211 8 39 4 305 13
323612: 938 43 8 940
12224700: 65 659 508 7 282
2521425784: 1 7 826 8 237 39 9 8 23
312973: 4 18 9 2 9 73
14841794: 436 3 8 54 21
56606953: 89 10 31 57 39 214
2357974: 108 903 4 583 322
11831972301: 135 7 8 465 6 50 9 89
3157607: 2 252 7 2 6 2 26 39 3 8 3
103650632: 7 754 869 97 5 6 632
8536428: 218 5 5 4 65 1 4 2 4 4 9 1
721: 7 6 10 29 560
7806474452: 344 2 90 68 9 41 2 4 28
57400851: 308 9 6 394 5 5 8 1 4 1
2636: 848 24 4 3 6
46656: 3 6 7 5 8 191 1 7 8 64
25697659: 473 25 516 8 59
1572227928: 3 2 5 5 2 6 7 4 393 6 28 2
1673: 5 233 19 6 30 40 54 7
28247259: 8 8 2 639 37 8 72 1 15 4
11580161805: 4 5 2 6 1 4 2 2 986 7 1 9
33458532: 1 548 5 61 29
4279405: 73 585 37 65
32242849: 322 38 4 818 31
1184807370: 197 368 3 4 92 895 6
5422401655: 979 6 757 923 941
3037886777: 2 9 54 56 7 5 7 2 26 3 79
3247485595: 32 468 69 616 595
12160274: 602 837 64 234 182 7
40672828: 730 9 68 504 28
415000056: 74 701 9 22 5 80 4 2
55225476873: 685 1 7 806 9 765 873
1721520: 456 6 78 4 797
1454758: 16 96 5 944 4 50
476343: 4 466 6 3 9 2 5 1 14 9 6 9
6825448: 94 2 896 860 44 17 8

9
day7/input_test.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

50
day7/task.txt Normal file
View File

@@ -0,0 +1,50 @@
--- Day 7: Bridge Repair ---
The Historians take you to a familiar rope bridge over a river in the middle of a jungle. The Chief isn't on this side of the bridge, though; maybe he's on the other side?
When you go to cross the bridge, you notice a group of engineers trying to repair it. (Apparently, it breaks pretty frequently.) You won't be able to cross until it's fixed.
You ask how long it'll take; the engineers tell you that it only needs final calibrations, but some young elephants were playing nearby and stole all the operators from their calibration equations! They could finish the calibrations if only someone could determine which test values could possibly be produced by placing any combination of operators into their calibration equations (your puzzle input).
For example:
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
Each line represents a single equation. The test value appears before the colon on each line; it is your job to determine whether the remaining numbers can be combined with operators to produce the test value.
Operators are always evaluated left-to-right, not according to precedence rules. Furthermore, numbers in the equations cannot be rearranged. Glancing into the jungle, you can see elephants holding two different types of operators: add (+) and multiply (*).
Only three of the above equations can be made true by inserting operators:
190: 10 19 has only one position that accepts an operator: between 10 and 19. Choosing + would give 29, but choosing * would give the test value (10 * 19 = 190).
3267: 81 40 27 has two positions for operators. Of the four possible configurations of the operators, two cause the right side to match the test value: 81 + 40 * 27 and 81 * 40 + 27 both equal 3267 (when evaluated left-to-right)!
292: 11 6 16 20 can be solved in exactly one way: 11 + 6 * 16 + 20.
The engineers just need the total calibration result, which is the sum of the test values from just the equations that could possibly be true. In the above example, the sum of the test values for the three equations listed above is 3749.
Determine which equations could possibly be true. What is their total calibration result?
Your puzzle answer was 4555081946288.
The first half of this puzzle is complete! It provides one gold star: *
--- Part Two ---
The engineers seem concerned; the total calibration result you gave them is nowhere close to being within safety tolerances. Just then, you spot your mistake: some well-hidden elephants are holding a third type of operator.
The concatenation operator (||) combines the digits from its left and right inputs into a single number. For example, 12 || 345 would become 12345. All operators are still evaluated left-to-right.
Now, apart from the three equations that could be made true using only addition and multiplication, the above example has three more equations that can be made true by inserting operators:
156: 15 6 can be made true through a single concatenation: 15 || 6 = 156.
7290: 6 8 6 15 can be made true using 6 * 8 || 6 * 15.
192: 17 8 14 can be made true using 17 || 8 + 14.
Adding up all six test values (the three that could be made before using only + and * plus the new three that can now be made by also using ||) produces the new total calibration result of 11387.
Using your new knowledge of elephant hiding spots, determine which equations could possibly be true. What is their total calibration result?