-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathday07.py
955 lines (931 loc) · 30.5 KB
/
day07.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
import marimo
__generated_with = "0.9.26"
app = marimo.App(width="medium")
@app.cell
def __():
data = """224636607: 220 4 6 366 10
950489: 405 8 26 9 913 4
225856996: 8 6 1 4 464 4 9 98
78671053901: 96 686 9 904 2 1 90 9
755: 8 1 84 6 46 75 76
285303239298899: 7 858 38 39 8 524 475
70488839: 9 61 486 7 21 1 27 2 5 6
86899866: 60 4 7 412 326
691713: 2 29 51 89 967 6 2 951
645275301545: 648 517 8 91 995
14053189590: 5 6 1 8 8 61 3 7 87 482 5
3589: 183 63 14 7 80 58
100391934: 2 79 1 7 4 3 4 4 2 2 4 32
1682: 71 621 989 1
666192131: 73 9 5 7 1 15 5 6 1 3 2
98926058: 5 5 812 601 5 1 68 946
1377610447: 8 172 1 5 4 7 1 999 4 47
612491901: 7 465 56 9 5 4 4 6 7 861
338358: 7 55 3 872 22
73538435: 4 4 707 8 13 35
387979562461: 9 43 979 49 6 1 21 3 64
82614: 64 4 6 2 53 1 8 1 9 281 2
2328180985: 878 92 5 8 2 6 30 981 4
1138081075: 223 4 61 3 2 28 2 1 5 5
62276: 856 58 169 57 537 8
498: 2 2 3 6 7 5 5 2 5 8 156 6
87130161055: 612 607 65 8 19 35 67
237004: 5 7 90 5 96 588 9
1810642828: 643 6 6 52 880 9 599 4
1381662831: 75 93 9 23 180 9 9 1 20
101262451032: 3 2 750 19 64 25 172 6
448380338: 87 3 3 78 94 5 338
248768: 1 823 15 293 9 26
5644231457041: 931 5 758 594 102 1
1417440: 3 7 842 7 98 4 3 7 47 8
8303: 205 625 1
99645248: 3 947 35 210 248
7201152: 7 7 4 3 2 961 9 8 94 7
187850360: 35 1 44 338 53 446
9467325010: 7 5 39 97 5 14 715
183776226012: 42 415 415 5 48 969
320165: 9 98 362 881
3156240054: 29 45 650 9 7 151 1 4
742934: 736 60 577 56 4
31109452: 410 5 833 7 9 2 6 5 3 19
1155862: 202 572 1 38 2 2 1 12 8
260587: 2 60 5 82 5
34142051: 708 3 480 82 5 579 7 6
322192004: 50 6 8 76 4 1 45 4 7 92
817649813922: 2 3 27 1 5 8 878 2 7 40 8
7172328: 7 707 1 2 30 269 61
2515077: 4 404 618 9 81 9 3
37665626: 40 3 190 2 826 8 4 8 4 2
27111875394: 4 98 8 55 1 75 7 9 64 7
926786: 8 84 67 8 6
7200234: 3 9 2 4 6 5 7 1 91 10 316
12294273421: 8 8 3 3 4 14 2 883 8 99 4
158076246: 46 9 3 46 47 8 87 46 6 7
231: 35 3 5 7 2
118624: 624 81 35 1 578 90 4
4879082586: 8 6 83 7 5 47 6 1 2 583 3
169558: 21 141 4 178 29 8 2
546110: 2 42 7 1 36 875 7 5 2 96
807485: 807 477 5
2452362: 823 8 4 642 73
1638297: 4 6 3 69 7 99 832 2 80 7
10068251: 27 88 8 73 9 4 5 5 5 6 2
895: 2 9 82 780 15
2026671030112: 367 1 5 8 439 1 3 4 4 23
35089849: 37 313 88 86 2 986
994280112: 8 1 554 584 4 21 7 18 8
1674750: 7 22 14 4 186 77
535508: 5 7 46 970 68
46154989: 9 3 3 98 917 40 69 920
22950781: 763 2 6 5 750 31
25595175838: 28 69 736 9 991 454
653025: 912 1 179 8 4 1
12601508190: 945 4 6 76 91 1 83 7 8 4
308468366: 73 7 6 7 94 5 4 804 366
7690746999533: 6 6 8 179 6 699 95 34
1545131: 7 4 6 2 6 85 1 3 5 7 7 161
847688: 84 6 795 9 886
1027192: 572 6 844 80 1 3 952 1
2065477213: 45 1 6 813 23 746 5 8 4
1555262460: 86 75 966 14 9 1 5 7
11251272480: 310 953 62 53 35 2 6 4
4490155742: 5 16 213 61 347 1 33
3765838372: 9 468 82 877 372
11960242: 1 4 435 545 2 24 2
867948: 7 8 951 5 948 3 53 12
4252: 52 5 7 70 7 3 1 3 3 8 4 8
17528157772: 243 404 42 8 5 1 9 772
12524864294: 5 25 248 63 9 2 1 96
21378359: 305 3 1 7 362
16068530: 5 74 593 343 9
1479884846: 5 9 37 9 44 407 4 7 7
148374288: 211 7 974 131 48
719422128: 8 7 7 5 61 12 6 26 9 9 9 8
712974: 99 96 5 5 58 3
4680793600: 7 1 947 1 706 7 6 5 9 2 8
174212239298: 2 3 789 8 86 6 3 40 9 9
104399533282: 4 3 9 5 53 5 6 272 49 1
15383675: 577 961 27 34 940
343878: 94 6 5 4 40 74 342 9 8 6
147092140959: 4 25 5 18 4 3 571 218 9
5308: 35 1 13 9 774 237 81 4
321539046: 7 4 73 11 11 143 543
1324: 2 709 3 90 24 493 3
42297: 92 2 234 49 448
123534949113: 433 3 951 49 113
14469840: 4 532 59 8 24 7 7 4 27 4
1672: 7 87 14 950 99
342225: 2 14 28 61 9 9 5
666483267: 7 22 923 1 1 6 70 2 67
82579022182: 8 785 94 22 1 8 4
12714529803: 3 47 3 8 500 4 98 7 59 9
120860: 821 3 3 49 26
1006827866: 34 614 410 473 65
2522: 69 2 3 6 38
2062685184: 86 506 896 49 71
5497711: 916 27 5 6 61
4843144705533: 5 4 2 978 173 85 5 30 4
1583583985017: 9 1 744 7 6 132 83 4 5 6
40723: 3 300 772 3
469581507: 59 2 3 284 931
108864: 393 6 96 27
7840: 144 9 9 191 5
2588079412985: 96 72 6 26 6 8 22 8 6 3 5
174869188: 35 677 738 4 83
5344774: 73 244 3 91 3
38203766655: 47 75 470 7 8 8 1 70 85
4042729: 989 21 4 4 3 8 29
37005: 52 4 508 1 8 8 795 50
53784: 905 41 2 9 1 236 5 5 1 9
53795571351: 12 5 580 77 742 7 4 1
15937: 5 3 9 3 4
1088: 6 1 671 98 252 61
489756124: 6 5 949 634 74
444673044: 9 2 7 2 6 4 2 5 5 51 699
2783730: 2 2 5 792 44 81 23 29
1243940184956: 710 73 841 24 953
2950073910: 331 35 7 774 47
1292494659: 7 27 518 8 7 11 26 4 9 3
28578661: 870 8 5 328 1 8
205427: 5 19 1 8 60 7 246 7 7 3 1
684484466: 44 434 5 915 313 416
182472960: 82 80 19 244 6
2270970: 864 93 791 3 3
69817106832: 68 62 90 793 5 92 2
4412828: 4 1 455 6 6 878
1786523466: 4 1 8 56 87 8 8 74 7 573
3808294456: 5 295 5 4 799 294 45 6
212980: 43 7 166 3 38 7 4
109301335: 8 6 6 2 3 5 3 2 4 627 187
772: 8 3 58 13 5
168868435373: 7 8 9 2 7 8 68 435 3 63 7
130758226032: 5 7 6 70 295 1 446 29
104615009: 24 5 50 2 427 9
761999196: 62 699 99 919 4
8392165824: 5 873 5 1 53 19 1 7 64 3
10303415: 64 50 9 91 336 7 9 636
142993748: 53 7 772 5 45 8 556
212: 3 6 8 37 2 6 15 7 2 4 49 3
3458941513910: 720 6 3 676 8 7 139 10
7017075: 973 9 72 498 7 8
267150: 7 18 62 9 6
337017: 6 7 556 3 6 7 1 8 1 49 64
8587952062607: 1 407 8 609 9 387 61
118731979452: 21 8 64 4 8 9 197 9 454
2384778921: 3 6 426 253 9 21
184084160: 2 34 685 26 152
672302: 1 42 9 1 9 6 4 8 830 2 2 1
34314: 9 4 2 692 21
42975: 863 48 44 9 5
418300198: 83 297 755 54 27
1361693900: 1 297 8 1 4 86 2 5 665
59105280: 8 39 32 148 40
2387431: 6 51 924 3 647 1
1248447503: 6 4 610 5 6 8 592 83 15
13146127111: 8 83 2 582 3 9 8 8 9 4 1 2
15317144898469: 524 37 788 3 79 8 469
805511: 73 3 7 4 968 149 3 8 9
1702569: 3 741 9 454 67
7054236: 2 84 3 42 651
147968: 2 6 5 15 7 939 21 4 32
49268536: 81 98 1 6 128 13 6 55
831652: 816 15 650
1768330580: 766 81 95 1 65 3 78
744390: 6 9 3 919 5
22928: 301 41 67 6 8
1214899: 69 176 65 422 9
591: 7 78 1 7 37
83953549142: 8 3 9 535 29 13 7 141
3708353016: 12 966 3 6 2 5 533 6 2 3
3389292904: 34 82 927 84 105 4
1264: 36 271 7 4 8
5373: 54 91 45 3 411
5452771: 63 6 6 832 6 4 6 6 9 7 7 4
7312: 3 6 802 21 73
19505742: 3 9 2 6 646 2 7 507
12130845: 943 268 1 48 93
165326582: 577 1 13 8 4 110 51 2
359953: 7 5 99 53
1409010657: 528 2 954 701 657
137314425: 73 88 2 54 867 993 95
1395007087713: 96 82 2 945 55 99 886
169406: 757 9 4 110 2 6
25452095: 6 52 3 808 94
4281342: 44 8 91 4 4 91 8 1 8 5 7 5
12134: 4 58 48 98 903
32045353200: 467 98 300 778 3
201969: 59 65 97 3 17 9 11 3 3
320279209: 2 629 71 4 507 210
90729: 83 7 732
9215808: 87 5 44 99 192
23275792: 3 954 2 903 7 9
4654: 738 6 223 6
405655610: 9 31 7 6 755 5 8 46 2 5
17761196: 17 7 6 10 5 4 8 52 58 24
19406940: 54 8 56 29 57 49 690
164914499: 60 1 9 8 78 1 761 689 4
2203302613: 2 11 7 3 852 7 9 3 9 6 1 3
9272481033556: 9 74 7 8 1 5 57 7 9 6 61
50961083339017: 47 186 4 7 5 3 9 967 3 8
6651193: 664 9 54 55 49 61 1
21181580655: 302 59 4 70 657
28041: 5 8 70 8 33
643587: 753 68 2 782
366416: 595 7 3 63 3 78 7 7 1
215072: 5 2 383 7 4 8
24606: 583 42 13 95 15
558882: 7 977 7 7 2
56849: 98 58 9
491: 85 20 388
5361334: 97 2 779 6 35 3 337 1
156832840: 2 61 1 388 6 43
258180: 77 278 23 683 6
6449644696154: 55 9 4 9 6 44 69 6 154
49422181986: 20 2 38 4 407 6 91 84
813630346: 807 9 57 12 4 8 3 3 3 46
252941: 25 29 32 1 7 1
7533731622: 683 3 995 525 7
11654459: 20 7 5 7 2 891 2 3 9 5 1 1
1278933: 402 7 380 3 34 4
4965955: 177 6 668 7 43
479972750: 47 92 48 724 733 7 4 6
17224355: 7 315 60 80 91 18 95
902: 75 83 741
8123777432951: 805 9 3 21 6 3 6 1 8 9 4 9
150386292: 603 843 9 7 481 62 9 2
132913: 5 68 234
4993017132: 101 2 72 341 6 910 6 2
3236366: 5 1 7 1 1 4 8 8 1 9 968 6
242: 21 3 2
599466: 14 6 1 544 3 950 8 1 8
12374400: 3 345 7 8 2 9 7 3 5 6 40 1
626726778874: 195 8 5 2 8 9 4 7 16 2 5 2
994213200: 529 400 6 1 313
33092950: 80 518 411 52
683851768: 806 76 3 84 929 2 2 3 4
98865035345: 9 4 8 615 1 6 5 5 3 5 3 47
662608707: 4 7 37 8 1 458 8 795 5 5
990320: 54 91 744 9 92 320
46955: 73 7 7 1 547 560 7
137123516686: 3 56 618 9 2 23 679 4
90576: 9 1 9 68 74
265969558: 6 641 786 4 523
3953691: 45 976 4 9 855
463787: 564 180 7 89 275
5170876: 5 8 2 658 3 383 70 106
382835: 9 4 346 726 110
13432: 557 6 9 7 4
138639960: 1 5 86 4 8 42 380
5114: 9 19 277 59 56 3 2 9 2
2524771264: 33 4 5 5 9 4 660 9 63 6 2
903309758: 8 82 325 94 503 5 3 6
2094931: 516 9 5 5 25 1 3 6 7 624
5747: 14 3 1 5 588 76 5 8 2 9
125910022: 162 4 337 5 7 7 5 5 1 9
3664201412: 2 8 5 915 788 5 95 46 2
2979055444: 248 2 49 12 9 665 41 3
2838892138: 9 45 556 70 38 95 5
1552399: 9 190 78 4 9 4 68
3852163: 4 427 4 4 7 558 18 271
12385: 667 9 2 47 332
189704774: 4 6 6 514 4 176 131 5 1
2642810463: 243 577 217 5 5 7
73488130: 449 10 3 16 130
350440: 4 5 9 862 1 5 961 369
15655482577: 3 22 824 92 5 9 5 78 1 7
18846198: 2 4 87 75 708 401 6
25781: 510 22 4 48 53
256056: 5 426 8 7 6 6 2 599 1 2 6
121862: 147 1 7 189 30 29
326909: 193 211 47 8 3 746
638780: 20 8 799 666 86
26238: 7 1 7 242 82
841784: 59 7 141 8 6
284160: 4 4 7 3 8 2 14 50 86 6 2 5
42495492: 1 744 588 947 57
1583338464: 5 17 638 5 4 9 62 8 6 8
61133906: 58 3 133 90 6
44114: 89 2 1 4 1 5 197 6 8 1
17829: 6 37 353 31 4
49649890464: 7 2 7 759 6 9 784 7 8 8 6
14951857356: 7 47 54 8 7 4 2 67 7 356
161404075: 4 203 320 73 3 4 4 111
1665543681: 6 99 2 2 489 92 573
379220402041: 78 90 74 73 20 41
307413623: 5 8 8 890 958 8 915 80
3950928: 359 25 4 440 171
1515946754: 7 709 96 3 36 3 9 192
17182400: 17 181 71 5 685
1074986901: 5 479 4 63 22 901
269592: 904 52 282
69354748: 729 7 59 291 95
325613361: 8 1 3 1 1 295 738 4 40 1
5257: 4 420 837
31654420: 316 540 4 20
661442: 8 643 9 86 98 841
1248597: 4 15 8 949 54 3 7 3
4714546: 981 4 3 9 33 333 4 682
317794580: 88 7 67 77 1 80
649992: 1 6 49 98 5 7
1256904: 6 6 3 759 4 6
9421712: 2 8 5 964 5 590
268860: 129 5 2 497 363
111525721568: 19 652 3 6 1 468 4 9 3 7
15374034866814: 70 8 328 2 254 1 93 9
529100613672: 427 7 22 4 9 177 6 73
74616: 4 1 927 7 8
16016498006: 91 176 497 351 655
20546662: 256 827 8 8 494
303485: 7 97 6 5 29
40539: 37 361 87 69 3
39152291409: 13 898 577 939 3
12970353: 615 74 285 3
11183: 4 848 4 9 1 3 925 3 1
56287072: 78 123 53 4 72 2 1 59
13337202241: 80 68 191 13 2 4 18 5
70420: 879 8 6 94 1
146814: 4 7 3 9 59 5 4 7 7 9 9 6
11865: 87 395 98 597 9 8
2759764217: 2 7 5 9 764 217
98706191910: 124 905 545 1 9 8 145
4893392: 38 42 511 6 56
1699431861: 70 2 3 221 4 4 5 356 1 4
283671552959: 8 855 64 6 856 958
573060435269: 81 400 63 704 69
6444984: 95 34 676
754343663: 7 5 434 1 2 65 5 6
4683: 375 50 69 86 8 43
304668005: 4 464 182 375 7
15617: 9 8 25 1 161
28331479: 456 5 654 19 199
333202992: 8 309 1 7 193 62 3 9 8 4
16449641: 4 848 7 95 649 1 29
2946113044: 12 2 3 63 5 77 956 4 7 7
395902025: 9 67 134 98 52 55 74
5990787: 24 2 341 366 99
1076519538: 89 63 583 394 1 206
22058058: 7 312 6 82 69
183965: 6 99 63 28 5
4296336: 429 6 2 7 3 63
2152246250: 81 9 575 5 590
566756248: 61 1 1 9 8 381 9 61 4 92
1129: 25 985 52 58 9
3378747701: 7 4 6 937 34 4 52 2
825656: 82 556 9 7
51103: 2 3 7 8 3 3 2 4 899 4 755
5833300: 7 3 63 9 2 79 36 336 3 4
231223: 2 228 1 223
26298: 533 1 3 13 47 53 395
644583: 24 40 458 3
7766494: 762 78 775 3 8 6 8 4 8
358667726: 354 4 62 4 740 23 9 1 6
6127: 7 9 665 67 1 8 7 817 2 9
781513517: 781 314 146 53 514
98780097368: 2 69 51 35 90 971 7 8 7
990046964925: 7 70 9 31 42 838 34 4 1
26159245: 7 32 6 8 458 933 16 35
56945580: 5 70 4 9 1 1 8 57 5 8 3
2463552: 6 65 11 8 4 91
2156431: 10 6 9 974 712 2 4 491
2258960497: 7 6 1 3 135 4 32 1 7 1 2 2
96127229: 927 6 9 846 8 13 29
20911005179: 67 39 875 6 47 8 3
52665483: 857 569 3 3 4 9 3 3 2 2 3
1256827786: 9 3 8 9 3 89 45 272 8 6
3844746376: 79 1 1 27 6 3 3 68 8
5048137: 9 28 2 710 9 7 876 54 8
8748: 58 22 7 4 8
315363672: 771 76 69 2 39
57386877: 27 4 158 205 648
846204: 117 508 776 151 4
9231702481: 5 43 17 615 82 8 46 80
513708926: 5 34 962 92 5
5709990: 87 28 4 30 5 78
2437367184980: 4 673 5 2 322 1 9 8 980
429936727121: 9 109 6 621 2 3 99 76
37841184: 88 43 117 6 8
121131661: 3 399 6 78 1 590 6 64
4560: 2 8 9 744 74 7 68 5
518955: 535 97 5
9852363726: 1 91 5 8 1 46 582 6
1373801: 2 418 537 80 1
9322237: 629 3 95 52 457
2015622: 602 62 6 3 42 3
268: 118 36 114
64044399: 80 2 978 10 514 7
496601894250: 701 55 87 329 9 50
1784: 7 5 3 815 39 2
66800: 848 884 38 896 44 44
25056817: 1 8 8 348 817
211035: 17 9 9 311 35
704959882: 1 55 77 53 595 3 80
129592: 62 86 1 130 1 635 2
18363213: 2 87 332 4 54 880 2 1 2
203460462: 8 8 58 2 6 35 91 6 2 9
84023543: 8 1 10 292 354 3
8559468726: 8 55 94 687 24 4
909604230: 75 768 9 4 9 84 41 5 6
52427744: 1 524 277 38 6
71128085: 6 24 79 934 6 5 60 1 4
269424: 7 3 67 96 8 4 483 4 1 36
6329176: 8 5 238 15 6 5 71 8 7
266122701827: 26 746 5 199 1 827
1212162: 4 481 79 77 4 706 31
8371135: 4 970 100 7 43 78 3
11514618: 191 9 6 5 55 63 3
761060160: 62 88 468 536 70 2 36
51901204: 528 45 45 259 901
5122220623: 5 8 4 2 39 1 4 965 5 3 9 2
115457540783: 6 32 428 6 7 406 94 92
65037: 12 5 34 72 37
182161631: 22 414 2 1 624 7
13248078: 4 8 9 1 837 8 626 16 47
131580: 61 9 182 3 60
1062094464: 9 654 382 72 4
1602523830: 890 2 9 1 18 28
6338640: 33 8 70 7 49
50177370234: 4 8 9 3 6 86 2 68 9 1 174
1881073: 393 7 9 7 1 8 8 899 79 4
995521834: 9 4 8 9 7 4 4 18 5 1 1 874
44825176: 926 5 7 22 44
401473748420777: 802 94 74 96 841 5 6 5
14609: 7 7 609
9204424: 2 685 87 22 7
1375935175: 2 87 45 3 3 418 288 77
4154: 445 862 3 206 27
3775060719: 25 755 22 7 76 61 2
12772: 1 751 17 5 1
366088: 9 16 6 682 440 8
1306675152: 540 56 92 619 48 9
8765239418: 20 8 10 602 16 1 7 418
2174: 5 70 29
358573: 3 583 61 58 154
844226: 31 9 20 74 190 622 4
1805472: 21 1 260 48 501 1 8 4 9
1092383282: 866 97 7 60 18
16689467390: 8 1 68 94 7 7 3 611 53 7
677: 87 9 7 3
62989035: 41 992 64 5 3 5
1196592: 62 5 4 1 237 37 7 5 4 3
4121852634: 66 231 8 5 43 698 9
809875: 5 5 3 4 25 698 9 8 79 44
8347: 80 97 1 15 482 60 29
5867331865: 1 192 4 76 1 1 31 865
6834494: 639 44 38 24 670
47320509603: 95 3 74 369 671 1
157194249: 2 3 3 4 8 4 602 8 85 4 4 1
707981: 679 6 22 966 9 9
66920731: 3 9 520 8 157 8 7 89 8 8
3473354660: 6 94 5 3 3 545 67 93 1
28276335397: 9 2 7 1 74 6 9 8 6 91 4 9
357426: 2 3 745 476 424
12344277: 187 205 1 322 85
25989900687: 4 6 54 388 4 842 955 7
360: 6 1 5 2 15
4434693: 1 49 27 9 78 315
246016: 56 274 32 16 3
1556282283: 32 455 81 74 8 70 54
2430388120178: 3 810 388 120 178
9236714: 71 13 576 95 4
47929780: 6 30 587 68 76
2812502: 140 6 4 837 2 5 3 8 164
552460049: 7 6 15 510 257
1359: 5 9 9 82 94 778
193850: 27 37 5 3 92 52 59 147
23674716437852: 8 739 6 6 7 9 1 8 757 1 5
180560556: 87 23 1 6 8 902
4189784: 5 693 2 593 3 6
55546: 1 6 3 3 4 6 5 125 73 431
489731484: 9 1 999 90 6 498 898
1112084235: 7 2 16 5 75 2 31 405
1178224198: 465 3 1 844 198
51368914855776: 47 5 20 41 8 176 4 984
30011298443: 789 771 38 43 1 6 7
161129058: 2 68 548 43 6
4783764: 648 5 348 95 7
3371850793: 5 9 6 446 992 8 7 1 8 9 1
24944009: 15 41 18 400 4 6
159062133: 794 2 2 61 833 302
3826772656: 3 1 48 4 3 36 7 9 439 2
25421425: 600 459 22 6 24
226441191936: 7 1 4 4 80 39 73 1 30 6 1
27185886: 6 31 5 40 4 40 29 294
33058231: 54 734 6 9 4 139
21707116924: 52 344 343 177 412
192759868: 1 9 9 1 396 4 4 5 7 3 58 2
31570878: 80 7 695 36 63 4 8
8125920622: 237 6 5 684 622
2117141: 8 1 2 1 802 93 28 23 66
3550: 7 9 44 71 3
261369: 35 8 93 35 8 4 513 22
3064560: 48 5 99 120 7 5 5 24
4993361: 4 9 918 5 7 99 1
69582527991840: 925 8 993 66 432 745
204454: 297 2 683 4 194 39
235906667: 947 3 355 894 83
283476238: 6 308 973 60 9
1637043: 7 52 800 84 622 417 4
21555658: 8 9 2 62 6 1 9 4 87 9 8 89
72727: 7 6 1 6 930 8 7 80 1 92
898623: 86 27 9 43 9
21864929: 6 4 911 378 551 1
59800: 65 6 1 655 424 52
44650136: 38 1 9 37 2 62 115 6
79802: 9 64 6 5 950 2
660334512: 804 4 9 6 3 9 5 1 5 1 912
125557636: 2 369 884 57 628 7
25743693: 6 5 306 8 324 3 5 6 54 9
7642: 690 8 2 728 4
1981: 33 4 8 43 7 7 3 3 205 3
53393231: 4 4 45 4 3 4 3 8 8 48 26 9
454010: 62 732 5 85 2
101602387: 745 31 53 90 83 9
237057201722: 823 4 6 2 5 5 3 36 1 6 6 1
72999479408: 85 2 7 85 8 96 28 15 8
91675: 7 4 78 5 3 7 1 50 78 99 1
14266: 63 73 6 65 1
6901972182691: 4 686 14 5 721 826 88
347037711: 127 6 5 7 9 1 7 8 53 6 7 4
2158691: 62 73 344 781 1
562716066844: 290 44 441 6 68 44
4740741352500: 564 3 739 7 7 375 4 3
2065103041: 5 8 572 921 98
4515: 604 1 1 273 9 1 5 9 5
89611697280: 155 7 81 195 64 86 1
4076930: 4 2 779 4 3 106 5 93 6
47021: 719 49 8 1 7 3 1 5 3 4 6 3
3420: 6 39 51 2 6
132885185600: 5 59 46 9 9 5 18 5 1 599
53784951750: 25 332 648 95 1 17 50
49922881: 63 2 110 6 744 85 7 1
2604: 1 2 2 8 4 5 1
512838900: 25 3 34 953 7 30 6 401
343338: 75 7 16 5 3 2 29 9 7 2 3 6
2334: 10 7 3 757 504
216: 3 4 6 5 8
110628: 1 46 2 9 9 33 548 26 8 3
1961306: 5 2 8 817 5 4 50 2 60 3 2
116: 5 1 40 3 22
689283899: 195 94 8 283 8 82 99
544644: 6 452 6 614 9 9 2
343152684: 3 240 909 7 68
319: 9 3 5 3 6 201 1 50
2321521437: 5 7 1 3 19 7 5 944 757 8
19845967: 1 4 3 36 95 8 135 967
1740725487: 355 8 5 6 38 2 3 8 7 3 37
6238021594: 89 7 80 215 94
1416427: 45 96 6 428
19686420: 4 4 3 178 3 1 2 2 895 36
81518436: 6 5 3 57 629 6 3 4 1 5 9 4
91057: 901 9 50 1 7
40574: 20 6 7 7 572
440448: 735 599 37 59 87
13955011: 8 8 29 31 501 1
2080826376: 6 4 5 65 7 1 751 4 33 4 6
3368: 421 8 1
10714395264: 84 6 37 90 19 7 8 4 3 4 1
1163362: 48 8 74 9 4 1 886 41 1
1222973737905: 313 569 5 9 39 37 905
8738600: 101 81 554 3 508 92
214712768: 9 497 48 8 765
50428297: 981 7 79 51 5
5854621152: 1 41 38 45 491 8 348
323634: 326 9 99
1132728659: 5 8 803 2 3 9 436 659
2472525: 716 3 1 7 7 2 355 81
9037357617: 755 171 1 7 617
43970037: 493 972 641 26 9 3
11953613: 6 3 7 9 9 48 64 371 1 1 5
797469: 2 86 737 80 723
3446715575: 1 89 4 6 866 1 7 8 6 3 5 5
187550: 1 3 1 40 71 8 1 3 2 51 5 4
10340837: 2 5 4 81 8 6 1 53 7 41 5 7
44529937: 883 2 9 9 559 556
492471888: 8 5 6 11 7 2 1 781 1 7 89
345154821116: 202 4 3 250 93 6 9 427
30644236: 386 41 7 67 705
90090: 152 9 2 6 3 43 24 45
24536232082: 8 17 3 5 5 4 9 4 67 36 8 2
252646: 8 18 1 968
1326061: 41 7 6 530
27287: 7 238 76 85
5848542: 79 37 1 27 1 2
89628: 88 89 4 520 209 2
2844762336787: 929 9 4 1 8 8 49 7 7 78 7
35834262543: 37 96 4 310 262 543
54494622: 2 35 865 34 91 618
6324: 54 99 978
157218612: 57 43 3 8 2 831 7 47 6 4
1686: 860 73 4 33 716
191241547: 47 850 41 22 52
4368351846290: 3 4 6 399 8 55 7 72 6 5 3
122579: 12 257 3 3 3
1491482808: 17 4 14 2 375 342 324
16485366: 5 260 8 67 995 2 93
6169019852: 126 263 36 17 932 1 2
755677: 744 7 109 7 6
213687290880: 27 206 5 7 384 5 4 714
3348926624: 8 5 368 1 8 7 37 25 4
31047156: 9 964 8 9 4 35 1 8 19 7 4
7771856237186: 4 820 38 2 5 6 6 544 78
1323589: 865 2 917 18 5
14307859: 52 8 387 8 611 7 8
5178: 492 6 215 6 31
445800: 3 42 1 1 6 8 8 7 7 897 4 6
1243: 5 9 3 4 5
316883: 86 6 57 19 946 31
3300198: 985 18 9 4 6 31
46187: 38 9 5 888 6 5
8117185: 4 8 3 9 5 5 4 204 3 15 2 5
640: 9 6 1 3 3 7 8 32 3 3 1 1
947896765: 947 8 96 7 65
130994868: 23 8 1 75 33 9 938 6 59
411120: 139 1 4 5 571
9180583821: 68 135 58 361 21 3
5420425: 15 597 79 6 25
798075: 8 1 1 8 675 9
360: 8 3 7 4 1
6506838: 46 340 823 9 598
175560431: 168 475 22 1 3 9 3 391
2223802: 9 6 247 10 60 2 1 800
16141340776008: 2 241 239 79 8 762 84
143592: 7 7 37 5 388 579 5 6 4
7355665: 9 1 8 6 666 597 303 7
459420: 2 75 6 95 31
4494266957: 5 27 36 3 7 6 39 2 3 60
6399525172494: 8 8 30 6 25 8 34 7 98 3 4
66330: 2 76 120 67 5
3200: 29 3 2 4 8 9 36 54 8 2 1
502870368: 8 8 8 4 9 9 6 1 2 884 33
426708: 8 1 8 9 79 512 4 27
23454: 429 401 27 99 945
5650656983: 3 57 7 4 8 936 5 3 5 9 8 7
29909110: 267 3 7 2 129 6 35 2 77
430523: 82 80 6 731 59
169857475987: 163 6 8 574 75 8 1 90 1
17381432585455: 1 991 873 258 5 454
3856376: 10 5 17 32 330 7 716
34804513838: 4 97 64 5 98 549 31 9
3834: 45 46 1 335 9
16081284068081: 54 3 7 1 7 2 2 5 90 86 94
1104989006: 6 5 7 54 2 5 3 98 892 8 6
8795307: 4 5 75 7 5 7 268 307
796978316799: 29 452 1 1 96 950 8 8
175508: 7 5 488 2 43 6 868 2 6 2
14019229928: 3 5 7 4 1 93 9 458 8 3 8
151760887200: 39 541 480 999 5 3
1653882672: 643 46 2 4 68 179 4 39
66202: 669 97 354 9 2 1 944
280931485: 6 16 6 6 981 97 18 85
4405869: 5 879 3 1 6 11 4 79 676
4059639829: 1 35 32 6 78 2 5 2 727
9856351: 64 6 2 47 94 61 35 1
439186: 5 3 67 6 434 6 69 332 5
517143: 1 622 83 1 7 36
165664600: 9 184 645 9 9
94689: 30 28 53 4 85
401750: 308 217 6 7 725 4
13969: 1 7 839 882 8 137
16325040: 6 2 92 96 423 271 48 1
189601272909: 9 3 7 451 2 97 766 97 3
62990101: 7 7 96 860 9 20 537
4049517: 6 5 749 74 1 8 21 44 6 8
150436674: 77 651 18 558 3
18321341: 214 9 1 9 5 6 3 4 7 4 66 5
92514: 87 3 1 520 4
560988: 781 7 140 785 607 8 6
165987817379: 7 51 732 4 5 7 3 58 5 4
4034483568: 7 900 10 378 8 46 8
1497690: 7 20 170 80 35 54
7769135: 853 759 6 2 9
6595797780: 6 1 94 2 5 4 42 3 755 52
119736: 6 269 5 44 72
25552872: 5 6 28 910 1 72
205895844: 4 8 2 40 99 917 42
24932042997: 233 241 2 5 888 5
243855835: 840 144 84 3 24 403
39703: 4 26 93 72 14
641378: 68 5 380 959 382
1377545: 44 148 362 1 6 6 73 2
9302732: 9 749 46 30 5 49 5 93
339950578: 522 1 650 578
9838129210734: 13 2 616 9 7 7 210 734
737128: 9 9 3 8 7 351 2 4 1 3 2 2
55769633: 9 517 586 6 7
12578527099: 6 28 39 1 9 4 7 4 81 79 3
75229642377: 83 58 849 153 9
305136277: 77 55 539 4 73
313570281: 3 868 6 17 6 81
894993: 4 414 7 538 6 293
185669: 3 3 9 31 591 6 44 77
458816: 54 8 1 57 9 9 718 8 67
38131: 4 97 47 7 7 4
352686: 311 21 54 7 5
1300491121: 4 4 12 5 4 32 6 5 1 2 1 1
31826211484: 76 32 1 16 1 9 6 695 6 6
4872699570: 765 94 63 24 1 9 570
12878665799: 6 93 112 420 26 615
4823583425: 693 4 76 624 6 3 3 1 26
496594: 81 932 6 820 9 6 5 62 2
152328: 8 8 952 1 8
20980802: 9 6 992 141 4
380142: 39 92 6 5 77 7 93 3 21 7
720370: 7 112 91 6 8 2
5877933776425: 6 530 2 8 375 287 6 6 9
256058201: 423 3 7 636 7 6
909: 8 192 11 92 3
1048494900: 5 5 18 6 8 99 6 59 925
28744802: 72 9 1 6 174 20 2
6055279032861: 3 3 5 6 8 8 9 790 32 8 6 1
852390: 9 68 870 9 93
9057692: 3 8 4 8 43 477 2 8 8 4 7
101988: 30 872 63 54 88
38880546: 83 7 432 54 8
32558868652: 2 6 7 646 5 2 9 56 8 8 4
6181768: 666 820 52 8 8
1274874369303: 5 46 9 5 55 552 9 30 1
185: 2 7 3 4 10
2276343225: 36 506 45 636 4 49 9
40320: 2 8 6 35 72
10241762487128: 7 704 2 467 8 9 871 26
14512: 4 2 7 30 8 1 8 4 6 6 460 2
5327: 278 384 8 7 1 23
98453376: 7 98 864 228 928
769428228197: 26 3 5 957 3 2 281 9 4 3
52256422: 2 46 128 35 81 7
187357592: 18 184 741 3 33 4 5 2
820487802: 1 8 41 557 499 2 5 8 6 4
73666395: 9 1 911 4 687 85 2 27
113555: 5 3 5 5 536 38 419 4 7
1452250: 31 2 764 20 356 247 3
3390369667: 8 92 2 4 19 96 68
1107225: 98 4 356 344 5 618 7
101347244: 15 55 395 1 165 119
208300: 5 6 69 1 6 9 8 46 50 1 9
4852: 74 833 5 234 83
15654546: 951 614 417 37 6
2693018232: 62 6 2 36 3 7 3 6 11 6 2
1524: 9 2 3 5 9 68 3 917 317 2
926809: 926 29 5 4 465
26321344227834: 8 329 13 437 5 27 8 35
15346737945589: 999 65 78 303 4 558 9
7665016884: 3 3 3 5 6 288 32 83 3 8 4
438321: 146 3 321
310478244: 4 7 7 2 7 2 69 22 8 848 5
19515527: 173 1 46 376 237
43342591077: 445 2 957 4 9 149 17
17089: 387 1 3 43 1 276
15544385: 9 428 8 7 355
158501632: 18 15 873 521 3 2
130481497736: 2 7 5 3 3 834 92 9 2 508
2664900480: 3 528 275 77 5 8 1 76 6
32755062647: 2 3 7 7 53 26 264 7
910980: 19 73 59 2 35 9
138019: 111 5 57 5 1 9 1 5 310 9
181835417368: 543 88 67 34 499
276719085: 9 4 4 471 6 57 2 78 2 4 6
96369824800: 3 448 69 49 8 800 79
381860: 8 6 74 3 6
59419064705: 42 2 71 195 209 91
830012556: 6 1 4 116 2 3 2 2 2 5 4 34
417036759314: 634 591 2 3 57 371 1 4
119875: 538 6 51 22 261
575310: 575 3 10
26092087014: 65 8 8 501 70 1 4
450120: 179 14 3 32 4 4 219 8 3
26208832: 598 3 25 6 1 8 1 8 2 436
297373938: 6 6 7 9 9 6 3 30 64 936 2
1915729: 982 4 929 7 29
30424: 288 1 98 63 2 2
23062126: 62 33 37 2 6
547602052240: 3 8 5 9 577 699 7 20 2
15127: 754 8 2 24 7
2111: 9 65 4 5 7 4
6949826: 8 8 6 90 585 6 2 3 7 9 5
3670110: 3 12 438 19 56 405
76443: 45 2 849 33
8301786: 263 9 2 6 269 5 12 88
9840877646: 5 5 246 2 86 22 1 706 8
911542921: 9 5 7 2 2 6 952 57 5 2 5 1
70853786: 70 853 7 80 6
7428219375: 5 89 9 643 388 7 967
27825129585: 6 32 51 1 9 4 6 8 106 5 9
665379375: 371 72 179 97 478
25696962: 481 32 939 5 6 8
655401150: 2 2 3 5 47 3 2 96 9 4 2 75
22314567123: 921 8 1 773 63 240
5870856: 1 4 4 4 70 856
1760480233450: 419 3 48 588 7 720 2 9
49241386: 8 6 6 8 4 1 3 788 3 9 9 5
1742802: 35 94 68 519
38814494711: 5 9 27 272 94 710
44560: 9 84 58 66 7 639
9516688: 951 66 35 6 48
606955: 2 6 1 196 258 3 59 75 2
49694412: 7 3 90 6 7 1 2 58 34 4 3
9493: 8 7 9 3 8 972 7 3 8 2 5 6
3038: 167 1 9 7 2
14458: 957 7 3 5 1
2450237394123: 18 6 50 23 7 394 123
59597284: 63 3 35 591 509 93
2820709: 28 126 71 4 90 9 53 7
13554636: 98 6 381 951 23
158650: 28 563 6 90 911
8440145927: 7 4 1 330 7 1 3 3 585 7 7
44602592: 495 57 33 9 9 985
3429427: 549 5 66 2 61 7
877: 99 2 536 215 3 15 7
5757946: 6 6 90 456 9 8 69 3 9 19
1310934: 653 2 467 2
11348641466: 1 4 680 333 2 20 8 7 9 6
357589638904: 28 9 6 3 4 47 7 786 5 9 4
151375096: 7 82 2 4 297 625 4 8 2
28357561: 44 7 99 93 10 1
123173999786: 6 2 201 7 5 5 9 9 72 22 2
5184: 53 954 196 93 4
74584: 92 13 34 8 608
47852: 5 26 379 87 4 63 445
60083099: 45 6 77 34 85
14309725885: 5 11 4 24 57 8 55 7
1138: 3 542 8 1 563 6 3 6 4 2
2002: 2 7 64 2 29 9 2 6 9 3 2 1
47912939: 5 3 9 14 6 1 90 5 2 93 5 4
1587691: 16 74 42 6 1 7 80 4
57824354: 7 227 986 57 8 7
4216: 2 1 2 17 93 519"""
def _split_row(d):
res, nums = d.split(':')
res = int(res)
nums = list(map(int, nums.split()))
return res, nums
data = [_split_row(d) for d in data.splitlines()]
return (data,)
@app.cell
def __(data):
def to_base(num, base, length):
digits = ""
while num:
digits += str(int(num % base))
num //= base
while len(digits) < length:
digits += "0"
return digits[:length][::-1]
# YAYAY brute force
def can_evaluate(expected, nums):
# n-1 operators so we can brute force to
# create all combinations of all 2^{n-1} sums
n = len(nums)
for i in range(2**(n-1)):
res = nums[0]
j = 1
# view each thing as binary num
# with 0 being + and 1 being *
# gets bin num that is length
# n-1 by adding trailing zeros
ops = to_base(num=i, base=2, length=n-1)
for op in ops:
if op == '0':
res += nums[j]
else:
res *= nums[j]
j += 1
if res == expected:
return True
return False
# 1038838357795
print(sum(ex for ex, nums in data if can_evaluate(ex, nums)))
return can_evaluate, to_base
@app.cell
def __(data, to_base):
def can_evaluate_concat(expected, nums):
# n-1 operators so we can brute force to
# create all combinations of all 2^{n-1} sums
n = len(nums)
for i in range(3**(n-1)):
res = nums[0]
j = 1
# view each thing as binary num
# with 0 being + and 1 being *
# and 2 being the concatenation
# gets bin num that is length
# n-1 by adding trailing zeros
ops = to_base(num=i, base=3, length=n-1)
for op in ops:
if op == '0':
res += nums[j]
elif op == '1':
res *= nums[j]
elif op == '2':
res = int(str(res) + str(nums[j]))
j += 1
if res == expected:
return True
return False
# 254136560217241
print(sum(ex for ex, nums in data if can_evaluate_concat(ex, nums)))
return (can_evaluate_concat,)
@app.cell
def __():
return
if __name__ == "__main__":
app.run()